3장. 구조화 및 패턴 작성
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
새로운 아이디어의 성공 여부는 그 아이디어의 유용성과 도움을 받으려는 사람들에게 어떻게 제시하느냐에 달려 있습니다. 개발자가 디자인 패턴을 이해하고 채택하려면 맥락, 상황, 전제 조건 및 중요한 사례에 대한 관련 정보가 함께 제시되어야 합니다. 이 장은 패턴이 어떻게 구조화되고 작성되는지에 대한 필수 정보를 제공하기 때문에 특정 패턴을 이해하려는 사람과 새로운 패턴을 도입하려는 사람에게 적합합니다.
디자인 패턴의 구조
패턴 작성자가 패턴의 목적을 정의할 수 없다면 패턴을 성공적으로 만들어 게시할 수 없을 것입니다. 마찬가지로 개발자는 배경 지식이나 맥락이 없으면 패턴을 이해하거나 구현하는 데 어려움을 겪을 것입니다.
패턴 작성자는 새 패턴의 디자인, 구현 및 목적을 설명해야 합니다. 작성자는 처음에 관계를 설정하는 규칙의 형태로 새 패턴을 제시합니다:
-
컨텍스트
-
이러한 맥락에서 발생하는 힘의 시스템
-
이러한 힘이 컨텍스트에 따라 스스로 해결되도록 하는 구성
이를 염두에 두고 이제 디자인 패턴의 구성 요소를 요약해 보겠습니다. 디자인 패턴에는 다음과 같은 요소가 포함되어야 하며, 처음 다섯 가지 요소가 가장 중요합니다:
- 패턴 이름
-
패턴의 목적을 나타내는 고유한 이름입니다.
- 설명
-
패턴을 통해 달성할 수 있는 목표에 대한 간략한 설명입니다.
- 컨텍스트 개요
-
패턴이 사용자의 요구에 효과적으로 대응하는 컨텍스트입니다.
- 문제 설명
-
패턴의 의도를 이해할 수 있도록 해결된 문제에 대한 설명입니다.
- 솔루션
-
사용자의 문제가 어떻게 해결되는지 이해하기 쉬운 단계와 인식 목록으로 설명합니다.
- 디자인
-
패턴의 디자인, 특히 패턴과 상호작용하는 사용자의 행동에 대한 설명입니다.
- 구현
-
개발자가 패턴을 구현하는 방법에 대한 가이드입니다.
- 일러스트레이션
-
패턴에 있는 클래스의 시각적 표현(예: 다이어그램).
- 예제
-
최소한의 형태로 패턴을 구현합니다.
- 핵심 요구 사항
-
설명하는 패턴의 사용을 지원하기 위해 다른 어떤 패턴이 필요할 수 있나요?
- 관계
-
이 패턴은 어떤 패턴과 비슷하나요? 다른 패턴과 비슷하게 모방한 패턴이 있나요?
- 알려진 사용법
-
이 패턴이 야생에서 사용되고 있나요? 그렇다면 어디서 어떻게 사용되나요?
- 토론
-
패턴의 흥미로운 이점에 대한 팀 또는 작성자의 생각입니다.
잘 작성된 패턴
디자인 패턴의 구조와 목적 을 이해하면 패턴이 필요한 이유에 대해 더 깊이 이해할 수 있습니다. 또한 자신의 필요에 맞게 패턴을 평가하는 데에도 도움이 됩니다.
좋은 패턴은 최종 사용자에게 상당한 양의 참조 자료를 제공하는 것이 이상적입니다. 또한 패턴이 필요한 이유에 대한 근거도 제공해야 합니다.
패턴에 대한 개요만으로는 일상적으로 접하는 코드에서 패턴을 식별하는 데 도움이 되지 않습니다. 우리가 보고 있는 코드가 정해진 패턴을 따르고 있는지, 아니면 우연히 패턴과 ...