2007년 12월 08일
패턴 그리고 객체지향적 코딩의 법칙 - Blog2Book 시리즈 01

2001년 자바라는 언어를 처음 접하면서 패턴이라는 것이 있다며 공부하자는 동료가 있었다. 그땐 OOP(객체지향 프로그래밍)라는 개념조차 완벽히 정립되지 않은 상태에다 자바라는 언어조차 서툴렀던 시절이라 누가 패턴을 설명해줘도 잘 몰랐다. 물론 몰라도 먹고 사는데 지장이 없었기 때문에 당시엔 어려운 분야라 생각하고 지나갔다. 이렇게 개발자로서 한 가지의 숙제를 남겼기 때문에 그 후에 계속 '패턴'이라는 단어가 들어간 서적을 여러권 사 보았으나, 현실적으로 써먹을 만한 기회가 별로 없었기 때문에 머리로만 이해하고 넘어갔다. 때문에 시간이 지나면서 잘 기억하지도 못했다.
시간이 좀 지나 규모가 좀 있는 시스템을 접하면서야 '디자인 패턴'이라는 것이 필요한 이유를 알게 되었다. 먼저 요구사항에 맞춰 코딩했던 부분을 Command, Singleton, Factory등으로 리팩토링하면서 자연스럽게 체득한 것이다. 물론, 혼자 리팩토링한게 아니라 옆에서 경험있는 개발자가 도와줬기 때문에 가능했다. 이 책은 이런 경험이 있으면 쉽게 와닿기 때문에 넋두리처럼 먼저 내 경험을 언급하게 되었다.
이 책의 대상은 나의 경험에 비춰보면 OOP를 2년 정도 또는 그 이상 경험이 있는 프로그래머이다. 또는 '디자인 패턴'이나 '리팩토링'이라는 주제에 관심이 많거나 개념정립을 위한 사람도 적합하다. 'C로 개발하면 안되나요?'라는 질문을 할 정도로 프로그래밍을 하거나 그에 대한 대답은 알고 있으나 쉽게 설명하지 못하는 사람일 것이다.
책의 구성은 '나초보'와 '나고수'의 대화로 이뤄진다. 특히 11장부터 26장까지는 패턴을 설명하는데, 문제가 주어지면 우선 '나초보'가 이런저런 설계를 구시렁 거리며 설명하기 때문에 완벽한 코드는 아니지만 개념적으로 이해할 수 있다. 이후 코드리뷰를 거치면서 나고수의 맨토링을 통해 코드를 리팩토링하면서 자연스럽게 '이런 경우에는 이런 패턴'이라는 예시를 자연스럽게 보여준다. 패턴이라는 것이 어느 날 하늘에서 뚝 떨어진게 아니라 다양한 경험을 하다가보니 비슷한 구조가 눈에 들어와 이름을 붙인 것이기 때문에 그 과정을 보여주는게 이해하기에 쉬웠다.
1장부터 10장까지는 이 책의 슬로건인 '블로그에서 읽는 듯한 생생한 개발 노하우!'처럼 저자가 초보개발자에게 하고 싶은 말을 담고 있다. 책 전체에 걸쳐 일부러 파란색으로 강하게 말하고 있는데 예를 들면 다음과 같다.
우리는 예전에 "비트 박스를 잘하려면 두 가지만 기억하세요"라고 홍보하던 TV CF를 기억한다. 어설프지만 흉내를 내서 여러분에게 두 가지만 이해하길 요구하겠다. 바로 공통점 묶기와 조금만 알기이다.
p.38
리팩토링은 반드시 필요하다. 리팩토링은 시간을 내서 해야 할 작업이 아니라 구현의 한 부분이어야 한다. 하지만 코드 분해와 재조립에 시간이 오래 걸린다면 리팩토링을 시도하기가 두려울 것이다. 저산의 코딩에 자신감을 가질 필요가 있다. 코드의 품질은 경험과 비례한다.
p.96
이 처럼 나에게 말하듯 썼기 때문에 '생생한'이라는 단어를 사용한 것 같다.
이 책을 통해서 그동안 막연하게 이해했던 부분을 새롭게 상기시켜 정리하게 됐다. 대충 출퇴근 시간에 읽어도 3일정도면 볼 수 있을 만큼의 분량인데다 딱딱하지 않기 때문에 한번 손에 들면 단숨에 읽을 수 있을 것이다. 굳이 단점을 찾자면 '이다'로 말하는 중간에 '입니다'식의 문체가 있는데, '블로그에서 읽는 듯한'이란 슬로건에 맞추려는 애교정도로 넘어갈 수 있을 것이다.
# by | 2007/12/08 23:15 | 도서 | 트랙백(3) | 덧글(6)






☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
제목 : 패턴 그리고 객체지향적 코딩의 법칙
패턴 그리고 객체지향적 코딩의 법칙을 읽었습니다. 책에는 '나초보'와 '나고수'라는 가상의 인물이 등장합니다. 주로 나고수는 나초보에게 어떤 업무를 주고, 나초보가 나름대로 짠 코드를 나고수가 리뷰합니다. 가끔 나초보가 짠 코드를 나몰라가 잘못 사용하기도 합니다. 각 스토리의 말미에는 나초보와 나고수의 대화로 이번 스토리에서 다루고자 했던 주제를 정리합니다. 객체지향에 대해서 필자는 딱 두 가지를 강조합니다. '공통점 묶기'와 '조금씩 알기'인......more
제목 : 부담없는 객체지향 이야기
패턴 그리고 객체지향적 코딩의 법칙 - 문우식 지음/한빛미디어 한빛미디어의 국내서 기획은 매번 참신한 아이디어로 준비되고 있습니다. 그중에서도 이번기획은 블로그처럼 읽기편한 내용을 책으로 옮겨보자라는 시도입니다. 지금(08년 2월)까지 2권의 시리즈가 나왔고 예정대로라면 각 분야별로 다양한 소재의 내용을 접할 수 있는 기회가 될것 같습니다. 해당 시리즈에 대한 이야기는 2번째 시리즈인 박재호님의 책에서 좀더 자세하게 이야기해주고 있습니다. 20......more
제목 : 『패턴 그리고 객체지향적 코딩의 법칙』
요즘에 알게된 EBS 강좌중에 한국에서 유일한 영문법이라는 강좌가 있습니다. 이 강좌를 좋아하는 이유는 영문법 용어 자체보다는 왜 그런 용어를 쓰게 되었는지 배경을 설명하면서 자연스레 용어에 익숙해 지도록 해주기 때문입니다. 저는 이 책을 이 영문법 강좌에 비유하고 싶습니다. 저자는 객체지향에 대한 특정 개념을 그냥 설명하기 보다는 왜 그걸 써야하는지를 독자가 스스로 깨닫게 해주고 싶어한거 같습니다. 책의 후반부가 패턴에 대한 설명만으로 구성되......more
그리고 아래 책 축하드려요~ ^--^
니가 지난번 당첨된거 걍 사버렸다. ㅡㅡ;
교환이라 함은 제가 전에 빌린 '100배일잘하는...'하고'프로그래밍 면접...' 을 돌려드리면서
'패턴 그리고...' 저녀석을 빌려 간다는 말이었씁니다. ㅎㅎ
내일부터 확인해봐야겠는걸...