JAVA 객체 지향 디자인 패턴 - 정인상, 채흥석 (한빛미디어)

 

이책은 대학교 2학년때 JAVA Programming을 들으면서 객체 지향에 디자인 패턴에 대한 이해를 돕고자 구매했었던 책이다. 스트레티지 패턴, 싱글턴패턴, 스테이트 패턴, 커맨드 패턴, 옵서버 패턴, 데커레이터 패턴, ... 등등 총 10가지 정도의 패턴을 각각의 예제가 있을때 그 예제에 맞는 적절한 패턴을 설명해준다.

 

이 책의 저자가 오랫동안 고심한 생각을 적절한 예시와 함께 얻을 수 있기 때문에 객체 지향에 대해 알고 싶다면 시작책으로 이 책으로 하는것을 추천한다. 나도 이책의 여러 예제 프로그램들을 공부해보면서 자바 프로그래밍의 객체지향에 대하여 어느정도 익숙해졌고, 왜 이런 패턴이 나왔는지 생각하게 되어 좋은 책이었다.

 

또한, 디자인패턴에 대한 설명시 심도깊은 설명을 해준다. 예로들면, 인터넷에 존재하는 싱글턴패턴 코드는 대부분 단순하게 싱글스레드에서만의 환경을 고려한 예제일 것이다.이 책에서는 멀티스레드 환경에서의 처리방법까지도 설명해준다.

디테일한, 실제 저자가 프로그램을 운용해보며 고려해본점들이 담겨있다고 느껴진다.

 

추가로, 이 책을 읽으면서 느낀점은 객체지향적으로 이 책을 자유롭게 이해하기에는 많은 시간이 필요할 것 같다고 느낀다. 뒤쪽에서 많은 실제 에시와 함께 코드를 작성하여 읽어보는데, 실제 세계에서 사용할만한 예시 (예로들면 엘리베이터 여러대가 있을때 어떻게 설계할것인가)를 설명하는데, 단순히 코드로 짠다면 보통수준의 난이도이겠지, 객체지향적으로 접근하여 결합도를 낮추고 유지보수하기 쉽게, 변경에 대응하여 코드를 짜기에 난이도가 높다.

 

초급개발자의 경우, 요즘은 프레임워크 기반으로 하여 디자인패턴이 어느정도 확정되어 지금 당장은 필요하지 않을 것 같다는 개발자가 있을 것 이다. 하지만, 프레임워크의 IOC 원칙에 의해 단순히 개발자는 프레임워크가 제공하는 방식에 집중하게되는데, 정말 복잡한 프로젝트에서는 이러한 패턴을 추상화시켜 한번에 이해하는 것은 쉽지 않다. 그렇기에, 많은 패턴을 보게된다면, 분명히 복잡한 시스템에 놓여졌을때 큰 흐름, 패턴을 인식하는데 분명 도움이 될 것이라 생각한다. 물론, 나도 1회독 밖에 안해서 더해야할 것 같다... 

 

무엇보다 추후에 시스템 설계를 할 수 있는 개발자가 되고싶다면, 이 책을 읽어보는 반드시 추천한다.

+ Recent posts