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

한빛출판네트워크

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

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

한빛미디어

집필서

절판

  • 저자 : 박지훈
  • 출간 : 2003-01-08
  • 페이지 : 904 쪽
  • ISBN : 8979142137
  • 물류코드 :1213
  • 초급 초중급 중급 중고급 고급
4.5점 (6명)
좋아요 : 16
개발자를 개발자답게, 객체지향을 객체지향답게

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

주요 내용
  • 디자인 패턴과 리팩토링의 핵심내용을 단계적, 통합적으로 설명
  • 유용한 객체지향 설계 원리 제시
  • 초보자도 쉽게 배울수 있도록 삽화와 예제 위주의 쉬운 해설
  • GoF 멤버 에릭 감마가 개발한 JHotdraw 프레임워크에 사용된 디자인 패턴 해설
  • 짝 프로그래밍을 통한 디자인 패턴과 리팩토링의 협력 학습 방법 소개
추천사

객체지향 소프트웨어 개발은 어렵고 험난한 길의 연속이다. 그러나, 소프트웨어 개발에서 발생하는 문제를 단순화시키고 유연성을 가져다주는 데 객체지향 만한 것이 없다. 그 객체지향의 보물을 찾도록 도와 주는 두 가지 힌트가 있다. 하나는 객체지향 설계의 문을 열 수 있는 "디자인 패턴"과 다른 하나는 열린 문으로 보물을 나를 수 있도록 지탱해주는 "리팩토링"이다. 이제 보물을 나르는 것은 독자의 몫이다.
                     이용원(소프트웨어크래프트 책임 컨설턴트)
박지훈 저자

박지훈

소프트웨어 개발자가 소프트웨어 공학의 관점에서 인터넷을 이용하여 효율적으로 능력을 향상하는 것에 관심을 갖고 있다. 중앙대학교 컴퓨터공학과 소프트웨어 공학 연구실에서 박사 과정을 밟으며 국제 표준과 호환이 되면서 네트워크와 협동에 기반을 두는 소프트웨어 개발 모델의 개발을 목표로 연구에 매진하고 있다. 1999년 제1회 자바 소프트웨어 공모전 학생부 우수상을 수상한 이래 자바로 뼈가 굵은 솜씨 좋은 자바 프로그래머이도 한 그는 전문가 수준의 자바 정보를 공유하고 창의적으로 적용하는 지식 공동체 Jstrom의 고문으로 활동하며 "EJB 개발자를 위한 J2EE 응용과 디자인 패턴(대청, 2002)", "엔터프라이즈 자바빈즈(대청, 2002)" 등을 공동 집필하였다.

1부 객체지향이란 무엇인가?

1장 객체지향의 밑바닥
01 절차지향 프로그래밍과 객체지향 프로그래밍의 큰 틀
02 절차지향 프로그래밍
03 객체지향 프로그래밍

2장 UML 입문
01 UML이란 어떤 것일까
02 클래스
03 객체 다이어그램
04 관계 표현
05 인터페이스 구현
06 클래스 다이어그램
07 시퀀스 다이어그램


2부 자바의 객체지향 특성 100% 활용

3장 클래스와 상속, 그리고...
01 클래스 VS 인터페이스
02 상속과 합성

4장 확장성 있고 유연한 자바 프로그램 만들기
01 클래스와 인터페이스를 이용한 객체지향 설계 테크닉
02 자주 사용되는 유연한 객체지향 설계 테크닉


3부 객체지향 소프트웨어 설계의 기본 원리

5장 소프트웨어의 변화와 포용
01 소프트웨어의 변화와 유지보수성
02 객체지향 코드의 변경

6장 변화를 수용하는 객체지향 설계의 원리
01 월세 관리 프로그램
02 소프트웨어 설계의 대원리
03 객체지향 설계의 실전 원리
04 객체지향 설계의 접근 방법


4부 GoF의 디자인패턴

7장 디자인패턴 소개
01 디자인패턴이란
02 GoF 디자인패턴의 예
03 GoF 디자인패턴의 형식과 분류
04 이 책에서의 접근 방법

8장 GoF 디자인패턴 리스트
01 Abstract Factory
02 Factory Method
03 State & Stratege
04 Templet Method
05 Decorator
06 Composite
07 Bridge & Adapter
08 Mediator
09 Observer
10 Command
11 그밖의 유용한 패턴

9장 JHotdraw 프레임워크의 디자인패턴
01 JHotdraw 소개
02 JHotdraw의 JavaDraw 샘플 프로그램 해설
03 JHotdraw의 디자인패턴


제 5부 리팩토링

10장 리팩토링 소개
01 개요
02 리팩토링의 판단 기준과 분류
03 리팩토링 보조 툴

11장 리팩토링 카탈로그
01 리팩토링 카탈로그
02 증상별 리팩토링 분류
03 프린터 관리 예제
04 회사원 봉급 관리 예제
05 벡터를 이용한 스택 예제
06 검색할 수 있는 스택 예제
07 애완동물 로봇 예제
08 짝, 홀수 값만 들어가는 스택 예제
09 간단한 리팩토링 실습

12장 종합 대여 관리 시스템의 리팩토링 실습
01 직접 만들어보는 대여 관리 프로그램
02 대여 관리 프로그램 예제

부록 : 짝 프로그래밍을 이용한 객체지향 설계 협력 학습 방법

우연찮게 같은 회사 사람이 보는 것을 보고서, 이책을 처음 접하게 되었다.



객체지향 설계 방법으로서 디자인 패턴을 접한지 벌써 3년이 되어가는데, 내가 처음 이책을 접했었더라면 하는 생각이 들 정도로 아주 쉽게 설명되어 있다. 처음 디자인 패턴에 대해 공부할 때 많은 시행착오와 오해가 있었는데, 이책은 비록 모든 패턴을 소개 하진 않았지만, 요긴하게 쓸만한 패턴에 대해서 아주 쉽게 접근해있었다.



물론 자바 문법에 대해서는 나 자신도 잘 모른다. 그러나 이책은 자바가 아니라 자바를 몰라도 디자인 패턴에 대해 개념상으로나, 기타 어려움을 느끼는 초심자들에게 크게 도움이 될 만한 책이라는 느낌이다.



원래 객체지향 설계란 개발자의 직관이 상당히 중요한데 이책의 저자는 프로그램을 짜나가면서, 설계하면서 그러한 직관성에 기초하여 예제를 잘 만들어 간 것 같다. 주변에 패턴을 처음 접하는 사람들에게 강추한다. 먼저 이책으로 기초를 잡고 많은 패턴들에 대해 추가적으로 공부해보면 될 거 같다.

프로그램을 읽기 쉽고 재사용 가능하고, 요구에 맞게 빨리 기능 추가를 할 수 있으려면 객체지향을 공부해야 합니다. 이를 위해서 디자인패턴 이라는 방법이 나오게 되었지만, 그 내용을 완벽히 이해한다는 것은 쉬운 일이 아닌 것 같습니다. 이 책은 그런 부분을 공부하는데 많은 도움을 주는 책입니다. 이 책에서는 디자인 패턴을 적용하지 않았을 때의 어려움과 디자인 패턴을 적용할 때의 유연함을 패턴마다 비교하고 있어 이해가 쉬운 편입니다. 또한 UML에 대한 약간의 소개도 도움이 되고, 리팩토링의 소개도 좋았습니다.

사실 주위에서 GoF책을 추천을 많이 해서, 서점에서 GoF원서를 읽어보았으나,

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

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

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

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

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



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

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

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



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



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

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



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



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



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

고급 프로그래밍을 하기위해 많은 고민을 해왔었는데



객체지향 프로그래밍을 접하고, 책임위주의 프로그래밍을 해 왔었지만, 이 책을 접하기 전까지 정확하게 책임이란것이 무엇인지 알지 못했던것 같아요.



만들어 놓고서 이것보다 더 깔끔하고 정돈되게, 그리고 명확하게 할수 없을까? 라는 고민은 언제나 나를 따라 다니고 했었습니다.



이 책을 접하고 책임이란 단어를 알게 된것같아 만족스럽습니다.



객체지향 프로그램은 책임 이란 단어 하나로 모든것을 대변할 수 있을것 같습니다.



보면 볼수록 알고있던 기초 지식을 다져주는 매력이 있는 책이며, 소스코드 역시 아주 심플하지만, 말하고자 하는 것을 다 말해주고 있습니다. 집필자의 의도가 무엇인지, 그리고 설명방법역시 대화식으로 풀어나가기때문에 독자들은 고민은 많이 할수 있으며, 아주 깊은 곳까지 이해하긴 힘들겠지만, 수박 껍데기 정도는 맛볼수 있습니다. 수박속까지 원하신다면 그건 독자들의 피나는 노력에 의해서 가능하겠지요....



읽어볼만한 좋은 책이었습니다.

GoF의 디자인 패턴과 마틴 파울러의 리팩토링


이 두 책을 볼 정도라면 아마도 프로그래밍을


처음 시작하는 초보는 아닐 것이라고 생각한다.


아니. 프로그래밍의 초보가 아니라.





객체지향에 관해서 최소한 작은 크기의 프로젝트를


진행해 봤거나 무언가 "만들어"봤을꺼라고 생각된다.


하지만. 그 두 책은 당연한 말이지만 난이도가


꽤 높다. 특히 읽다보면 보통의 수준으로는


그냥 책장에서 재워두는 경우가 허다할 것이다.





이 책은 아마도 그런 사람들을 위한 책인 듯하다.


디자인 패턴과 리팩토링 자체가 아니라


객체지향을 공부했거나, 공부하려고 생각하거나


좀더 나은 수준의 자바 개발자가 되고 싶다면


필요한 책이다.


저자의 이상한(웬지 특이한) 그림들도


두껍고 어려운 책을 재미있게 보게 해 주는


상당한 도움인것 같다.

디자인 패턴은 확실히 많은 개발자들에게 신선하고 매력적인 주제임에 틀림없다.

나도 한 때 디자인패턴에 매료되어 『Design Patterns: Elements of Reusable Object Oriented Software』를 보았고, 항상 썬 교육 센터에서 주관하는 Design Pattern 강의를 듣고 싶어했다. 지금도 나의 책꽂이에는 『Core J2EE Patterns』과 『Pattern Language of Program Design』이 한자리를 차지하고 있다. 그리고 이제 또 하나의 책이 추가되었다. 유치한 『자바 디자인 패턴과 리팩토링』이다. 적어도 첫 장은 그렇다.



내가 만약 이런 책을 쓴다면 1부에서 3부까지(260페이지)는 하나의 장(30페이지 정도)으로 만들고, 본 내용은 4부에서, UML에 대한 내용은 Appendix로 하겠다. 이런 식으로 책을 구성하려는 이유는 설명이 너무 길면 지루해지기 쉽고, 소스가 차지하는 분량이 너무 많으면 주제에서 생각이 벗어날 때가 많기 때문이다.



저자는 객체지향 프로그램이 모든 문제의 해결책이라도 되는 것처럼 말한다. 사실 객체지향을 소개하는 대부분의 책이 객체지향을 만병통치약처럼 소개한다. 객체지향이 절차지향 프로그램의 단점을 해결하기 위해 나온 것은 분명하지만 절차지향보다 반드시 좋은 것은 아니다. 결국은 자신의 환경에 가장 적합한 것을 찾으려는 노력이 없으면 객체지향도 쓸모 없는 하나의 유행밖에 되지 못할 것이다.



내가 이 책에 대해 비판적인 이유는 “디자인 패턴과 리팩토링은 비트겐슈타인의 언어철학과 같다”는 생각 때문이다. 그는 자신의 책을 이해할 수 있는 사람은 스스로 비트겐슈타인의 책을 쓸 수 있는 사람이라고 했다.



어떠한 책도 디자인 패턴과 리팩토링을 잘 할 수 있도록 만들지 못한다. 자신이 직접 부딪히고 고민하기 전에는... 더욱 그럴 것이다. 그리고 책만으로 디자인 패턴과 리팩토링을 잘하게 될 수 있다는 기대를 가지면 분명 실망하게 될 것이다.



그래서 이 책은 디자인 패턴을 깊이 공부하려는 사람보다는 한 번도 접해 보지 못한 개발자들에게 적합하다. 디자인 패턴과 리팩토링이라는 주제를 소개하고, 그것이 프로그램 개발과 어떠한 연관성이 있는 상세하게 때론 지루하게 가르쳐 준다.



이 책을 포함해서 디자인 패턴을 자바 언어로 다룬 책은 대략 7가지 정도 된다. 그리고 리팩토링을 이라는 제목을 가진 책은 이 책을 포함해서 두 권이다. 아직까지 디자인 패턴과 리팩토링을 함께 다룬 책이 없다는 면에서 신선하고 종합적으로 이해할 수 있다. 쉬운 소개, 자세한 코드, 디자인 패턴과 리팩토링을 모두 찾는 독자들에게 이 책에 대한 투자가치는 “긍정적”이다. 나에겐 그렇지 못했지만 말이다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
IT EXPERT, 자바 디자인 패턴과 리팩토링
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
IT EXPERT, 자바 디자인 패턴과 리팩토링
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
IT EXPERT, 자바 디자인 패턴과 리팩토링
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

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

자료실