메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

중급자를 대상으로 한 깔끔한 구성의 책

kar***

|

2005-03-31

IT EXPERT, 자바 디자인 패턴과 리팩토링

자바와 같은 객체지향 언어로 소프트웨어를 개발하는 사람은 많다. 그러나 객체지향 언어를 사용하면서도 기존의 방식을 답습하며 절차지향적 개발 방식을 무시한다면 발전을 기대할 수 없다. 프로그램을 만드는 것 만으로 개발자라 부를 수 없는 세상이 된 지금, 단순 코더가 아닌 개발자라면 객체지향 설계 기법은 이제 경쟁력이 아닌 필수 조건이다! 자바로 뼈가 굵은 저자 박지훈이 보여 주는 디자인패턴과 리팩토링 기법으로 자바 개발자의 통뼈를 키우자.

  • 저자 : 박지훈
  • 출간 : 2003-01-08
사실 주위에서 GoF책을 추천을 많이 해서, 서점에서 GoF원서를 읽어보았으나,

접근하기에는 어렵다는 결론을 내리고, 고민하던 차에,

우연찮게 산업인력관리공단에서 주최하는 5일짜리 디자인패턴 강의를 듣게되엇다.

낮에는 Cooper의 디자인패턴책으로 이론을, 이클립스로 클래스설계 실습을 병행하였고,

집에서는 이 책을 읽으면서 공부하였다.

예전에 자바 디자인 패턴입문 책(영진 출)을 읽어본적이 잇어서인지, 조금씩 정리돼는 느낌이었다.



이 책은 실무자를 대상으로 자바의 디자인 패턴과 리팩토링을 다루고 있다.

특히 디자인 패턴을 처음 접하는 독자를 위해 먼저 객체지향의 의미부터 프로그램 전반에 관한 포인트를 중심으로 설명하고 있다.

1~3부는 객체지향을 설명하고 있다. 객체지향의 의미부터 기존 언어와의 차이점과 잘못 사용된 객체지향의 예를 예제 소스코드를 통해 설명함으로써 객체지향이 무엇인지 좀 더 쉽고 정확하게 이해할 수 있다. 특히 3부에서는 설계에 있어 기본으로 알아야 하는 프로그램의 낮은 결합도, 높은 응집도와 유지보수 문제점 등에 관해 중점적으로 설명한다. 독자를 위해 디자인 패턴에 대한 의미와 활용에 대한 설명을 GoF에서 기술된 형식이 아닌 저자 자신만의 방식으로 하고 있다. 또 이 책의 특징이라 할 수 있는 적절한 비유와 삽화, 보기 쉬운 코드 등은 독자의 이해를 돕고 있다.



5부는 리팩토링에 관한 내용도 다루고 있으며, 특히 디자인 패턴과의 관계를 설명해준다. 예제 중간에 ‘만들어 봅시다’ 코너를 두어 직접 참여할 수 있는 부분을 두었고, 단원 끝마다 요약정리와 메모장을 두어 책의 활용도를 높였다. 자바 중급자를 대상으로 하므로 기본 개념들을 일생생활 소재에 비유해 이해를 쉽게 했고, 삽화를 통해 프로그램 서적이 가지는 단점인 지루함을 줄였다. 또한 코드를 과거 유행했던 간단한 게임 등을 예로 들어 흥미를 유발했고, 코드간의 짜임새가 좋아 한번 코드를 잘 이해하면 다음 단계로 쉽게 넘어갈 수 있게 했다. (사실 이 챕터는 디자인패턴에서 괜스리 분량만 차지하는 건 아닌가 라는 선입견이 잇었지만, 나름대로 재미있었던 부분이다.)



많은 내용을 담으려다 보니 분량이 많아졌고 다양한 예제를 접할 수 없어 독자의 적극적인 활용에 한계가 있지만 잘못 사용된 코드, 소프트웨어로서 부적합한 코드에 대해 친절히 설명했고, 공부하면서 생길 수 있는 의문점을 답과 함께 제시했다. 초중급자분, 자바문법에 대해 어느정도 알고있고, 클래스 설계와 맞물려서 같이 배우려는 분이라면 추천하고 싶은 책이다.

처음부터 읽기에 부담이 됀다면, p.279에 나와있는 대로 저자가 제시하는 디자인패턴의 공부순서를 본후에, 접근하는 것이 좋은 것 같다.



부록으로는 짝 프로그래밍을 이용한 객체지향 설계 협력 학습 방법을 제시하고 있다.



예제소스가 많이 나와있으나, 무작정 소스코딩부터 하지말고, 이클립스나 다른 IDE툴에서 클래스설계를 해보면서 패턴간의 차이를 비교분석해보길 권한다.



전반적으로 디자인 패턴 부분에서 문제점, 아이디어, 해법의 제시 등으로 구성을 일관화하고 있다는 점은 좋은 점이었으나, 소스를 일일이 치기에는 다소 많은 분량이었다. 부록으로 예제소스CD를 주었더라면 하는 아쉬움이 남는다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?