로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
서평보기
객체 지향 이야기 2nd Edition
전병선 | 영진.COM | 국내서 | 2004-01-30
종합평점
도서수준
한 술에 배부르랴 2005-01-27 오전 1:47:24 
평점
도서수준
조회수 (2120)
공감 (0)
강성민 님의 블로그
작년 12월쯤이였을까
웹프로그래머로서의 기술 기반에서 어렴풋이 기억나기로도 3년 전쯤에나 자바 언어를 접했던 내게 새롭게 시작하려는 자바는 자바2 1.4 버젼으로 다가왔고 주변의 충고와 조언으로 객체 개념부터 알아야 겠다는 생각이 들었다. 아마도 대부분의 입문자가 본인과 같은 길을 걷게 되리라 생각된다.
디자인 패턴과 함께 객체의 개념을 잡으면 기본기가 충실해진다는 조언을 바탕으로 그때부터 객체란 무엇이냐를 알아내는게 목표였다. 개념없이 디자인 패턴책을 보는것은 절차적 언어인 스크립트 언어만을 다룬 본인에게는 어려운 부분이 많았다. 인터페이스는 왜 구성하는지, 왜 상속을 하는지, 객체라는게 책에서 보면 참 쉽게 설명하지만 정작 떠올리면 설명하기도 그림을 그리기도 난해했다.
 
그러다가 이 책을 찾았다. 말 그대로 얼마나 피부에 다가오는 제목인가 "객체지향 이야기".
내용도 볼 필요없이 책을 샀고 책을 읽다가 정말 열광적인 팬처럼 주변에 이 책 한번 읽어봐라 하면서 돌아다녔다. 주변에 나와 같이 자바로 전향하는 개발자들이 있기 때문에 서로간에 관련된 책과 이야기를 자주 하는 편인데 공통점은 같았다. 객체가 뭐냐..워낙 무지에 허덕이던 까닭이였다.
 
이 책의 서문에 저자가 밝히듯이 어려운 기존의 방식에서 탈피하고자 많은 노력을 한 흔적이 뚜렷하다. 기술 서적이라도 지하철에서 읽을 수 있다고 생각하고 딱딱한 기술서적의 문체에서 과감히 대화체로 바꾼 저자의 독자와의 친밀감을 높이고자 하는 노력 때문일까 이 책이라면 객체 개념을 쉽게 잡아 줄 수 있을 것이라 생각한다.
 
1장부터 6장까지 읽었을 때 정말 머리속에 뭔가 그려지는 듯한 느낌이 들었을 정도로 객체를 이루는 것들, 관계, 인터페이스 등에 대한 저자의 세세한 설명과 지난 글까지 들춰가면서 독자를 배려하는 부분은 이 책이 가진 가장 큰 장점이라고 할 수 있다.
덕분에 독자는 굳이 책을 읽다가 다시 앞을 들춰서 어디 있더라 하는 수고로움을 하지 않아도 되고 또한 C++,C#.NET,VB.NET,JAVA로 구현되는 코드들을 일일이 비교해주면서 각각의 언어에서는 이렿게 객체가 구현되고 있다라는 부분은 정말 압권이다. 입문서가 따로 없는 것이다. 게다가 객체 지향 언어들을 한방에 보여주는 것은..
 
입문자라면 적어도 어느 정도 가려운 부분을 긁어주는 내용과 쉽게 다가오는 객체의 느낌을 받을 수 있을 것이다. 게다가 딱딱하지 않고 옆에서 이야기 하듯이 읽어 내려갈 수 있는 대화체의 느낌도 한 몫을 더하고 있다.
 
아쉬운 부분은 7장 부터이다. 저자가 C,C++,JAVA,.NET 모두 섭렵한 까닭이였을까.
7장부터 슬슬 어려워지기 시작한다. 단지 객체가 뭔지 어떻게 만들어지고 있는지가 궁금했을 뿐인데 너무 멀리 간건 아닌가 하는 느낌마저 들게 한다. 워낙 알려주고 싶은게 많았기 때문일까.
7장 부터 시작되는 저자의 욕심은 그로부터 대략 240페이지를 넘게 코드 설명에 중점을 두고 있다.
 
첨에는 그러려니 하면서 코드를 훓어보고 설명을 읽어보았다. 그전까지는 그렇게 해도 워낙 세세하게 설명해줬던 까닭에 그렇구나 하면서 읽었던 책이 한순간 답답하고 짜증이 나게 한다. C,C++에 대한건 원래 몰랐다고 치자. DCOM,COM+은 사실 개발자라면 굳이 찾아다니지 않아도 어깨 너머로 듣고 뭐지? 하는 생각이 들기 마련이다. 그에 대한 설명을 하려는가보다 하고 펼치자 마자 답답해진다. 뭔지도 모르는데 구현하자고 하니 다른 책을 보면서 공부해서 볼 수도 없는 노릇이고..해서 일단 건너뛰게 된다. 그 다음이 자바에 대해 다루는 단원인데 개인적인 관심이 있는 분야인데도 불구하고 다른 관련 서적을 펼쳐보면서 해독(?)해야 하는 지경이다.(물론 고수가 아니기 때문이기도하다) 단순히 객체가 이렇게 사용된다는 개념이 아닌 것이다. 앞 부분에서 설명해줬던 MVC패턴으로 나타나는 스윙이나 리스너에 대해 설명은 몇줄로 하고 나타나는 어뎁터 개념이며, 패널, 델리게이트는 또 어떠한가. 그에 관련한 지식은 알아서 하라는 것인지 과연 이 책을 내가 읽어도 되는지 또 누구를 위해 쓰여졌는가에 대해 심각한 고민을 하기 시작하게 된다.

그 전까지 입문자에게 객체 개념을 알려주려는 저자의 노력에 대한 독자의 믿음이 점점 무너져 가는 순간이다. 그 전까지 보여주던 세심한 배려는 사라지고 코드를 넣고 다음은 뭘 하자라는 식의 진행은 그때까지 잘 따라오던 독자들이 책을 덮게하지는 않을까 하는 걱정까지 하게 만든다.
물론 여러가지 언어로 구현되어 실생활에 사용되는 객체의 사용을 예제로서 보여주려는 의도는 이해 할 수 있으나 순간적으로 증가하는 코드의 양과 그만큼 줄어드는 설명은 안타까울 정도이다.
 
그러다가 다시 저자가 기대를 져버리지 않았구나 하는 생각이 들게 하는 부분이 객체지향 모델링 부분 부터이다. 사실 8장부터 12장까지가 객체가 곳곳에서 어떻게 사용되어지고 있다라는 저자의 의도로 삽입되었다고 한들 읽어보는 사람마다 다르겠지만 일반 언어책에서의 따라하기 수준보다 약간 설명이 더 들어간 것 외에는 감흥이 오지 않는다.
 
그러나 다시 저자의 세세한 배려가 시작되는 곳이 이 부분 부터이다. 다시 솔솔 재미가 난다. 읽어보면 알겠지만 프로젝트를 객체지향 방법론에 따라 설명하고 있는 것이다.
기존의 낡은 방법론에 따르지 않고 현대에서 사용할 수 있는 방법을 적용한다고 할까.
사실 프로젝트를 여러개 하다보면 프로젝트마다 문서가 다른 경우가 있는데 이는 어떤 프로젝트에서는(신기술의 적용을 서두르는 기업) UML을 사용하고 어떤 프로젝트에서는(주로 관공서처럼 방법론을 지정해주는 업체, 대부분 METHOD 1 이다.) 기존 문서를 고집하는 경향이 있기 때문이다.
 
객체지향 방법론에 의거한 문서작성을 위해서는 UML을 알아야 하는데 여기서 이 책이 도움되는 면이 있다. 즉, UML 책만을 보면 각각의 다이어그램별로 그려지는 방법은 알겠는데 이런 다이어그램들이 프로젝트 어디서 사용되는지 아리송해지기가 쉽기 때문이다. 허나 이 책에서는 프로젝트의 어느 단계에서 어떤 문서가 작성되는지 단계적으로 설명해주고 있다. 프로젝트 중심으로 설명하다보니 당연히 UML에 대한 깊이는 떨어지지만 전체적으로 다이어 그램들이 어떻게 모습이 갖춰지는가에 대한 그림을 그릴 수 있다. 게다가 중간의 복잡한 코드들때문에 머리속에서 가출한 앞부분에 대한 기억을 다시 언급함으로써 가출한 지식을 다시 불러오는 효과도 있다.
 
본인은 데이터베이스에 대한 관심이 지대한 편이여서(이화식,조광원씨의 열렬한 팬이다) 대부분의 모델링에 관련한 서적을 거의 숙지하고 있는 편이라 자연스레 데이터중심의 프로세스를 주장하는 편이다.
그러다 보니 회사에서 객체 지향 언어를 사용하는 개발자와의 대화에서 장벽이 생기곤 하는데 객체를 구현하기 위해서는 데이터베이스에 종속적일 수 없으니 RDB를 사용할 수 없다라는 의견을 들을때마다 답답한 경우가 많다. 여기서 DB와 객체간의 관련을 얘기하자면 길다. 다만 이러한 의견상충을 고수의 입장에서 서로 절충하는 방안을 제시하려는 의도에서 적어도 본인에게는 도움이 많이 되는 부분이다. 물론 한빛에서 나온 이춘식씨의 빨간책도 그러한 면에서 도움이 많이 되었던 책중에 하나였다.
 
입문자의 한명으로써 객체지향의 입문서이거나 적어도 입문자에게 객체에 대한 설명을 하고자 하는 것이라면 책이 그리 두껍지 않아도 되지 않았을까 하는 의문도 든다. 차라리 두 권짜리면 어떨까하는 생각도 든다. 그만큼 돈을 더 들겠지만....
그러나 차후에 어느 정도 숙달된 개발자로서 객체를 다룰 수 있을때 지금 대충 훓어본 부분을 다시 한번 봐야 겠다고 생각한다. 그때도 지금같은 느낌이라면 안타깝겠지만 적어도 다른 분들이 올리신 서평만큼 입문자에게 도움이 되고 기초를 다지는 책으로 느낄 수 있으면 좋겠다는 느낌이 든다.
 
다른 것은 차치하더라도 이 책을 접하고 마지막 장을 덮고나서 가만히 눈을 감았을때 객체 지향이라는 것이 어떻구나 하는 느낌만 들더라도 저자의 의도는 100% 달성하는게 아닌가. 처음 이 책을 접했을 때 다가왔던 기쁨과 만족감만은 적어도 지금까지 다른 책에서 느끼지는 못했던 부분이였다.
중간 부분에 대한 약간의 실망감과 배신감 때문에 잠까지 설치긴 했지만 그래도 책을 덮고 나서 다른 객체 지향 언어로의 전환을 시도하는 개발자에게 읽어보라고 추천해주고 싶은 느낌이 들었던 것은 그만큼 발전이 있었기 때문이라고 생각한다.
 
기대가 크면 실망도 큰 법, 차근차근 이해 할 수 있는 부분부터 이해해 나가는 것도 방법이 될 수 있을 것이다. 만약 3판이 나온다면 좀 더 중간 부분을 손질하는건 어떨까...
 
"한 술에 배부르랴"라는 말이 떠오른다. 옛말 틀린거 하나 없는거 같다.후후...

 
코멘트 0   공감 0
코멘트작성
 
이메일주소수집거부