확장메뉴
주요메뉴


닫기
사이즈 비교
소득공제 베스트셀러
헤드 퍼스트 디자인 패턴

헤드 퍼스트 디자인 패턴

: 14가지 GoF 필살 패턴! 유지 관리가 편리한 객체지향 소프트웨어를 만드는 법

리뷰 총점9.6 리뷰 46건 | 판매지수 10,146
베스트
프로그래밍 언어 42위 | IT 모바일 top20 5주
정가
36,000
판매가
32,400 (10% 할인)

품목정보

품목정보
발행일 2022년 03월 16일
쪽수, 무게, 크기 656쪽 | 183*235*35mm
ISBN13 9791162245262
ISBN10 1162245263

이 상품의 태그

EBS 윤혜정의 개념의 나비효과 입문편 (2024년용)

EBS 윤혜정의 개념의 나비효과 입문편 (2024년용)

14,850 (10%)

'EBS 윤혜정의 개념의 나비효과 입문편 (2024년용)' 상세페이지 이동

개념원리 수학 (상) (2024년용)

개념원리 수학 (상) (2024년용)

16,200 (10%)

'개념원리 수학 (상) (2024년용)' 상세페이지 이동

EBS 윤혜정의 개념의 나비효과 입문편 워크북 (2024년용)

EBS 윤혜정의 개념의 나비효과 입문편 워크북 (2024년용)

14,850 (10%)

'EBS 윤혜정의 개념의 나비효과 입문편 워크북 (2024년용)' 상세페이지 이동

완자 고등 통합과학 (2024년용)

완자 고등 통합과학 (2024년용)

18,900 (10%)

'완자 고등 통합과학 (2024년용)' 상세페이지 이동

ETS 토익 정기시험 기출문제집 1000 Vol.3 READING 리딩

ETS 토익 정기시험 기출문제집 1000 Vol.3 READING 리딩

16,020 (10%)

'ETS 토익 정기시험 기출문제집 1000 Vol.3 READING 리딩 ' 상세페이지 이동

예비 매3비 매일 지문 3개씩 푸는 비문학 독서 기출

예비 매3비 매일 지문 3개씩 푸는 비문학 독서 기출

15,300 (10%)

'예비 매3비 매일 지문 3개씩 푸는 비문학 독서 기출' 상세페이지 이동

신사고 쎈 고등 수학 (상) (2024년)

신사고 쎈 고등 수학 (상) (2024년)

16,200 (10%)

'신사고 쎈 고등 수학 (상) (2024년)' 상세페이지 이동

ETS 토익 정기시험 기출문제집 1000 Vol.3 LISTENING 리스닝

ETS 토익 정기시험 기출문제집 1000 Vol.3 LISTENING 리스닝

16,020 (10%)

'ETS 토익 정기시험 기출문제집 1000 Vol.3 LISTENING 리스닝 ' 상세페이지 이동

Word Master 워드마스터 수능 2000

Word Master 워드마스터 수능 2000

14,400 (10%)

'Word Master 워드마스터 수능 2000' 상세페이지 이동

쎈 중등 수학 1-1 (2024년)

쎈 중등 수학 1-1 (2024년)

15,300 (10%)

'쎈 중등 수학 1-1 (2024년)' 상세페이지 이동

개념원리 RPM 알피엠 고등 수학 (상) (2024년용)

개념원리 RPM 알피엠 고등 수학 (상) (2024년용)

14,400 (10%)

'개념원리 RPM 알피엠 고등 수학 (상) (2024년용)' 상세페이지 이동

해커스 토익 기출  VOCA 보카

해커스 토익 기출 VOCA 보카

11,610 (10%)

'해커스 토익 기출 VOCA 보카' 상세페이지 이동

MAPL 마플 시너지 수학 (상) (2024년용)

MAPL 마플 시너지 수학 (상) (2024년용)

18,000 (10%)

'MAPL 마플 시너지 수학 (상) (2024년용)' 상세페이지 이동

예비 매3문 매일 지문 3개씩 푸는 문학 기출

예비 매3문 매일 지문 3개씩 푸는 문학 기출

15,300 (10%)

'예비 매3문 매일 지문 3개씩 푸는 문학 기출' 상세페이지 이동

2023 큰별쌤 최태성의 별별한국사 한국사능력검정시험 심화(1,2,3급) 상

2023 큰별쌤 최태성의 별별한국사 한국사능력검정시험 심화(1,2,3급) 상

13,950 (10%)

'2023 큰별쌤 최태성의 별별한국사 한국사능력검정시험 심화(1,2,3급) 상' 상세페이지 이동

오투 고등 통합과학 (2024년)

오투 고등 통합과학 (2024년)

18,900 (10%)

'오투 고등 통합과학 (2024년)' 상세페이지 이동

천일문 기본 Basic 1001 Sentences

천일문 기본 Basic 1001 Sentences

17,100 (10%)

'천일문 기본 Basic 1001 Sentences' 상세페이지 이동

2023 큰별쌤 최태성의 별별한국사 한국사능력검정시험 심화(1,2,3급) 하

2023 큰별쌤 최태성의 별별한국사 한국사능력검정시험 심화(1,2,3급) 하

13,500 (10%)

'2023 큰별쌤 최태성의 별별한국사 한국사능력검정시험 심화(1,2,3급) 하' 상세페이지 이동

2024 임용 면접레시피 [평가원 지역]

2024 임용 면접레시피 [평가원 지역]

25,000 (0%)

'2024 임용 면접레시피 [평가원 지역]' 상세페이지 이동

키위엔 영어회화 하루 5분의 기적

키위엔 영어회화 하루 5분의 기적

17,550 (10%)

'키위엔 영어회화 하루 5분의 기적' 상세페이지 이동

책소개 책소개 보이기/감추기

목차 목차 보이기/감추기

이 책에 쏟아진 찬사
독자가 보내는 찬사
〈헤드 퍼스트〉 시리즈에 쏟아진 찬사
지은이 소개
〈헤드 퍼스트〉 시리즈 만든이 소개
옮긴이의 말

00장 들어가며 | 이 책을 읽는 방법

__ 이 책의 독자
__ 이 책이 이렇게 된 이유
__ 이 책의 구성
__ 여러분의 두뇌를 정복하는 방법
__ 일러두기
__ 테크니컬 리뷰어
__ 감사의 글

01장 디자인 패턴 소개와 전략 패턴 | 디자인 패턴의 세계로 떠나기

__ 오리 시뮬레이션 게임, SimUduck
__ 오리 시뮬레이션 게임 차별화하기
__ 경고! 심각한 문제 발생
__ 상속을 생각하기
__ 인터페이스 설계하기
__ 해결 방법 고민하기
__ 소프트웨어 개발 불변의 진리
__ 문제를 명확하게 파악하기
__ 바뀌는 부분과 그렇지 않은 부분 분리하기
__ 오리의 행동을 디자인하는 방법
__ 오리의 행동을 구현하는 방법
__ 오리 행동 통합하기
__ 오리 코드 테스트
__ 동적으로 행동 지정하기
__ 캡슐화된 행동 살펴보기
__ 두 클래스를 합치는 방법
__ 첫 번째 디자인 패턴: 전략 패턴
__ 디자인 패턴 만나기
__ 패턴과 전문 용어
__ 디자인 패턴 사용법
__ 디자인 도구상자 안에 들어가야 할 도구들
__ 연습문제 정답

02장 옵저버 패턴 | 객체들에게 연락 돌리기

__ 기상 모니터링 애플리케이션 알아보기
__ WeatherData 클래스 살펴보기
__ 구현 목표
__ 기상 스테이션용 코드 추가하기
__ 원칙으로 추가 코드 살펴보기
__ 옵저버 패턴 이해하기
__ 옵저버 패턴의 작동 원리
__ 옵저버 패턴의 정의
__ 옵저버 패턴의 구조
__ 느슨한 결합의 위력
__ 기상 스테이션 설계하기
__ 기상 스테이션 구현하기
__ Subject 인터페이스 구현하기
__ 디스플레이 요소 구현하기
__ 기상 스테이션 테스트
__ 라이브러리 속 옵저버 패턴 알아보기
__ 인생을 바꿀 애플리케이션 만들기
__ 풀 방식으로 코드 바꾸기
__ 업데이트한 기상 스테이션 코드 테스트
__ 디자인 도구상자 안에 들어가야 할 도구들
__ 연습문제 정답

03장 데코레이터 패턴 | 객체 꾸미기

__ 초대형 커피 전문점, 스타버즈
__ OCP 살펴보기
__ 데코레이터 패턴 살펴보기
__ 주문 시스템에 데코레이터 패턴 적용하기
__ 데코레이터 패턴의 정의
__ Beverage 클래스 장식하기
__ 데코레이터 패턴 적용 연습
__ 커피 주문 시스템 코드 만들기
__ 음료 코드 구현하기
__ 첨가물 코드 구현하기
__ 커피 주문 시스템 코드 테스트
__ 데코레이터가 적용된 예: 자바 I/O
__ java.io 클래스와 데코레이터 패턴
__ 자바 I/O 데코레이터 만들기
__ 새로 만든 자바 I/O 데코레이터 테스트
__ 디자인 도구상자 안에 들어가야 할 도구들
__ 연습문제 정답

04장 팩토리 패턴 | 객체지향 빵 굽기

__ 최첨단 피자 코드 만들기
__ 피자 코드 추가하기
__ 객체 생성 부분 캡슐화하기
__ 객체 생성 팩토리 만들기
__ 클라이언트 코드 수정하기
__ ‘간단한 팩토리’의 정의
__ 다양한 팩토리 만들기
__ 피자 가게 프레임워크 만들기
__ 서브클래스가 결정하는 것 알아보기
__ 피자 스타일 서브클래스 만들기
__ 팩토리 메소드 선언하기
__ 피자 팩토리 메소드로 피자 주문하기
__ Pizza 클래스 만들기
__ 최첨단 피자 코드 테스트
__ 팩토리 메소드 패턴 살펴보기
__ 병렬 클래스 계층구조 알아보기
__ 팩토리 메소드 패턴의 정의
__ 객체 의존성 살펴보기
__ 의존성 뒤집기 원칙
__ 의존성 뒤집기 원칙 적용하기
__ 생각 뒤집기
__ 의존성 뒤집기 원칙을 지키는 방법
__ 원재료 종류 알아보기
__ 원재료군으로 묶기
__ 원재료 팩토리 만들기
__ 뉴욕 원재료 팩토리 만들기
__ Pizza 클래스 변경하기
__ 올바른 재료 공장 사용하기
__ 바뀐 내용 되돌아보기
__ 새로운 코드로 또 피자 주문하기
__ 추상 팩토리 패턴의 정의
__ 팩토리 메소드 패턴과 추상 팩토리 패턴
__ 디자인 도구상자 안에 들어가야 할 도구들
__ 연습문제 정답

05장 싱글턴 패턴 | 하나뿐인 특별한 객체 만들기

__ 리틀 싱글턴 알아보기
__ 고전적인 싱글턴 패턴 구현법
__ 초콜릿 보일러 코드 살펴보기
__ 싱글턴 패턴의 정의
__ 허쉬! 초콜릿 보일러에 문제 발생
__ 멀티스레딩 문제 살펴보기
__ 멀티스레딩 문제 해결하기
__ 더 효율적으로 멀티스레딩 문제 해결하기
__ 문제를 해결하는 적절한 방법 선택하기
__ 디자인 도구상자 안에 들어가야 할 도구들
__ 연습문제 정답

06장 커맨드 패턴 | 호출 캡슐화하기

__ 만능 IoT 리모컨
__ 협력 업체 클래스 살펴보기
__ 커맨드 패턴 소개
__ 음식 주문 과정 자세히 살펴보기
__ 객체마을 식당 등장인물의 역할
__ 객체마을 식당과 커맨드 패턴
__ 첫 번째 커맨드 객체 만들기
__ 커맨드 객체 사용하기
__ 커맨드 패턴의 정의
__ 커맨드 패턴 클래스 다이어그램 살펴보기
__ 슬롯에 명령 할당하기
__ 리모컨 코드 만들기
__ 커맨드 클래스 만들기
__ 리모컨 테스트
__ API 문서 만들기
__ 작업 취소 기능 추가하기
__ 작업 취소 기능 테스트
__ 작업 취소 기능을 구현할 때 상태를 사용하는 방법
__ 선풍기 명령어에 작업 취소 기능 추가하기
__ 선풍기 테스트 코드 만들기
__ 선풍기 코드 테스트
__ 여러 동작을 한 번에 처리하기
__ 매크로 커맨드 사용하기
__ 커맨드 패턴 활용하기
__ 커맨드 패턴 더 활용하기
__ 실전 적용! 커맨드 패턴
__ 디자인 도구상자 안에 들어가야 할 도구들
__ 연습문제 정답

07장 어댑터 패턴과 퍼사드 패턴 | 적응시키기

__ 어댑터 살펴보기
__ 객체지향 어댑터 알아보기
__ 어댑터 사용 방법 알아보기
__ 오리 어댑터 테스트
__ 어댑터 패턴 알아보기
__ 어댑터 패턴의 정의
__ 객체 어댑터와 클래스 어댑터
__ 실전 적용! 어댑터 패턴
__ Enumeration을 Iterator에 적응시키기
__ 퍼사드 패턴 맛보기
__ 홈시어터 만들기
__ 복잡한 방법으로 영화 보기
__ 퍼사드 작동 원리 알아보기
__ 홈시어터 퍼사드 만들기
__ 단순화된 인터페이스 만들기
__ 편한 방법으로 영화 보기
__ 퍼사드 패턴의 정의
__ 최소 지식 원칙
__ 친구를 만들지 않고 다른 객체에 영향력 행사하기
__ 절친에게만 메소드 호출하기
__ 퍼사드 패턴과 최소 지식 원칙
__ 디자인 도구상자 안에 들어가야 할 도구들
__ 연습문제 정답

08장 템플릿 메소드 패턴 | 알고리즘 캡슐화하기

__ 커피와 홍차 만들기
__ Coffee 클래스와 Tea 클래스 만들기
__ Coffee 클래스와 Tea 클래스 추상화하기
__ 추상화 방법 들여다보기
__ prepareRecipe( ) 메소드 추상화하기
__ 커피와 홍차를 만드는 과정 다시 살펴보기
__ 템플릿 메소드 패턴 알아보기
__ 템플릿 메소드 패턴의 장점 알아보기
__ 템플릿 메소드 패턴의 정의
__ 템플릿 메소드 속 후크 알아보기
__ 후크 활용하기
__ 후크 코드 테스트
__ 할리우드 원칙
__ 할리우드 원칙과 템플릿 메소드 패턴
__ 자바 API 속 템플릿 메소드 패턴 알아보기
__ 템플릿 메소드로 정렬하는 방법
__ 오리 정렬하기
__ 오리 대소 비교
__ 오리 정렬 코드 테스트
__ 템플릿 메소드로 그래픽 출력하기
__ AbstractList로 나만의 리스트 만들기
__ 디자인 도구상자 안에 들어가야 할 도구들
__ 연습문제 정답

09장 반복자 패턴과 컴포지트 패턴 | 컬렉션 잘 관리하기

__ 속보! 객체마을 식당과 팬케이크 하우스 합병
__ 메뉴 항목 살펴보기
__ 루와 멜의 메뉴 구현법 비교하기
__ 자격 요건 구현하기: 1차 시도
__ 반복을 캡슐화하기
__ 반복자 패턴 알아보기
__ 객체마을 식당 메뉴에 반복자 추가하기
__ 객체마을 식당 메뉴에서 반복자 사용하기
__ 종업원 코드에 반복자 적용하기
__ 종업원 코드 테스트
__ 반복자 패턴의 특징 알아보기
__ 통합 식당 코드 다시 살펴보기
__ 인터페이스 개선하기
__ java.util.Iterator 적용하기
__ 변경된 통합 식당 코드 살펴보기
__ 반복자 패턴의 정의
__ 반복자 패턴의 구조 알아보기
__ 단일 역할 원칙
__ Iterable 인터페이스 알아보기
__ 향상된 for 순환문 알아보기
__ 향상된 for 순환문 사용 시 주의사항
__ 객체마을 카페 메뉴 살펴보기
__ 객체마을 카페 메뉴 코드 고치기
__ 종업원 코드에 카페 메뉴 추가하기
__ 카페 메뉴까지 추가된 통합 식당 코드 테스트
__ 반복자와 컬렉션
__ 종업원 코드 개선하기
__ 리팩터링 준비하기
__ 컴포지트 패턴의 정의
__ 컴포지트 패턴으로 메뉴 디자인하기
__ 메뉴 구성 요소 구현하기
__ 메뉴 항목 구현하기
__ 메뉴 구현하기
__ 종업원 코드에 컴포지트 적용하기
__ 메뉴 코드 테스트
__ 메뉴 코드 테스트 결과
__ 디자인 도구상자 안에 들어가야 할 도구들
__ 연습문제 정답

10장 상태 패턴 | 객체의 상태 바꾸기

__ 최첨단 뽑기 기계
__ 상태 기계 기초 지식 알아보기
__ 뽑기 기계 코드 만들기
__ 뽑기 기계 코드 테스트
__ 알림! 뽑기 기계 코드 수정 요청
__ 요청 사항 살펴보기
__ 새로운 디자인 구상하기
__ State 인터페이스 및 클래스 정의하기
__ State 클래스 구현하기
__ 뽑기 기계 코드 수정하기
__ 뽑기 기계 전체 코드 살펴보기
__ 다른 상태 클래스 구현하기
__ 뽑기 기계 구조 다시 살펴보기
__ 상태 패턴의 정의
__ 보너스 알맹이 당첨 기능 추가하기
__ 데모 버전 돌려보기
__ 정상성 점검하기
__ 리필 기능 추가해보기
__ 디자인 도구상자 안에 들어가야 할 도구들
__ 연습문제 정답

11장 프록시 패턴 | 객체 접근 제어하기

__ 모니터링 코드 만들기
__ 모니터링 기능 테스트
__ 원격 프록시의 역할
__ 모니터링 코드에 원격 프록시 추가하기
__ 원격 메소드의 기초
__ 메소드 호출 과정 알아보기
__ 자바 RMI의 개요
__ 원격 서비스 만들기
__ 1단계: 원격 인터페이스 만들기
__ 2단계: 서비스 구현 클래스 만들기
__ 3단계: rmiregistry 실행하기
__ 4단계: 원격 서비스 실행하기
__ 서버에 필요한 코드 살펴보기
__ 클라이언트 코드 살펴보기
__ 뽑기 기계용 원격 프록시 고민하기
__ GumballMachine 클래스를 원격 서비스로 바꾸기
__ RMI 레지스트리 등록하기
__ GumballMonitor 클라이언트 코드 고치기
__ 새로운 모니터링 기능 테스트
__ 데모 버전 만들기
__ 데모 버전 돌려보기
__ 프록시 패턴의 정의
__ 원격 프록시와 가상 프록시 비교하기
__ 앨범 커버 뷰어 만들기
__ 앨범 커버 가상 프록시 설계하기
__ ImageProxy 코드 만들기
__ 앨범 커버 뷰어 테스트
__ 보호 프록시 만들기
__ 객체마을 데이팅 서비스
__ Person 인터페이스 코드 만들기
__ Person 인터페이스용 동적 프록시 만들기
__ 1단계: InvocationHandler 만들기
__ 2단계: 동적 프록시 생성 코드 만들기
__ 데이팅 서비스 코드 테스트
__ 데이팅 서비스 코드 테스트 결과
__ 실전! 프록시 동물원 탐방하기
__ 디자인 도구상자 안에 들어가야 할 도구들
__ 연습문제 정답
__ 준비된 코드: 앨범 커버 뷰어 코드

12장 복합 패턴 | 패턴을 모아 패턴 만들기

__ 패턴 섞어 쓰기
__ 오리 시뮬레이션 게임에 다양한 패턴 적용하기
__ 바뀐 내용 되돌아보기
__ 오리 시뮬레이션 게임 클래스 다이어그램 살펴보기
__ 복합 패턴의 왕 알현하기
__ 모델-뷰-컨트롤러 알아보기
__ 모델-뷰-컨트롤러 조금 더 알아보기
__ 모델-뷰-컨트롤러에 사용되는 패턴 알아보기
__ 모델-뷰-컨트롤러로 BPM 제어 도구 만들기
__ 모델, 뷰, 컨트롤러 합쳐서 보기
__ 모델, 뷰, 컨트롤러 만들기
__ 모델 만들기
__ 뷰 알아보기
__ 뷰 만들기
__ 컨트롤러 만들기
__ 컨트롤러 코드 살펴보기
__ 모델, 뷰, 컨트롤러 코드 합치기
__ MVC 속 전략 패턴 자세히 알아보기
__ 심박 모니터 모델 적응시키기
__ 심박 모니터 컨트롤러 만들기
__ 심박 모니터 코드 테스트
__ 디자인 도구상자 안에 들어가야 할 도구들
__ 연습문제 정답
__ 준비된 코드: BPM 제어 도구 코드

13장 실전 디자인 패턴 | 패턴과 행복하게 살아가기

__ 디자인 패턴의 정의
__ 디자인 패턴의 정의 자세히 살펴보기
__ 새로운 디자인 패턴 발견하기
__ 디자인 패턴 분류하기
__ 디자인 패턴 범주 알아보기
__ 패턴으로 생각하기
__ 패턴을 대하는 마음가짐
__ 전문 용어의 위력 되새기기
__ 4인방과 함께 하는 객체마을 여행
__ 패턴을 찾아 떠나기
__ 실전! 패턴 동물원 탐방하기
__ 사악한 안티 패턴 섬멸하기
__ 디자인 도구상자 안에 들어가야 할 도구들
__ 객체마을을 떠나며
__ 연습문제 정답

14장 기타 패턴 | 다양한 패턴 빠르게 알아보기

__ 브리지 패턴
__ 빌더 패턴
__ 책임 연쇄 패턴
__ 플라이웨이트 패턴
__ 인터프리터 패턴
__ 중재자 패턴
__ 메멘토 패턴
__ 프로토타입 패턴
__ 비지터 패턴

찾아보기

저자 소개 (3명)

출판사 리뷰 출판사 리뷰 보이기/감추기

이 책을 읽어야 하는 당신!

· 소프트웨어 출시는 완벽 그 자체! “어?~ 코드 수정하려고 다시 보니까 난리…”
→ 유지보수만 생각하면 그저 눈물인 주니어 (자바) 개발자

· 코딩 실력은 장판파의 장비! “어?~ 팩토리 메소드 패턴을 이렇게 적용했던가?”
→ 디자인 패턴을 다시 한번 살펴보고 싶은 시니어 (자바) 개발자

· 혼자 공부해서 다진 프로그래밍 언어 실력! “어?~ 근데 패턴이 뭐야?”
→ 개발 현장의 소프트웨어 디자인 방법이 궁금한 개발자 지망생

경력과 세대를 넘어 오랫동안
객체지향 개발자의 성장을 도와준
디자인 패턴 교과서의 화려한 귀환!


* 2005년부터 디자인 패턴 도서 분야 부동의 1위
* 디자인 패턴의 고전이자 바이블

· 디자인 패턴은 선배들의 경험이 담긴 문제 해결 방법입니다

예로부터 건물을 지을 때는 사전 설계가 중요했습니다. 어떤 문제나 수정 사항이 발생했을 때, 하나하나 시행착오를 겪으면서 다시 짓기에는 시간과 비용이 많이 들기 때문입니다. 사람들은 같은 실수를 반복하지 않기 위해 자신들의 시행착오를 바탕으로 특정 상황에서 발생하는 문제의 패턴을 발견하고 해결방안을 기록으로 남겼습니다. 이를 ‘디자인 패턴’이라고 부릅니다. 건축학에서 시작된 디자인 패턴은 코드로 소프트웨어를 구축한다는 점에서 소프트웨어 설계에도 동일하게 적용할 수 있습니다. 누군가‘가’ 겪은 문제가 누군가‘만’ 겪은 문제는 아니므로 동일한 문제를 먼저 경험한 선배들의 지식을 활용한다면 소프트웨어 설계의 효율을 추구할 수 있습니다.

· 디자인 패턴은 시간과 노력을 줄여 줍니다

세상에 완벽한 소프트웨어는 없습니다. 시대에 따라 기술과 사용자의 요구가 변하기 때문입니다. 프로그래밍을 할 때 항상 ‘지금 이 소프트웨어를 언젠가는 고쳐야 한다’라고 생각해야 합니다. 사전에 소프트웨어를 고칠 때 코드에 미치는 영향을 최소화할 수 있도록 디자인한다면 자질구레한 코딩에서 벗어나 더 좋은 소프트웨어를 만드는 데 더 많은 시간을 투자할 수 있습니다. 디자인 패턴의 유용성은 단지 선배들의 코드를 ‘재사용’하는 것에 그치지 않습니다. 팀을 이끌며 프로젝트를 진행하고 다양한 형태로 발생할 수 있는 문제를 해결하는 데도 적용할 수 있습니다. ‘디자인 패턴’에 관한 조예가 깊다면 적재적소에 맞는 해결책을 효율적으로 제시할 수 있으며, “자신에게 귀를 기울이고 있는 모든 객체를 추적할 수 있고, 새로운 데이터가 들어올 때마다 각각의 청취자한테 메시지를 보내 주며, 청취자는 언제든지 청취자 목록에 참가하거나 탈퇴할 수 있는 방송용 클래스라는 걸 만들어서 이 문제를 해결하자!”라고 길게 설명할 필요 없이 “옵저버 패턴을 쓰자!"라는 한 문장으로 효율적인 의사소통을 할 수 있습니다.

· 디자인 패턴은 용도에 맞게 적절하게 사용해야 하는 도구입니다

하지만 디자인 패턴이 만병통치약은 아닙니다. 빈대를 잡으려고 초가삼간을 다 태우면 안되는 것처럼 패턴을 아무 코드에나 적용해서는 안 됩니다. 〈Hello, World!〉 같은 프로그램에까지 패턴을 적용하면 오히려 코드가 복잡해지고, 남들이 알아보기 힘들어지고, 유지보수가 어려워져 결국 파국에 이르기 때문입니다. 디자인 패턴은 좋은 소프트웨어를 만드는 도구일 뿐입니다. 모든 도구는 용도에 맞게 적절하게 사용할 때 그 위력을 발휘합니다. 사실 어떤 코드에 디자인 패턴을 써야 하는지 배우려면 많은 시간과 노력이 필요합니다. 디자인 패턴을 완전히 이해해야만 어떤 코드가 스파게티 코드인지 알 수 있기 때문입니다. 하지만 디자인 패턴의 핵심 요소만 쏙 뽑아서 알려주고, 재미있게 설명해 주는 책이 있다면 어떨까요? 적은 시간과 노력으로 디자인 패턴을 배울 수 있어서 행복하지 않을까요? 그런 책을 멀리서 찾을 필요는 없습니다. 『헤드 퍼스트 디자인 패턴(개정판)』이 바로 여기 있으니까요.

『헤드 퍼스트 디자인 패턴(개정판)』에서 다루는 내용

『헤드 퍼스트 디자인 패턴』은 2005년 출간 후 17년이라는 시간 동안 디자인 패턴 분야에서 부동의 베스트셀러 1위를 지켜왔습니다. 경력과 세대를 넘어 많은 개발자에게 사랑받는 이유는 다음과 같이 ‘GoF 디자인 패턴의 핵심’만을 다루는 데 있습니다.

* 14가지 GoF 핵심 패턴의 사용 시기와 이유!
* 즉시 디자인에 적용하는 방법!
* 쓰지 말아야 하는 상황!
* 패턴의 근간이 되는 객체지향 디자인 원칙!
* 그 밖에 알아 두면 좋은 9가지 패턴의 정의와 사용법!

『헤드 퍼스트 디자인 패턴(개정판)』에서 달라진 점

* 보편적으로 사용하는 자바 8부터 최신 버전인 자바 16 이상에서 무리 없이 동작할 수 있게 예제 코드 수정
* 부가 설명과 Q&A 질문 추가
* 한국 독자만을 위한 새로운 삽화와 한글 친화적인 구성

* 16여 년 만의 개정을 기념해 초판보다 편안하게 디자인 패턴을 학습할 수 있도록 새로운 한국어판을 만들었습니다.

〈헤드 퍼스트〉 시리즈의 특징

그리고 디자인 패턴을 지루하지 않은 방법으로 배우는 것도 정말 중요합니다. 〈헤드 퍼스트〉 시리즈를 한 권이라도 읽어 보았다면 이 책이 어떤 책인지 쉽게 짐작할 수 있을 겁니다. ‘볼 거리가 많고, 머릿속에 쏙쏙 들어오는 방식’으로 구성되어 있어 머리가 먼저 반응합니다.

* 친구와 이야기하는 듯한 편안한 대화체!
* 예상하기 어려운 재치 넘치는 구성!
* 90개가 넘는 도전적인 연습문제!
* 여러 관점에서 생각해 볼 수 있는 흥미로운 이야기!
* 빠르게 따라해 볼 수 있는 간단한 예제 코드!

이 밖에 패턴 중독을 피하는 방법과 디자인 패턴을 발견하는 방법도 다루고 있어 미래의 패턴 디자이너에게도 도움이 될 것입니다.

예제 파일 다운로드

→ https://www.hanbit.co.kr/src/10526
→ https://wickedlysmart.com/head-first-design-patterns

관련 도서

· 『이것이 자바다』(한빛미디어, 2015)
· 『혼자 공부하는 자바』(한빛미디어, 2019)
· 『이것이 C#이다』(한빛미디어, 2021)
· 『쉽게 배워 바로 써먹는 디자인 패턴』(한빛미디어, 2020)
· 『머신러닝 디자인 패턴』(한빛미디어, 2021)

회원리뷰 (46건) 리뷰 총점9.6

혜택 및 유의사항?
내용은 좋은데 다이어그램 노테이션이 엉망 내용 평점4점   편집/디자인 평점1점 y******g | 2022.12.31 | 추천4 | 댓글0 리뷰제목
원서 자체가 잘 만들어진 책이기도 하고, 2편이라 달라진 내용이 많지 않습니다. 즉, 내용은 이전과 크게 다르지 않고 그럼에도 여전히 좋습니다. 그러나 원서와 달리, 번역서에서 클래스 다이어그램 등에서 표기법이 엉망입니다. 특히 상속이나 인터페이스 구현, 의존성 관계 등의 화살표 표시들은 챕터간에 일관성도 없고, 1판(개정전)에서 원서를 그대로 가져와 잘 작성되었던 표기를;
리뷰제목
원서 자체가 잘 만들어진 책이기도 하고, 2편이라 달라진 내용이 많지 않습니다. 즉, 내용은 이전과 크게 다르지 않고 그럼에도 여전히 좋습니다.

그러나 원서와 달리, 번역서에서 클래스 다이어그램 등에서 표기법이 엉망입니다. 특히 상속이나 인터페이스 구현, 의존성 관계 등의 화살표 표시들은 챕터간에 일관성도 없고, 1판(개정전)에서 원서를 그대로 가져와 잘 작성되었던 표기를 오히려 개정판 번역서에서 다이어그램을 재작성하면서 엉망으로 바꾸어서, 의존성 관계인지 상속관계인지 조차 구분이 안되도록 되어있어요. 개정판 원서와 개정판 번역서의 다이어그램이 다릅니다.

게다가 1편과 2편 모두 같은 사람이 번역했는데, 이상하리만큼 2편 번역의 질이 더 안좋습니다. 마침 1편 원서(영문)가 있는데, 2편의 번역글을 보고 이게 뭔말이야 찾아봤고 1편 한글판도 구해서 비교해보니 1편 번역이 더 낫습니다.

원서를 구입하시거나, 그냥 예전 1판 번역서를 구해서 보시는 것을 추천합니다.
4명이 이 리뷰를 추천합니다. 공감 4 댓글 0
포토리뷰 헤드 퍼스트 디자인 패턴 : 14가지 GoF 필살 패턴! 내용 평점5점   편집/디자인 평점5점 스타블로거 : 수퍼스타 좋**상 | 2022.04.25 | 추천3 | 댓글0 리뷰제목
디자인 패턴. 개발자라면 '꼭' '제대로' 이해하고 싶은 것이죠. GoF의 디자인패턴이 가장 고전이고 최고이긴 하지만 쉽게 이해하기 어렵습니다.   예전에 지인에게 디자인 패턴에 대한 책을 추천해 달라고 했더니 '헤드 퍼스트 디자인 패턴'을 말하더군요. 그런데 절판중이라 볼 수 없었습니다. 그런데....그 책의 개정판이 나오니 너무 반가웠습니다.     이 책은;
리뷰제목

디자인 패턴.
개발자라면 '꼭' '제대로' 이해하고 싶은 것이죠.
GoF의 디자인패턴이 가장 고전이고 최고이긴 하지만 쉽게 이해하기 어렵습니다.

 

예전에 지인에게 디자인 패턴에 대한 책을 추천해 달라고 했더니 '헤드 퍼스트 디자인 패턴'을 말하더군요.
그런데 절판중이라 볼 수 없었습니다.
그런데....그 책의 개정판이 나오니 너무 반가웠습니다.

 


 

이 책은 그 많은 디자인 패턴 중 가장 많이 사용하는, 그리고 꼭 알고 있어야 할 14가지 디자인 패턴에 대해 설명하고 있습니다.
결론부터 말하자면 왜 지인이 이 책을 추천했는지를 알 수 있었습니다.
'헤드 퍼스트' 시리즈는 쉬운 설명으로 유명하죠.
쉽지 않은 디자인 패턴을 정말 이해하기 쉽게 설명해 주고 있습니다.

 




 

위 그림만으로도 어떤 내용인지 와 닿지 않나요?
그간 알쏭달쏭했던 디자인 패턴에 대해 이 책으로 정확하게 이해할 수 있었습니다.
함께 제공하는 자바 코드는 어떻게 구현하고 응용할 수 있는지 명확하게 보여줍니다.


 

디자인 패턴.
우리말로 옮기면 '디자인 형태, 유형' 정도로 번역할 수 있습니다.
지금까지 소프트웨어를 개발하면서 도출된 공통된 유형들에 대해 최적화된 양식을 제공하는 것입니다.
어느 정도 경력을 프로그래머라면 디자인 패턴을 배우지 않았어도 이미 몇몇의 패턴을 적용해 사용하고 있을 수도 있습니다.
디자인 패턴을 배워야 하는 이유는 이미 잘 설계되고 검증된 패턴을 사용할 수 있다는 것이죠.
같은 수레바퀴를 또 만들 필요가 있을까요?

 


 

패턴은 정형화되어 있지만, 그 자체로는 결코 정해져 있지 않습니다.
앞으로도 수많은 패턴들이 나올 것이고, 직접 만들 수도 있습니다.
패턴은 해결을 위한 도구임을 잊지 말아야 합니다.
디자인 패턴에 너무 몰입하게 되면 결과가 아닌 방법에 치우칠 수 있습니다.
디자인 패턴을 배우는 목적은 해결을 위한 다양한 도구 사용법입니다.

 

누군가 저에게 쉽고 재미있는 디자인 패턴 책을 물어본다면 이 책을 권하고 싶습니다.
이 책은 디자인 패턴이 결코 어렵지 않음을 보여주고 있습니다.

 

[한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.]

3명이 이 리뷰를 추천합니다. 공감 3 댓글 0
디자인패턴의 고전이자 바이블 내용 평점5점   편집/디자인 평점5점 j*******a | 2022.10.02 | 추천1 | 댓글0 리뷰제목
디자인패턴은 원래 건축학에서 유래되었다 한다. 오랜 시간동안 다양한 건물을 건축하면서 마주했던 문제들을 정리하다 보니 많은 건축학자들이 다양한 방법으로 문제를 해결하기 위해 노력하였고 그 결과물들은 몇 가지 패턴을 보이게 된다. 그러한 내용을 정리하고 건축학에서 공유를 하며 점점 보완해가고 발전하였다고 한다.   가우디 성당 (출처 : 나무위키)   (가;
리뷰제목
디자인패턴은 원래 건축학에서 유래되었다 한다. 오랜 시간동안 다양한 건물을 건축하면서 마주했던 문제들을 정리하다 보니 많은 건축학자들이 다양한 방법으로 문제를 해결하기 위해 노력하였고 그 결과물들은 몇 가지 패턴을 보이게 된다. 그러한 내용을 정리하고 건축학에서 공유를 하며 점점 보완해가고 발전하였다고 한다.

 

가우디 성당 (출처 : 나무위키)

 

(가우디는 어떻게 저런 건물을 설계 및 건축할 수 있었을까.)

건축학과 동일하게 소프트웨어 분야에서도 시스템, 서비스 등을 설계하는 과정에서 다양한 문제를 접목하게 되었고, 해당 문제들을 많은 개발자들이 어떻게 해결하였는지 살펴보다 보니 건축학과 유사하게 특정 문제들을 동일한 패턴으로 해결해 나아가는 과정을 보이게 된다.

이러한 패턴들은 암암리에 개발자들끼리 공유가 되고 사용되었던 것을 네 명의 개발자(a.k.a GoF)가 공식화하였다. 그 공식화한 책이 그 유명한 `GoF의 디자인패턴` 이다. 이 책과 함께 디자인패턴 계의 바이블로 불리울 책이 자바 기반의 언어로 출시된다. 그 책이 헤드퍼스트 디자인패턴 이다.

 

다루는 내용

다루는 내용은 개정판 이전과 거의 동일하다.

  • 14가지 GoF 핵심 패턴의 사용 시기와 이유!
  • 즉시 디자인에 적용하는 방법!
  • 쓰지 말아야 하는 상황!
  • 패턴의 근간이 되는 객체지향 디자인 원칙!
  • 그 밖에 알아 두면 좋은 9가지 패턴의 정의와 사용법!

 

헤드 퍼스트 디자인 패턴(개정판) 에서 달라진 점

이 개정판은 새로운 한국어 판으로 개정되어 출시되었다. 조금 더 한국 개발자들에게 친숙하도록 수정되고 구성되었다. 물론 새로운 패턴이 추가되거나 삭제되거나 하는 큰 변경은 존재하지 않는다. (당연하다, 수십년동안 쌓여온 지식의 패턴이 쉽게 변경되진 않을 것이다.)

  • 보편적으로 사용하는 자바 8부터 최신 버전인 자바 16 이상에서 무리 없이 동작할 수 있게 예제 코드 수정
  • 부가 설명과 Q&A 질문 추가
  • 한국 독자만을 위한 새로운 삽화와 한글 친화적인 구성

 

헤드퍼스트를 추천하는 이유

헤드퍼스트는 전 세계의 개발자들에게 찬사를 받은 책이다. 디자인패턴 계의 고전이자 바이블로도 불리우는 책은 그 이유가 있을 것이다.

패턴에 대해 설명하고 코드만을 제시하는 것이 아니다. 왜 이러한 패턴이 필요하게 되었는지 많은 개발자들이 마주했던 여러 문제들을 실제로 책에서 제시한다.

1) 기본에 충실한 지침서

 

 

헤드퍼스트 디자인 패턴 개정판은 기존의 헤드퍼스트 디자인패턴에서 보았던 우수한 내용들이 그 이상으로 향상되어 포함되어 있다고 생각하면 된다. 당연히 많은 초보개발자들이 선택했던 이유는 고스란히 담겨있다. 기본에 가장 충실하면서도 재밌게 공부할 수 있는 요소들은 그대로라는 의미이다.

2) 딱딱하지 않은 지침서

다른 도서와 동일하게 UML, 코드, 예시 프로젝트를 제공한다. 하지만 가장 큰 차이는 다양한 일러스트를 통한 이미지 친화적인 도서일 것이다.

 

 

이미지 친화적인 도서는 글로만 읽고 이해하는 것보다 더욱 따른 이해도를 제공한다. 또한 서술식이 아닌 등장인물을 통한 대화식은 더욱 가볍게 지식을 습득할 수 있도록 제공한다.

3) 연습문제

도서에서 제공하는 내용만으로는 단편적인 부분만 이해할 수 밖에 없다. 스스로 문제를 겪어 부딪히며 생각하면서 더욱 성장할 수 있는데, 초보 개발자들은 그런 과정과 기회를 접하기 어렵다. 하지만 해당 도서는 90가지 이상의 연습문제를 제공한다. 해당 문제를 가벼운 빈칸 채우기부터 많은 고민이 필요한 상황 제시까지 문제로 제공한다.

 

 

가장 추천하는 문제는 '뇌단련' 문제들이다. 고민의 고민을 거듭해볼 것을 추천한다. 문제가 너무 쉽다고 넘어가지 말고 해당 문제를 다시 한번 고민해보자. 그리고 코드 작성이 필요하다면 꼭 작성해보고 나의 솔루션에 빈틈은 없는지도 다시 한번 체크해보자.

 

어떻게 공부하면 좋은가

헤드퍼스트는 여러 문제들을 책에서 제시한다고 설명하였다. 그 문제들을 읽고 해결책을 보는 것이 아니라 책을 잠시 덮고 해당 문제를 해결하기 위한 솔루션을 고민하고 제시하고 코드로 작성해보자. 해당 코드가 실제로 객체지향적으로 구현되었고, SOLID 원칙을 잘 준수하고 있는지 확인해보자. 그리고 해답을 보는 것을 추천한다.

이러한 과정을 통해 설계하는 생각하는 힘과 객체지향에 대한 이해도가 한층 높아질 것이다. 그리고 책에서 제시해준 패턴과 본인의 솔루션을 꼭 비교 분석해보자. 왜 나의 솔루션보다 책에서 제시한 해결책이 나은지 비교를 하는 습관을 들이자. 이 습관과 고민의 시간과 과정들이 더 나은 개발자가 될 것이라 믿는다.

 

결론

무슨 말이 필요할까. 헤드퍼스트 디자인패턴 이라는 도서 제목 하나만으로 모든 설명이 다 되었다고 생각한다. 초보 개발자, 처음 디자인패턴을 접하게되는 개발자라면 무조건 입문서로 추천한다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

출처: https://sonseungha.tistory.com/636 [Developer's Delight:티스토리]

1명이 이 리뷰를 추천합니다. 공감 1 댓글 0

한줄평 (7건) 한줄평 총점 9.8

혜택 및 유의사항 ?
평점5점
와 이게 개정판이 나오다니 ㅋㅋㅋ
4명이 이 한줄평을 추천합니다. 공감 4
M*******y | 2022.03.17
평점5점
나온 것만으로 그저 감사,,,
3명이 이 한줄평을 추천합니다. 공감 3
쿠**쿠 | 2022.03.18
평점5점
개정판은 왠지 공감대가 생긴다 원서 1판번역서 이것까지 다 있다
2명이 이 한줄평을 추천합니다. 공감 2
YES마니아 : 플래티넘 토***크 | 2022.04.03
스프링분철 서비스를 선택하세요.
수량감소 수량증가 32,400
  •  다운받은 받은 쿠폰은 결제 페이지에서 적용해 주세요.
  •  분철옵션 선택 시, 배송일이 변경될 수 있습니다.
  •  분철상품은 해외배송이 불가합니다.
1   32,400

스프링분철 신청 가능

뒤로 앞으로 맨위로 공유하기