OOP 언어를 어떻게 익혀야하는것인가요?
글쓴이: gurumong / 작성시간: 수, 2009/10/07 - 8:57오전
처음 제대로 배운 언어가 C언어라서 그런지
OOP언어를 잠깐 배우고 다른 소스를 분석하는데 괭장히 힘들어 하고있습니다
객체 변수를 선언하는것만으로 뭔가 제가 알수없는 동작이 일어난다는것이 모호한것같고
어떤 코드의 일부를 보더라도 선언하고 대입하고 메소드 호출하는 등의 간단한 몇줄인데
그것의 내부를 이해하려면 굉장히 헤메면서 찾아다녀야하는것 같고 그렇거든요 ㅜ.ㅜ
제가 문법적인 면이 약해서 그런것일까요?
java와 c++을 제대로 배워서 사용하고 싶은데 굉장히 힘듭니다 ㅜ.ㅜ
어떻게 하면 OOP언어를 잘 이해하고 배울수있는지 조언좀 부탁드립니다
(__)
Forums:
저의 경우는, 개론서 심플한걸로 먼저 감만잡고
C랑 별로 다를게 없다는 믿음으로 소스 마구 분석해 들어갔었습니다.
그러다, 최근에 Ruby를 보면서 이게 객체지향의 정수리구나 라고 생각했었고,
Object-C를 보면서 아주 혼란을 많이 격고 있습니다.
그러다, VC++ 보면서 템플릿과 다중상속의 응용 속에서 개체지향의 기본이 절실함을 새삼 느꼈습니다.
"C++ 구현한 자료구조" 이런류의 책도 가볍게 이론을 강화시킬수 있습니다.
윤성우의 C++ 열혈강의 보세요
이 책을 독파하면 JAVA는 거저먹기 같아요.
몇개의 키워드와 개념이 추가되었을 뿐 기본적인 것은 같아서 그냥 책을 읽으면 다 이해가 됩니다.
요즘 Ruby 책도 보고 있는데 C++과 JAVA 개념이 바탕이 되어서인지 읽는데로 바로 이해가 되더군요.
아직 초보자라 감히 뭐라 언급하기는 그렇지만 Ruby는 정말로 놀라운 언어 같습니다.
명쾌한 표현과 놀라운 표현의 절재를 보면 마치 일본 시의 아이꾸를 읽는 듯한 느낌입니다.
Ruby를 개발한 사람은 아마 천재일것 같습니다. 천재가 분명해요.
C는 무조건 언어를 배워야 한다는 의무감에서 6개월 이상을 하드트레이닝으로 고생해서 조금 이해하는 수준입니다.
그러다보니 그리 재미있게 배웠다는 생각이 없습니다.
C++은 호기심에서 시작하였는데 엄청 재미있더군요.
현대프로그래밍언어 대부분의 개념을 C++에서 찾을 수 있는것 같습니다.
저의 입장에서 JAVA는 마치 C++을 이용해서 개발한 라이브러리를 사용하는 느낌이었습니다.
별로 감동이 없었음.
나를 감동시킨 언어 C++과 Ruby
스몰토크 e-book 한
스몰토크 e-book 한 권을 가볍게 통독해보시는 것도 도움이 될지 몰라요
http://stephane.ducasse.free.fr/FreeBooks.html
여기서 표지 맘에 드시는 걸로 하나 골라서 진지하지 않게 읽어보세요
객체에게 다가가는 길이 보이실지도 몰라요
OO로 가는 길은 클래스가 아니라 객체에게 가는 길이다라고 생각하게 만들어 준 언어가
스몰토크라서 추천합니다.
*클래스 구현에 대한 호기심을 버리고 객체 사용의 즐거움으로 고고싱~
OOP는 대단하고 분명한 그 무엇이 아니라고 생각합니다.
OOP 이야기가 나오면 동상이몽이 정말 많은 것 같아요.
언어별로도 생각보다 간극이 큽니다. Java, C++가 필요하시면 각 언어에 대해서 적절히 익혀나가시면 될 거라고 봐요.
OOP 에 대해 되돌아 볼 시점이 되지 않았을까요?
최근 함수형 언어에 대한 관심이 높아 지는 것도 이를 반영한 것이 아닌가합니다.
OOP 를 포함하는 다른 패러다임이 필요하지 않을까요?
이런 면에서 차라리 C++ 이 더 유연한 선택을 주는 것 같습니다.
모든 것을 클래스로 묶어 버리는 자바나 C# 이 과연 올바른 선택일지 의문이 드네요.
C#이 함수형 언어 관련 패러다임을 도입하는 데 현재 가장 적극적입니다.
Erick Mijer같은 연구원들을 중심으로 해서 함수형 언어 패러다임을 C#에서 적극적으로 도입하고 있습니다. delegate라는 걸로 람다함수를 표현할 수 있고 LINQ와 같은 라이브러리도 있죠. 그리고 var 키워드를 써서 local type inference도 합니다. 참고로 Erick Mijer는 최근 강연( http://www.youtube.com/watch?v=UuamC0T3hv8 , http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/ )에서 함수형 프로그래밍을 홍보하면서 MS 프로덕트에도 순수 함수형 언어를 올려보고 싶다는 의견을 적극 피력하고 있습니다.
C++이 물론 주류 OOP언어들 중에는 여러 프로그래밍 패러다임을 도입하고 알리는 데 선구자적인 역할을 했습니다. C++이 아니었다면 Java나 C#에서도 이런 시도가 더 늦어졌겠죠 아마. 지금도 C++이 C#에 비해 가지는 장점이라고 한다면 템플릿 메타프로그래밍을 활용하는 멋진 라이브러리들에 있죠. STL이라 불렸던 표준라이브러리를 포함하여 boost의 많은 라이브러리들 말입니다.
@ 그럼 이제부터는 광고글입니다. 이와 같은 프로그래밍 언어의 기술을 실무나 연구에서 활용하고 계신 분들께서 강좌 발표를 통해 아직 우리나라에서는 많이 쓰지 않거나 도입하기를 망설이는 좋은 기술을 더 많은 사람들이 쓰는 데 도움을 줄 수 있는 그런 행사를 계획하고 있습니다. 시간은 12월 12일 토요일 오후이고 장소는 서울대입니다. 자세한 내용은 제가 지난 번에 올렸던 글( http://kldp.org/node/109173 )을 참조해 주세요. 혹시 slee0303 님께서 Lisp이나 Scheme관련해서 혹시 강좌 발표를 해 주실 수 있나요? 평소에 Lisp 관련 글들을 많이 올리시는 걸로 기억합니다.
--
There's nothing so practical as a good theory. - Kurt Lewin
"하스켈로 배우는 프로그래밍" http://pl.pusan.ac.kr/~haskell/
--
There's nothing so practical as a good theory. - Kurt Lewin
"하스켈로 배우는 프로그래밍" http://pl.pusan.ac.kr/~haskell/
LISP(Clojure) 에 관심이
LISP(Clojure) 에 관심이 있어서 배우고 있는데 아직 개념도 못잡고 있습니다.
LISP 잘하시는 분들이 많은 걸로 알고 있는데 배우러 가야겠네요.
댓글 달기