태그 : 프로그래밍

패턴 그리고 객체지향적 코딩의 법칙 - 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)

◀ 이전 페이지          다음 페이지 ▶