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

한빛미디어

쉽게 배워 바로 써먹는 디자인 패턴

24가지 패턴으로 알아보는 객체지향의 원리

한빛미디어

집필서

판매중

  • 저자 : 이호진
  • 출간 : 2020-10-05
  • 페이지 : 540 쪽
  • ISBN : 9791162243404
  • 물류코드 :10340
초급 초중급 중급 중고급 고급
4.4점 (11명)
좋아요 : 6

객체지향 프로그래밍 설계 원칙, 패턴을 알면 개발이 보인다

 

디자인 패턴은 어느 날 갑자기 생겨난 방식이 아니다. 객체지향 개발 과정에서 겪는 다양한 이슈를 종합해보면 서로 비슷한 유형의 문제다. 개발자들은 서로 자신의 경험을 바탕으로 문제를 해결해나갔다. GoF는 객체지향 설계 시 발생하는 문제점을 목록화하여 24가지 패턴으로 정리한다.

 

이 책은 디자인 패턴의 개념과 동작 원리를 설명한다. 각 장을 24가지 패턴으로 구성하였으며 누구나 이해할 수 있는 쉬운 예제와 눈높이를 낮춘 설명은 디자인 패턴을 배우고 학습하는 데 유용하다. 객체지향을 이해하고 프레임워크를 학습하려는 개발자에게 유익한 가이드가 될 것이다.

 

 

이 책에서 다루는 내용

  • 쉬운 예제로 설명하는 24가지 디자인 패턴
  • 유지보수를 고려한 설계 방법론
  • 최고의 성능을 위한 개발 방법론

 

 

출판사 리뷰

 

객체지향 개념

이 책은 객체지향 디자인 패턴 카탈로그를 다룬다. 객체지향 개념과 설계 방법을 이해한다면 디자인 패턴을 학습하기가 훨씬 수월하다. 학습에 필요한 디자인 패턴의 기초 개념과 원리를 같이 설명한다.

 

디자인 패턴 카탈로그

패턴 카탈로그에서 꼭 필요한 부분을 선별해 우선적으로 학습할 수 있도록 구성했다. 패턴 각각의 독립적인 특성에 맞게 집필했으며, 패턴들을 쉽게 이해할 수 있도록 주요 내용을 반복 설명한다. 하지만 동일한 객체지향 개념이라도 패턴에서 의도하는 방법에 따라 다른 시각으로 바라볼 수 있으므로 찬찬히 읽어보기를 권한다.

 

학습 목적

특정 언어에 종속되지 않고 디자인 패턴의 개념과 동작 원리 위주로 학습할 수 있도록 구성했다. 디자인 패턴을 처음 접하는 독자도 쉽게 이해할 수 있도록 간단한 코드와 그림으로 설명한다. 객체지향 설명은 일반적인 도형을 이용해 더욱더 쉽게 이해할 수 있게 구성했다.

저자

이호진

전기전자를 전공하고 주로 마이크로프로세서, 하드웨어 설계, 펌웨어, 로봇 개발 등과 관련된 일을 했다. 또한 산업용 레이저 프린터, ARM, 언어 분석, 알고리즘 개발을 했다. 외국계 기업에서 리눅스 운영체제, 백업 및 서버 가상화 등 다양한 비즈니스 경험을 거쳐 최근에는 웹 및 모바일과 관련된 개발 활동을 하고 있다. 현재는 경험과 지식을 후배들에게 전달하기 위해 관련 내용을 정리하며 집필 활동에 전념하고 있다.

CHAPTER 0 디자인 패턴 

0.1 패턴

0.2 소프트웨어 공학

0.3 설계 원칙

0.4 GoF

0.5 패턴의 요소

0.6 유지 보수

0.7 정리

 

[PART 1 생성 패턴 - 추상화를 통해 객체 생성하기]


CHAPTER 1 팩토리 패턴 

1.1 클래스와 객체지향

1.2 의존성

1.3 의존성 주입

1.4 의존 관계의 문제점

1.5 팩토리 패턴

1.6 단순 팩토리

1.7 장점과 단점

1.8 관련 패턴

1.9 정리

 

CHAPTER 2 싱글턴 패턴 

2.1 객체 생성

2.2 유일한 객체

2.3 싱글턴

2.4 싱글턴 설계

2.5 인스턴스 생성

2.6 정적 클래스

2.7 싱글턴 확장

2.8 자원 처리

2.9 관련 패턴

2.10 정리

 

CHAPTER 3 팩토리 메서드 패턴 

3.1 추상화

3.2 패턴 확장

3.3 상위 클래스

3.4 하위 클래스

3.5 매개변수

3.6 관련 패턴

3.7 정리

 

CHAPTER 4 추상 팩토리 패턴 

4.1 팩토리 메서드

4.2 그룹

4.3 팩토리 그룹

4.4 공장 추가

4.5 부품 추가 실습

4.6 패턴 결합

4.7 장점과 단점

4.8 관련 패턴

4.9 정리

 

CHAPTER 5 빌더 패턴 

5.1 건축물

5.2 객체 실습

5.3 빌더

5.4 알고리즘

5.5 생성 요청

5.6 관련 패턴

5.7 정리

 

CHAPTER 6 프로토타입 패턴 

6.1 생성

6.2 복사

6.3 프로토타입 패턴

6.4 특징

6.5 관련 패턴

6.6 정리

 

[PART 2 구조 패턴 - 상속과 합성을 사용해 객체 확장하기]


CHAPTER 7 어댑터 패턴 

7.1 오래된 코드

7.2 잘못된 코드

7.3 어댑터

7.4 클래스 어댑터

7.5 객체 어댑터

7.6 설계

7.7 관련 패턴

7.8 정리

 

CHAPTER 8 브리지 패턴 

8.1 복잡한 코드

8.2 상속

8.3 패턴 설계 1

8.4 패턴 설계 2

8.5 장점과 단점

8.6 관련 패턴

8.7 정리

 

CHAPTER 9 복합체 패턴 

9.1 객체를 포함하는 객체

9.2 복합체의 구조적 특징

9.3 투명성을 활용한 동일한 설계

9.4 추상화를 통한 일반화 작업

9.5 Leaf

9.6 Composite

9.7 패턴 결합

9.8 적용 사례 1

9.9 적용 사례 2

9.10 적용 사례 3

9.11 장단점 및 결과

9.12 관련 패턴

9.13 정리

 

CHAPTER 10 장식자 패턴 

10.1 기능 추가

10.2 조건 추가

10.3 확장

10.4 객체에 추가 장식하기

10.5 기본 실습

10.6 장단점 및 결과

10.7 관련 패턴

10.8 정리

 

CHAPTER 11 파사드 패턴 

11.1 협업을 위한 분리 작업

11.2 파사드 패턴을 응용한 API

11.3 파사드를 이용한 단순화

11.4 최소 지식 원칙

11.5 기본 실습

11.6 파사드 패턴의 효과

11.7 관련 패턴

11.8 정리

 

CHAPTER 12 플라이웨이트 패턴 

12.1 메모리 자원

12.2 자원 공유

12.3 상태 구분

12.4 패턴 실습

12.5 관련 패턴

12.6 정리

 

CHAPTER 13 프록시 패턴 

13.1 객체를 대행하는 프록시

13.2 객체 가로채기

13.3 객체 분리

13.4 프록시 생성

13.5 행위를 처리하는 핸들러

13.6 동적 프록시

13.7 원격 프록시

13.8 가상 프록시

13.9 보호용 프록시

13.10 스마트 참조자

13.11 정리

 

[PART 3 행동 패턴 - 복합 구조로 객체의 책임 분산하기]


CHAPTER 14 반복자 패턴 

14.1 객체의 집합

14.2 배열

14.3 집합체

14.4 반복자

14.5 작업 분할

14.6 관련 패턴

14.7 정리

 

CHAPTER 15 명령 패턴 

15.1 명령 처리

15.2 명령 패턴의 구성과 특징

15.3 인터페이스

15.4 명령

15.5 리시버

15.6 인보커

15.7 클라이언트

15.8 undo

15.9 장단점

15.10 관련 패턴

15.11 정리

 

CHAPTER 16 방문자 패턴 

16.1 데이터 처리

16.2 분리

16.3 원소 객체

16.4 방문자

16.5 반복자

16.6 관련 패턴

16.7 정리

 

CHAPTER 17 체인 패턴 

17.1 제어문

17.2 동작조건

17.3 행동 분리

17.4 사슬 연결

17.5 체인 패턴

17.6 미들웨어

17.7 관련 패턴

17.8 정리

 

CHAPTER 18 감시자 패턴 

18.1 감시자

18.2 구성

18.3 관계

18.4 주체

18.5 감시자

18.6 동작 실습

18.7 활용

18.8 관련 패턴

18.9 정리

 

CHAPTER 19 중재자 패턴 

19.1 중재

19.2 중재자

19.3 동료 객체

19.4 기본 실습

19.5 관련 패턴

19.6 정리

 

CHAPTER 20 상태 패턴 

20.1 상태란

20.2 상태 처리

20.3 패턴 구현

20.4 객체 생성

20.5 상태 전환

20.6 실습

20.7 효과

20.8 패턴 유사성

20.9 적용 사례

20.10 정리

 

CHAPTER 21 메멘토 패턴 

21.1 상태 저장

21.2 캡슐화

21.3 메멘토

21.4 Originator 클래스

21.5 CareTaker 클래스

21.6 관련 패턴

21.7 정리

 

CHAPTER 22 템플릿 메서드 패턴 

22.1 프로그램의 구조

22.2 템플릿

22.3 일반화

22.4 추상화

22.5 템플릿 메서드

22.6 의존성 디자인

22.7 관련 패턴

22.8 정리

 

CHAPTER 23 전략 패턴 

23.1 문제

23.2 알고리즘

23.3 분리

23.4 인터페이스

23.5 전략

23.6 전략 실행

23.7 적용 사례

23.8 관련 패턴

23.9 정리

 

CHAPTER 24 인터프리터 패턴 

24.1 언어

24.2 언어 설계

24.3 처리계

24.4 중간 코드

24.5 해석

24.6 클래스 표현

24.7 관련 패턴

24.8 정리

  • 개인적으로 디자인 패턴 책은 잊을만~~ 하면 한번씩은 읽어줘야 하는 책이라고 생각한다. 그렇다고 심오한 원리가 숨겨져 있어 무겁게 한자한자 곱씹어 읽어야 한다는 뜻은 아니고 가볍게나마 ‘그랬었지~’ 라는 느낌으로 한번씩은 상기하면 좋겠다는 것이다. 다만 이것이 나의 편협된 생각인지는 모르겠으나.. 디자인 패턴을 적용하고 설명하는 언어가 php라는 점에서 조금 아쉬움이 있다는걸 숨기지 않겠다. 조금 도 업계에 레퍼런스가 되는 언어라던지(C/C++ or Java) 혹은 트렌디한 언어(python or go)를 통해 디자인 패턴을 설명했었다면 더 좋지 않았을까 싶다. 알게 모르게 php를 많이 쓰고 있고 도메인이 넓기는 하지만 학생들이나 입문자의 관점에서는 프로그래밍 입문을 C/C++, Java, python, go 로 하는 만큼 그런 언어들로 디자인 패턴을 보여줬었다면 조금 더 영양가 있지 않았을까 하는 생각이 들었다. 디자인 패턴 내용 자체는 부족함 없이 설명을 잘해주고 있어 좋았다.

  • image.png
     
     
     

    이번엔 디자인 패턴 책이다.

     

    디자인 패턴, 디자인 패턴 말만 들었지 한번도 각 잡고 공부한 적이 없다. 왜 쓰는지 잘 알고 쓰는 건 고작해야 싱글턴 패턴, 빌더 패턴 정도이려나. 가끔 실무에서 일을 하다가 고민되는 지점이 생기면 '이런 문제를 쉽게 풀어가려면 디자인 패턴을 공부해야할까?' 싶었다. 이것도 말이 되고 저것도 말이 되는데 뭐가 더 좋은 방법인지 모르겠을 때. 집에 Head First Design Patterns 책을 가지고 있는데 앞에 10장 읽고 도저히 안 읽혀서 가지고만 있었다. 아무리 번역이 잘 되어도 번역서보다는 국내 도서가 좋다.

     

    약 500페이지 분량의 책이고, 컬러인듯 컬러 아닌 책이다. 이런 걸 뭐라고 하지? 주황색, 검은색, 갈색 세 가지 정도의 컬러를 쓰는 듯한데 개인적으로는 이런 책을 매우 선호한다. 얇은 종이의 흑백 책은 정말 싫고, 그냥 흑백 책은 딱딱하고 올 컬러책은 부담스러우므로 이런 책이 딱이다.

     

    24가지 패턴을 소개한다.

     

    <생성 패턴>

    1. 팩토리 패턴

    2. 싱글턴 패턴

    3. 팩토리 메서드 패턴

    4. 추상 팩토리 패턴

    5. 빌더 패턴

    6. 프로토타입 패턴

     

    <구조 패턴>

    7. 어댑터 패턴

    8. 브리지 패턴

    9. 복합체 패턴

    10. 장식자 패턴

    11. 파사드 패턴

    12. 플라이웨이트 패턴

    13. 프록시 패턴

     

    <행동 패턴>

    14. 반복자 패턴

    15. 명령 패턴

    16. 방문자 패턴

    17. 체인 패턴

    18. 감시자 패턴

    19. 중재자 패턴

    20. 상태 패턴

    21. 메멘토 패턴

    22. 템플릿 메서드 패턴

    23. 전략 패턴

    24. 인터프리터 패턴

     

    많기도 하다.

    아예 처음 들어본 것도 있고 몇 번 들어봤지만 뭔지 전혀 모르는 것도 있고 많이 듣고 얼핏 아는 것도 있다. 보다 보니 아, 남들도 똑같은 고민을 했구나 혹은 이미 쓰고 있었구나 싶은 것들이 있어서 흥미롭게 읽을 수 있었다. 초중급으로 분류된 책 답게 내용이 아주 깊거나 어렵지는 않고 말그대로 쉽게 배우는 책이라 부담 없이 봤다. 사실 코드가 PHP로 되어있는 건 모르고 골랐는데 낯설다 뿐이지 아예 못 볼 지경은 아니었다. 내가 쓰는 언어였으면 더 좋았겠으나.

     

    이런 책 읽는다고 갑자기 패턴의 달인이 되거나 문제 상황에서 아, 그것! 하지는 않겠지만 읽어두고, 생각날 때마다 들춰보고 잊을만 할 때 다시 꺼내 읽다 보면 옷깃에 꽃물 들듯이 뇌에 스며들지 않을까, 하는 기대를. 이거 하나 읽으면 디자인 패턴 정복! 이라는 마음가짐 보다는 24개의 미니북을 하나로 엮어놓은 책이라고 보면 더 좋을듯.

     

     

     

    

  • 개발을 공부하면서 많은 디자인 패턴을 배웁니다. 싱글톤, 팩토리, 추상화, 안드로이드는 MVC MVP MVVM... 각각의 디자인 패턴들이 어떤 역할을 하는지 공부하지만 바로 이해가 되지는 않습니다. 외국어를 배울 때는 어원이나 사용하게 된 배경을 알아야 자연스럽게 체득하고 쓸 수 있듯, 프로그래밍 언어도 배경과 역사를 알면 보다 이해가 쉬워질 것입니다. 이 책은 그 이해를 돕는 책입니다. 아직 모든 내용을 무리없이 소화하기는 어렵지만 읽어 놓으면 도움이 될 것이라는 느낌이 드는 도서였습니다.

  • KakaoTalk_Photo_2020-10-25-23-06-27.jpeg

     

    내가 디자인 패턴을 처음 접했을때는 'GoF의 디자인 패턴', 'Head First Design Patterns' 정도의 책이 있었던거 같은데 지금 인터넷 서점에 검색해보니 언어별로 꽤 많은 디자인 패턴 책이 출판되어있다. 예제가 PHP로 된 책은 처음 보는데 자바가 주 언어인 나에게도 패턴을 이해하는데 어려운점은 전혀 없었다. 책에서도 PHP외 언어에서 다르게 사용되는 경우 별도로 언급해주며 특정 언어에 종속되지 않도록 구성한것으로 보인다.

    한빛미디어 사이트에서도 나오듯이 '초중급' 자가 읽기에 적당한 것 같다. 예제 자체가 단순하고 객체지향 개념과 함께 GoF 디자인 패턴 23가지(+1)를 모두 설명해준다. 몇몇 디자인 패턴 책은 주요 패턴 위주로 설명하는 강박이 있는 나에게는 모든 패턴을 다루었다는 점이 좋았다.

    후배들에게 그동안 추천해 주던 책 중 하나가 최범균님의 '개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴' 인데 이 책은 주요 디자인패턴에 대해 다룬다. 최범균님 책을 읽고 다른 패턴들이 궁금하다면 이 책을 보면 좋을 것 같다.

    추가로, 역시 번역서가 아니라 번역서의 고통을 느낄 필요가 없다. 국내 저자분들께 감사인사를!

  • 요즘 주위를 보면 많은 사람들이 프로그램에 관심을 보이고 있습니다.
    간단한 코딩 몇 줄로 브라우저에서 뭔가 보이고, 컴퓨터에 멋진 화면이 나타납니다.
    이렇게 프로그램에 흥미를 느끼고 새롭게 배워가면서 조금씩 실력이 늘어갑니다.
    그러다 복잡한 로직을 만나는 순간 머리가 하얗게 됩니다.
    도대체 어떻게 풀어가야 할지 도저히 생각이 나지 않습니다.
     
    객체지향 프로그래밍이라고 하는데 객체가 무엇인지도 모르겠고, 어떻게 배워야 할지도 막막합니다.
    이 책 '쉽게 배워 바로 써먹는 디자인 패턴'은 바로 이럴때 큰 도움이 되는 책입니다.
     
      

    pattern.jpg

     

     
    디자인 패턴.
    프로그램을 제대로 배운 분들은 이미 알고 있는 내용이지만, 비전공자분들에게는 생소한 단어입니다.
    'GOF의 디자인 패턴'은 디자인 패턴이라고 하면 바로 떠올리는 명저이죠.
    24가지 디자인 패턴에 대해 가장 잘 설명하고 있는 책이기는 하지만 내공이 없다면 쉽게 이해하기 힘든 책이기도 합니다.
    그래서 이 책을 기반으로 자바, C, 파이썬, 자바스크립트 등의 언어들은 디자인 패턴을 각자의 언어로 설명한 책들이 있습니다.
    하지만 아직까지 PHP로 설명하는 디자인 패턴 책은 없었서 많은 PHP 개발자들이 디자인 패턴을 쉽게 이해하기 어려웠습니다.
    그런데 이제 그것을 해결해 줄 책이 나왔습니다.
     
    이 책은 디자인 패턴을 생성 패턴, 구조 패턴, 행동 패턴와 같이 크게 3가지 패턴으로 나누고 있습니다.
    그리고 각각의 패턴은 아래와 같이 나누어져 있습니다.
    생성 패턴 : 팩토리 패턴, 싱글턴 패턴, 팩토리 메서드 패턴, 추상 팩토리 패턴, 빌더 패턴, 프로토타입 패턴
    구조 패턴 : 어댑터 패턴, 브리지 패턴, 복합체 패턴, 장식자 패턴, 파사드 패턴, 플라이웨이트 패턴, 프로시 패턴
    행동 패턴 : 반복자 패턴, 명령 패턴, 방문자 패턴, 체인 패턴, 감시자 패턴, 중재자 패턴, 상태 패턴, 메멘토 패턴, 템플릿 메서드 패턴, 전략 패턴, 인터프리터 패턴
     
    패턴 하나하나에 대해 상세한 이론적 설명과 함께 쉽게 이해할 수 있는 코드도 함께 제공하고 있습니다.
    패턴의 특징은 물론이고, 장점과 단점, 비슷한 패턴도 함께 알려주고 있습니다.
     
    패턴을 하나하나 공부하다보면 낯익은 것들을 보면서 깜짝 놀랄 수도 있습니다.
    이름만 몰랐을 뿐, 이미 패턴을 프로그램에 사용하고 있을 것입니다.
     
    그럼, 왜 패턴을 사용해야 할까요?
    지금까지 패턴을 몰라도 프로그램을 작성하는데 문제가 없었다면 정말 간단한 프로그램 작업만 했거나, 패턴의 이름만 몰랐을 뿐 이미 사용하고 있을 가능성이 높습니다.
    이론적으로 알아야 하는 이유는 보다 더 '쉽게' 개발을 하기 위함입니다.
    흔히 노가다라고 하는 단순 작업을 줄이고 더 간편하고 심플한 프로그램을 작성할 수 있습니다.
    그리고 성능이나 유지보수 측면에서 매우 효율적이기 때문입니다.
     
    이 책은 제목처럼 디자인 패턴을 정말 '쉽게' 설명해 주고 있습니다.
    코드가 배우기 쉬운 PHP로 되어 있어 언어에 대해 두려움이 있는 분들에게는 최고의 선택이 될 것입니다.
    책을 쉽게 추천하지 않는 스타일인데, 이 책은 보는 도중에도 주변 지인들에게 자신있게 소개하고 있습니다.

  • 20201022_161935.jpg

     

    이 책은 다양한 디자인 패턴들의 개념과 예제를 통해 쉽게 설명하고 있습니다.

     

    세 파트에 걸쳐서 24개의 패턴을 설명하고 있습니다.

     

    PART 1 생성 패턴 - 추상화를 통해 객체 생성하기

    PART 2 구조 패턴 - 상속과 합성을 사용해 객체 확장하기

    PART 3 행동 패턴 - 복합 구조로 객체의 책임 분산하기

     

    소스 코드가 PHP로 되어 있어 처음엔 낮설게 느껴졌지만 이해하기 어렵지는 않았습니다.

     

    소프트웨어 공학 관련 도서는 경험치에 따라 느끼는게 달라져서 일정 주기로 반복해서 봐야 한다고 생각합니다.

    패턴들을 외워서 과하게 사용하려고 하기 보다, 자연스럽게 사용할 수 있도록 많은 사용 사례들을 봐야 한다고 생각합니다.

     

    디자인 패턴을 처음 접하시거나 익숙하지 않으신 분들에게 이 책을 추천합니다.

     

  • 책에서는 패턴의 요소는 크게 4가지 요소를 지닌다고 설명한다. 
    위의 큰 틀을 토대로 각 챕터가 진행된다. 

    내가 본 챕터로 예를 들자면 '팩토리 패턴'에 대한 이름에 대하여 설명하고 
    그 이후로 어떠한 문제로 발생되었고 
    이것을 해결하기 위하여 팩토리 패턴이 만들어졌다.라는 흐름을 가지고 진행된다. 
    그리고 마지막으로 결과 부분으로 팩토리 패턴에 대한 정리를 해준다. 

    그리고 또 한 가지 이 책에 대하여 알아 두면 좋을 점은, 책 속의 예시 코드가  php이다. 
    필자는 php에 대하여 잘 모르지만, 프로그래밍 언어가 말하고자 하는 것은 다 비슷하지 않나 라는 마인드로 읽긴 하였다.
    매번 java 혹은 c++, python으로 되어있는 예제 코드만 보다가 php로 되어있는 것을 보니 좀 생소했던것 같다. 
    책에 나오는 예시 코드의 언어가 무엇이든 상관 없다고 하면 중요하지 않겠지만
    그게 아니라면 한 번쯤 고려사항이 될 만한 요소가 되지 않을까 싶다. 


  • 쉽게 배워 바로 써먹는 디자인 패턴.jpg

    디자인 패턴.
    유명하지만 실제로 읽어본 사람을 만나는 게 쉽지 않은 고전처럼, 많이 들어 봤고 몇몇 패턴은 실제로 사용하지 있지만 24개 패턴을 모두 접해본 사람은 많지 않다고 생각합니다.

    많은 경우 몇 가지 패턴 사용에 익숙하다고 생각합니다. 자신이 사용하는 코드가 디자인 패턴에 분류되어 있는지 모르더라도 말이죠.
    왜 그렇게 사용하지는 어렴풋이 알고 있고, 어떻게 사용하지는 알고 있으며 잘 쓰고 있는 겁니다.


    우리는 자신을 계발하고자 하는 욕구가 있습니다. 좀 더 나아지고자 합니다. 경험을 통해 앞으로 나아가지만 한편으로는 늘 아쉬움을 느낍니다.
    그래서, 다른 사람들은 어떻게 하고 있는지, 내가 사용하는 방식이 맞는지, 모르는 부분은 어디인지, 조금 더 잘하려면 어떻게 해야 하는지 알고 싶어 합니다.

    다들 비슷한 생각을 가지고 있는 가운데 생각을 행동으로 옮기신 분들이 계십니다. 그들 덕분에 우리는 디자인 패턴이라는 개념을 만날 수 있게 되었습니다.
    그들이 찾아서 모아놓은 24가지 패턴.
    먼저 만나본 이들은 그 패턴들로 인해 감탄하였고, 개발과 유지보수가 훨씬 우아해졌습니다. 그리고 자신의 그러한 경험을 나누고자 하는 이들이 많아지면서 디자인 패턴은 유명해졌습니다.

    너무 유명해졌기 때문일까요, 디자인 패턴이 개발자가 넘어야 할 허들이나 퀘스트처럼 인식되기도 합니다.
    알고 싶어 하면서 동시에 부담스러워하는 이름이 되어 버렸습니다.

    지켜야 하는 규칙이라면 행동에 제약을 받을 수밖에 없습니다. 하지만, 시각을 조금 바꾸어 따라야 하는 규칙이 아니라 추구하는 가치라고 인식하면 어떨까요?


    너무 깊이 들어가지 않습니다. 이제 슬슬 알고자 하는데 너무 깊이 있는 설명이 추가되면 질리거나 거부감을 느낄 수 있는데 그런 부분이 없습니다.

    기본이 되는 개념을 계속 상기시킵니다. 조금 반복이 있다고 느낄 수 있으나 각각의 패턴을 설명한다고 생각하면 이해가 가는 부분입니다.
    디자인 패턴을 설명하는 책의 특성상 특정 패턴을 골라서 읽는 경우가 많을 수 있습니다. 그렇기에 이 정도는 알고 있다고 가정하고 해당 부분에 대한 설명을 생략하고 패턴 설명에만 집중하면, 패턴이 디디고 서있는 객체 지향의 해당 부분이 단단하지 못해 패턴마저도 흔들리는 상황을 만날 수 있기 때문입니다. 각 패턴을 독립된 하나의 강의 노트라고 보시는 것도 괜찮을 것 같습니다.

    비슷한 패턴과 비교하는 부분을 두어 헷갈리지 않도록 합니다. 패턴을 접하다 보면 비슷하다는 느낌을 많이 받습니다. 이렇게 비교하는 부분이 해당 패턴을 더욱 이해할 수 있게 해 줍니다. 차이가 본모습을 또렷하게 만듭니다.

    간단한 샘플이나 실무에서 만날 법한 코드를 예로 들어 설명합니다. 설명만으로는 이걸 어디에 쓸지 막막하더라도 코드를 보면 어떻게 활용할지 감을 잡을 수 있습니다.


    24개의 패턴을 본 뒤 책을 덮으면 객체 지향의 또 다른 원칙인 SOLID를 다시 보게 됩니다.
    단순히 머릿글자만 모아놓은 게 아니라 그 순서에서도 의미를 보실 수 있으리라 생각합니다.

  •  

    [크기변환][회전]untitled.png

     

     

     

    디자인 패턴을 공부하고자 책을 열었을 땐, 자바나 C++로 되어 있겠지 하고 펼쳤는데

    PHP로 되어 있어 조금 놀랬습니다.

     

    저자께서는 JinyPHP 오픈소스 프로젝트를 진행하시면서 다양한 디자인 패턴 기법을 설계하신 준비한 내용을

    책으로 정리하셨다고 합니다.

     

    우선 PHP 걱정을 많이 했지만... 자바나 C++을 한 번 경험해보셨다면 예제코드가 이해하는데 크게 어려운 부분이 

    없었습니다. 소스보다는 대부분그림과 짧은 코드에 이해를 덧붙여 설명을 해주셔서 이해하는데 많은 도움이 되었습니다.

     

    책에서는 크게 3가지로 나누어 24가지의 패턴에 대해서 매 장마다 설명을 해줍니다.

     

    1. 생성 패턴

    - 팩토리, 싱글턴, 팩토리 메서드, 추상 팩토리, 빌더, 프로토타입 패턴

     

    2. 구조 패턴

    - 어댑터, 브리지, 복합체, 장식자, 파사드, 플라이웨이트, 프록시 패턴

     

    3. 행동 패턴

    - 반복자, 명령, 방문자, 체인, 감시자, 중재자, 상태, 메먼토, 템플릿 메서드, 전략, 인터프리터 패턴

     

    다만 PHP는 안써봤기에 우선은 코드를 실행해보진 않고, 디자인 패턴을 이해하기 위해 책을 쭉 읽어보았습니다.

    24가지의 다양한 패턴을 알 수 있었고, 한가지 패턴이 끝날 때마다, 정리 부분에서 나와있는 내용이 저에게는 

    가장 도움이 됐던거 같습니다.

     

    디자인 패턴을 제대로 공부해본 적은 없지만 한 번 더 읽어보고 이해가 되면, 제가 할 수 있는 자바나 자바스크립트로

    코드를 짜보면서 책을 한번 더 읽어보면 많은 도움이 될꺼 같습니다. 

  • 디자인 패턴을 알고 계신가요?

    디자인의 일종인가 생각해 볼 수 있습니다.


    디자인하면 디자이너란 생각이 듭니다.


    패턴은 일정하게 복제된 이미지가 떠오릅니다.


    담요 중에도 물방울 모양의 패턴 담요도 있습니다.


    여러분은 어떤 게 떠오르시나요?

    스스로 한번 생각해보시면 좋겠습니다.


    오늘 책을 한 권 추천하고자 합니다.


    책 제목은 '쉽게 배워 바로 써먹는 디자인 패턴' 입니다.


    패턴은 말하는 것과 유사합니다.


    말을 할 때도 중복되게 말하는 것을 다들 선호하지 않습니다.


    요점만 간단하게 말하는 것을 좋아합니다.


    반복적인 일은 하기 싫어지는 경향이 있습니다.


    패턴은 발명에 가깝기보단 발견하는 것입니다.


    그러면 패턴에 대해 알아보겠습니다.


     

    pattern3.png

     

     

     

    ◆ 객체지향

    객체지향은 소프트웨어 개발 방법론입니다.


    소프트웨어적인 문제를 코드로 구현할 때 적용하는 겁니다.


    객체지향 언어에는 C++, 자바가 있습니다.


    패턴이 반복적인 것을 의미하는 위에서 말했습니다.


    각 코드를 재사용 가능한 형태로 만드는 것이 객체지향입니다.


    한마디로 문제를 해결하는 방법이 패턴화로 변화하게 된 것으로 볼 수 있습니다.


    객체지향으로 개발하려면 지켜야 할 원칙도 있습니다.


    단일 책임의 원칙, 개방 폐쇄 원칙, 리스코프 치환 원칙, 인터페이스 분리의 원칙, 의존 관계 역전의 원칙입니다.


     

    pattern4.png

     

     

     

    ◆ 패턴의 유래

    패턴의 유래에 대해 말씀드리겠습니다.


    사전적 의미의 패턴은 일정한 형태나 양식이 반복되는 것을 의미합니다.


    패턴의 원리는 다르게 쓰일 수 있습니다.


    개발에서 디자인 패턴은 반복되는 패턴 원리에 공학적인 개념을 도입한 것입니다.


    이를 통해 반복적이고 복잡한 것을 빠르게 해결할 수 있습니다.


    패턴 개념의 시작은 건축학에서 시작됐습니다.


    건축물에도 패턴이 새겨진 것들을 볼 수 있습니다.


     

    pattern2.png

     

     

     

    끝으로 패턴은 비슷한 부분이 많다는 것을 보여줍니다.


    일어난 문제에 대해 파악하고 해결했던 방법을 모으는 것도 하나의 패턴입니다.


    패턴이 생기게 된 것에 대해 과정을 이해하는 게 좋습니다.


    의도와 목적을 파악하면 패턴을 정확하게 이해할 수 있습니다.


    이 책은 24개의 패턴의 공통된 요소가 있는데요.

    요소는 이름, 문제, 해법, 결과입니다.


    패턴이 익숙하게 되면 과거의 코드와 새로운 코드를 학습할 때 시간도 단축시켜줍니다.

     

    이 책을 통해 디자인 패턴을 이해하는 데 도움 될 것입니다.

     

     

    pattern1.png

     

     

결재하기
• 문화비 소득공제 가능

배송료 안내

  • 책, 아이템 등 상품을 1만원 이상 구매시 무료배송
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

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

닫기

리뷰쓰기

닫기
* 도서명 :
쉽게 배워 바로 써먹는 디자인 패턴
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
쉽게 배워 바로 써먹는 디자인 패턴
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
쉽게 배워 바로 써먹는 디자인 패턴
구입처*
구입일*
부가기호*
부가기호 안내

* 회원가입후 도서인증을 하시면 마일리지 500점을 드립니다.

* 한빛 웹사이트에서 구입한 도서는 자동 인증됩니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한됩니다.

* 절판도서, eBook 등 일부 도서는 도서인증이 제한됩니다.

닫기

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

자료실