JavaRush /Java Blog /Random-KO /"헤드 퍼스트 디자인 패턴(Head First Design Patterns)" 책 리뷰
Alex
레벨 37

"헤드 퍼스트 디자인 패턴(Head First Design Patterns)" 책 리뷰

Random-KO 그룹에 게시되었습니다
헤드 퍼스트 시리즈를 조금이라도 아는 사람들 중에는 그런 문학이 초보자를 위한 피상적인 독서라고 생각하는 사람들이 많다. 내가 말할 수있는 것은 프로그래밍 분야의 복잡한 주제를 48 시간 안에 깊이 공부할 수 없을 것 같습니다. 하지만 디자인 패턴이 초보자에게 프로그래밍에 유용한 가이드가 될 책이라고 주장하기는 어렵습니다. 이 책은 Stackoverflow에서 가장 인기 있는 10권 중 하나이며 그럴 만한 이유가 있습니다. 프레젠테이션의 용이성, 기본 주제 및 고품질 예제로 인해 이 책은 현재는 물론 앞으로도 수년 동안 인기를 끌 것입니다. "Head First Design Patterns" 책 리뷰 - 1

책의 특징

머리 우선 디자인 패턴은 패턴이 무엇인지, 어떻게 사용하는지, 패턴에 대해 어떻게 생각하는지 알려줍니다. 패턴은 특정 문제 집합에 대한 보편적인 솔루션인 템플릿입니다. 디자인 패턴은 사용자 친화적이고 유연한 애플리케이션을 작성하는 데 사용할 수 있는 일반적으로 사용되는 아키텍처 솔루션입니다. 전 세계의 개발자들은 동일한 접근 방식으로 동일한 문제를 해결합니다. 주석에서 알 수 있듯이 바퀴를 재발명하고 싶지 않다면 이 책에서 작업 전용으로 사용되는 기성 디자인 템플릿(패턴)을 사용하세요 . 이와 별도로 자료의 발표에 주목할 가치가 있습니다. Head First 시리즈의 책은 단순함으로 유명하며 한 번에 읽혀집니다. "디자인 패턴"도 예외는 아닙니다. 또한 다음과 같은 주요 원칙을 준수합니다.
  1. 시계
  2. 대화형 프레젠테이션 스타일
  3. 수많은 일러스트
  4. 적극적인 독자 참여
  5. 감정에 호소
  6. 독자의 관심을 사로잡는다
이 책의 저자는 메타인지 이론을 능숙하게 사용하여 자료를 제시합니다. 저에게는 처음 100페이지가 눈에 띄지 않게 날아갔습니다. 이 접근법의 장점은 뇌가 읽은 내용을 실제로 기억한다는 것입니다. 여러 서술 스타일, 흥미로운 질문, 중복성 및 창의성의 조합 - 이 모든 것이 독자가 주요 주제에 대한 관심을 잃지 않도록 도와줍니다. 책을 구입하기 전, 엇갈린 리뷰를 읽고 망설였습니다. 그러나 이 주제에 대한 다른 여러 출처를 빠르게 훑어본 후 나는 패턴을 자세히 살펴보기 위해 이 책이 필요하다고 결정했습니다.

메인 테마 및 핵심 아이디어

"확실히 누군가가 이미 당신의 문제를 해결했을 것입니다." - 이것이 책의 첫 번째 장이 시작되는 방식으로 프로그래밍에서 디자인 패턴의 전체 의미를 전달합니다. 주요 목표는 독자에게 그 의미를 정확하게 전달하는 것입니다. 왜냐하면 우선 프로그래머는 패턴이 무엇인지, 어떤 시점에 적용해야 하는지 알아야 하기 때문입니다. 기본적으로 먼저 템플릿을 머릿속에서 작은 조각으로 분류한 다음 이를 프로그램에 구현해야 합니다. 프로그래밍 초보자가 패턴을 잘 이해하고 있다면 이를 사용하면 코드가 매우 복잡해질 수 있습니다(단, 단순화해야 합니다!). “왜 디자인 패턴을 사용해야 하는가?” 라는 질문에 책에서는 “추상화, 상속, 다형성 등의 개념을 안다고 해서 좋은 객체지향 디자이너가 되는 것은 아닙니다. 패턴에는 검증된 OO 디자인 경험이 담겨 있습니다.”

"요약"

이 책은 서론을 포함하여 총 14개의 장으로 구성되어 있습니다. 처음에 책의 저자는 독자가 패턴 디자인에 대한 정보를 올바르게 인식할 수 있도록 두뇌를 조정하고 준비시키려고 노력합니다. 첫 번째 장에서는 패턴의 기본 원리와 패턴의 목적에 대해 설명합니다. 가장 많이 사용되는 패턴 중 하나인 전략은 눈에 띄지 않게 쉽게 검사됩니다. 2장부터 11장까지는 개별 패턴에 대한 자세한 분석을 다룹니다 .
  1. 관찰자. 발생에 관심이 있는 개체 전체에 이벤트를 배포합니다.
  2. 데코레이터. Java의 상속을 다시 살펴보고 코드 수정 없이 Java 클래스에 새로운 기능을 제공합니다.
  3. 공장. 패턴은 원치 않는 종속성으로부터 코드를 저장합니다.
  4. 하나의. 싱글톤이라고도 알려져 있으며 전체 프로그램에 대해 단일 클래스 개체를 만들 수 있습니다.
  5. 팀. 패턴을 사용하면 메서드 호출을 편리하게 캡슐화하여 기능을 확장할 수 있습니다.
  6. 어댑터 및 외관. 인터페이스 비호환성 문제를 해결하고 객체를 패키징하여 인터페이스를 단순화합니다.
  7. 템플릿 방법. 알고리즘 블록을 캡슐화하여 하위 클래스가 언제든지 원하는 처리 알고리즘과 연결할 수 있도록 합니다.
  8. 반복자와 링커. 패턴은 유형에 관계없이 컬렉션을 반복하는 편리한 도구를 제공합니다. 또한 이 장에서는 슈퍼컬렉션에 대한 몇 가지 정보를 제공합니다.
  9. 상태. 객체에는 내부 상태의 변화를 통해 동작을 제어할 수 있는 능력이 부여됩니다.
  10. 대리인. 객체에 대한 접근을 제어하는 ​​데 매우 편리한 패턴입니다.
12장에서는 강력한 소프트웨어 아키텍처를 구축하는 데 사용할 수 있는 복합 패턴, 또는 논의된 일부 패턴의 조합을 검토합니다. 13장은 실제 문제에서 패턴을 사용하는 방법을 다루며 패턴의 분류, 종류 및 사용 지침을 제시합니다. 이 책은 더 넓은 범위의 패턴을 다루는 14장의 부록 역할을 합니다. 그들 각각은 그 자체로 유용하므로 이를 아는 것이 바람직합니다. 물론 2-11장의 패턴만큼 대중적이지는 않지만 그렇다고 해서 유용성이 떨어지는 것은 아닙니다. 이 책은 패턴 이론을 학문적으로 정확하게 제시하는 척하지 않습니다. 그러나 Head First 책이 너무 꼼꼼하다면, 야심찬 개발자들은 스스로 무엇이 무엇인지 파악하고 기본 사항을 명확히 할 기회를 갖지 못할 것입니다. 디자인 패턴에 익숙하지 않은 사람들도 디자인 패턴이 무엇인지 배울 수 있는 간단하고 편리한 방법입니다. 저자에 따르면 디자인 패턴은 이미 Java(또는 C#)에 익숙하고 객체지향 디자인의 원리를 배우고 싶은 사람, 지루한 강의보다 생생한 대화를 선호하는 사람에게 적합한 책이라고 합니다. 이 책은 참고서가 아닙니다! 당신이 경험이 있고 이러한 패턴 중 적어도 일부를 다루는 전문 개발자라면 이 책이 당신의 관심을 끌 것 같지 않습니다. 이 책의 중요한 구성 요소는 연습 문제입니다. 연습을 건너뛰어서는 안 됩니다. 책을 주의 깊게 읽고 극단적인 경우 인터넷에서 최소한의 검색만 수행하면 문제를 해결해도 두통이 더해지지 않습니다. 하지만 분명 이득이 있을 것이다. 최소한 책에서 제시하는 이론을 더 깊이 이해하게 될 것입니다.

장점과 단점

나는 JavaRush에서 공부하는 많은 사람들과 마찬가지로 지루한 강의, 벼락치기 자료 및 지식에 목마른 학생의 정신에 대한 기타 폭력에 대해 냉담한 태도를 가지고 있습니다. 제 생각에는 이해할 수 없는 텍스트를 암기하는 데 소비되는 에너지는 대체 학습 소스를 찾는 데 가장 잘 소비됩니다. 이 책은 당신의 시간과 노력을 들일 가치가 있는 책이다. 뛰어난 프레젠테이션 스타일, 독자의 관심을 효과적으로 관리하고 핵심 요점을 반복하는 것이 이 책의 주요 장점, 즉 자료의 동화 용이성을 형성합니다 . 많은 수의 일러스트레이션이 추가 장점입니다. 제 생각에는 책에 있는 모든 그림에는 그 자리가 있습니다. 이 그림을 통해 저자의 말을 강화하고 자료의 본질에 대한 더 깊은 이해를 얻을 수 있습니다. 위에서 썼듯이 이 책은 참고서가 아닙니다. 저자는 모든 패턴을 나열할 의도가 없습니다. 주요 임무는 더 복잡한 다른 패턴을 더 쉽게 이해할 수 있도록 기본 패턴에 대한 이해를 제공하고 이야기하는 것입니다. 그리고 그녀는 이에 100% 대처합니다. 단점 중 하나는 러시아어로 된 Head First 디자인 패턴이 영어만큼 읽기 쉽지 않다는 것입니다. 물론 모든 개발자는 영어를 구사해야 하지만, 초보 프로그래머가 항상 원문을 읽을 수 있을 정도로 이 기술을 개발하는 것은 아닙니다. 그러나 자료가 매우 정확하게 제시되고 의미가 보존되기 때문에 이는 강제 마이너스로 간주될 수 있습니다.

디자인 패턴에 관한 추가 도서

나는 여러 출처에서 기본적인 주제를 연구하고 그 안에서 적절한 프레젠테이션 스타일을 찾는 것이 더 낫다는 믿음을 지지합니다. 패턴을 자세히 알아보고 추가 이론을 읽고 싶다면 저녁 시간을 즐겁게 보낼 무언가가 있을 것입니다.
  1. 객체 지향 설계 기술. 디자인 패턴 (Gamma E., Helm R., Johnson R., Vlissides J.).

    "디자인 패턴"(Head First Design Patterns) 책 리뷰 - 2

    이것은 더 진지한 출판물이자 패턴 참고서이며 "Gang of Four"의 매우 존경받는 책입니다. 많은 사람들은 이를 OO 디자인의 바이블이라고 부릅니다.

    인터넷에서 개발자의 의견은 3가지 진영으로 나뉩니다.

    • 어떤 사람들은 그 책이 시대에 뒤떨어졌고 표현 방식 때문에 읽을 수 없다고 주장합니다.
    • 다른 사람들은 이 책을 패턴에 대한 참고서로만 사용할 것을 권장합니다.
    • 또 다른 사람들은 이 책이 디자인 패턴의 성배이며 언젠가 수석 Java 개발자가 되고 싶은 사람이라면 누구나 읽어야 한다고 말합니다.
    나는 두 번째 그룹의 지지자입니다. 이 책은 정말 가치가 있다고 생각하지만 정보를 검색할 목적이 아니라 발전을 위해 읽는 것은 매우 어렵습니다.

    중요한:이 책의 예제는 C++로 작성되었습니다.

  2. 자바 EE. 전문가를 위한 디자인 패턴 (Murat Yener, Alex Fidom).

    "디자인 패턴"(Head First Design Patterns) 책 리뷰 - 3

    이 책은 엔터프라이즈 애플리케이션 설계에 전념하고 있으며 실제 애플리케이션 문제의 많은 예를 다루고 있습니다.

  3. Java (Grand M.) 의 디자인 패턴 .

    "디자인 패턴"(Head First Design Patterns) 책 리뷰 - 4

    이 책은 패턴을 사용하여 개발자의 시간을 절약하는 방법을 다채롭게 보여주고 UML 언어에 대한 개요를 제공하며 47가지 디자인 패턴을 설명합니다.

JavaRush의 디자인 패턴

JavaRush 과정에서는 Java 컬렉션 퀘스트 레벨 7 에서 디자인 패턴을 학습합니다. 강의 12 는 가장 일반적인 패턴을 다루며, 강의 4 에서는 이 주제에 대한 문제를 해결할 수 있습니다. 다음은 "자신을 강화"하는 데 도움이 되는 몇 가지 흥미로운 기사입니다.
  1. 카테고리, 예제, 우리가 좋아하는 모든 것이 포함된 패턴 주제에 대한 일반 기사입니다 .

  2. 패턴에 관한 두 개의 기사: 1부 개요 및 더 자세한 2부 .

  3. 싱글톤 패턴을 예로 들어 패턴을 디자인합니다 .

  4. " 전략 " 및 " 어댑터 " 패턴에 대한 문서입니다.

  5. 디자인 패턴의 개념은 UML 다이어그램과 관련되어 있습니다. 이 기사는 UML 다이어그램이 무엇인지 이해하는 데 도움이 될 것입니다.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION