본문 바로가기

Thinking about development

객체지향과 사실과 오해를 읽고...

객체지향의 사실과 오해
국내도서
저자 : 조영호
출판 : 위키북스 2015.06.17
상세보기

 

우리는 객체지향 언어를 사용함에도 불구하고 객체지향에 대한 개념 자체를 모르는 프로그래머들은 해당 언어에 대한 철학에 맞지 않게 코딩을 하기 쉽다. 나 또한 객체지향에 대한 개념이 잡히지 않았을 때 자바를 사용하고 있으니 객체지향을 하고 있는 거라는 말도 안 되는 생각을 하였다...

 

회사 지인으로부터 이 책을 추천받고 정독을 하는 동안 머리를 마치 쇠망치로 두드려 맞는 느낌을 많이 받았다.

가령 클래스를 객체로 생각하였던 나 자신이 객체에 대한 의미를 깨닫고 나서 내가 얼마나 어리석었는지를 예로 들 수 있다.

 

이 책의 장점은 코드 기반이 아닌 개념을 글로 서술하는 것이기 때문에 큰 부담 없이 읽힌다. 또한 중간중간 이상한 나라의 엘리스와 커피 가게를 예로 들면서 메시지 전달, 내연 외연, 책임 역할... 에 대한 개념들을 쉽게 풀어 설명한다. 추후에 코드 기반의 책을 읽거나 아니면 자신이 직접 코드를 구성해 보는 연습을 해서 피상적인 지식을 구체화하는 연습을 해도 늦지 않을 것 같다는 게 필자의 생각이다. 

그리고 제일 마음에 드는 건 그리 두껍지 않다는 점이다^^

 

사실 "이 책을 읽으면 객체지향에 대한 모든 것을 이해할 수 있다!"라는 것은 약간의 어패가 있다. 다만 객체지향에 대한 공부를 처음 시작하는 시점에서 코드 위주의 글을 보면서 객체지향에 대한 부담을 가지기보다는 시작하는 지점에서 부담 없이 마치 동화책 읽듯이 객체지향에 대한 전반적인 지식과 아키텍처를 그리는 과정이 나에게는 객체지향에 대한 진입장벽을 낮춰주었고 다음 스텝으로 넘어가는데 도움이 되었다.

 

마지막으로 내가 읽었던 방법에 대해서 서술하면서 글을 마무리하고자 한다. 일단은 처음으로 정독을 한 다음에 이 글을 토대로 내가 현업에서 쓰고 있는 코드를 조금씩 바꿔보는 연습을 하였다. 그러고 나서 이 책에 대한 기억이 희미 해질 때 즈음 한번 더 읽었더니 이전과는 전혀 다른 내용이 보이며 또 새롭기까지 하였다. 

그리고 현재는 해당 책의 저자의 두 번째 책인 오브젝트를 읽으면서 피상적인 지식을 구체화하는 공부를 하고 있다. 참고로 오브젝트 책은 막연한 개념을 코드로 구현하고 직접 리펙토링에 대한 과정을 저술하고 있기 때문에 두 번째 읽었던 나의 경험이 정말 도움이 많이 되었다.

 

객체지향에 대한 공부는 개발자가 코드에 대한 철학을 만드는 과정이라고 생각한다. 아직은 객체지향에 대한  철학이 확고하지는 않지만 노력을 하다 보면 철학이 완성되지 않을까라는 조심스러운 기대를 하며 글을 마무리하고자 한다.