diff --git "a/\354\261\225\355\204\260_3/\353\260\261\354\247\200\354\227\260.md" "b/\354\261\225\355\204\260_3/\353\260\261\354\247\200\354\227\260.md" new file mode 100644 index 0000000..6458c72 --- /dev/null +++ "b/\354\261\225\355\204\260_3/\353\260\261\354\247\200\354\227\260.md" @@ -0,0 +1,46 @@ +# CHAPTER 03 패턴 구조화 및 작성 + +## 디자인 패턴의 구조 + +패턴 작성자는 **패턴의 설계, 구현 방법, 목적**을 설명해야 한다. + +- **컨텍스트** : 패턴이 적용되는 상황 +- **집중 목표** : 패턴을 적용할 때 고려해야 하는 목표 +- **구성** : 제시된 상황과 고려해야 하는 점들을 해결하는 구성 + +### 디자인 패턴의 구성 요소 + +- 패턴의 목적을 드러내는 **이름** +- 패턴이 무엇을 해결할 수 있는지에 대한 **설명** +- 사용자의 요구에 부합하는지에 대한 **컨텍스트 개요** +- 패턴을 만든 의도를 알 수 있도록 **문제 제시** +- **해결 방법** +- 설계 내용 +- 구현 방법 +- 시각적 설명 +- 패턴을 구현한 예제 +- 필수 연계 (함께 사용하면 좋을 패턴) +- 다른 패턴과의 관계성 +- 알려진 용도 +- 패턴의 이점에 대한 토론 + +## 모범 패턴 + +패턴을 사용하고 싶다면 처음부터 직접 만들기보다는 이미 존재하는 검증된 패턴을 찾아보는 게 더 좋은 방법이다. + +## 패턴 작성하기 + +디자인 패턴을 직접 작성할 경우에도 이미 잘 만들어진 다른 패턴을 참고/활용하는 게 좋다. + +디자인 패턴을 만들거나 적용하려는 경우 참고할 체크 리스트 + +- 얼마나 실용적인가? +- 모범 사례를 이해하여 도출해 낸 원칙에 기반하는가? +- 사용자 경험에 솔직한가? +- 넓게 적용할 수 있는 유용한 패턴인가? +- 패턴의 올바른 적용법을 보여주는 훌륭한 예시가 있는가? + +패턴을 작성한다는 것 = 범용성, 구체성, 유용성 사이에서 균형을 유지하는 것 +패턴을 작성할 때는 가능한 모든 분야를 다룰 수 있도록 해야 한다. + +> 가능한 모든 분야를 다룰 수 있어야 한다는 점에서 패턴을 작성하는 게 더 어렵게 느껴지네요 🤔