diff --git "a/\354\261\225\355\204\260_6/\353\260\225\354\212\271\355\233\210.md" "b/\354\261\225\355\204\260_6/\353\260\225\354\212\271\355\233\210.md" new file mode 100644 index 0000000..833d654 --- /dev/null +++ "b/\354\261\225\355\204\260_6/\353\260\225\354\212\271\355\233\210.md" @@ -0,0 +1,15 @@ +## 들어가며 + +> 디자인 패턴은 어떤 문제를 해결하는지에 따라 크게 3가지 유형으로 나눌 수 있다. + +| 분류 | 생성 패턴 | 구조 패턴 | 행위 패턴 | +|:--:|---|---|---| +| **목적** | 주어진 상황에 적합한 객체 생성 방법 | 객체의 구성과 각 객체 간의 관계 인식 방법 | 객체 간 커뮤니케이션을 개선하거나 간소화하는 방법 | +| **특징** | 객체 생성은 복잡성을 증가시킬 수 있어 이를 제어하여 문제를 해결하고자 함 | 시스템의 한 부분이 변경되어도 다른 부분에 영향을 주지 않도록 도움 | 커뮤니케이션의 유연성을 높이고, 객체의 행위를 추상화 | +| **예시** | 생성자, 팩토리, 추상, 프로토타입, 싱글톤, 빌더 | 데코레이터, 퍼사드, 플라이웨이트, 어댑터, 프록시 | 이터레이터, 중재자, 관찰자, 방문자 | + +
+ +> 나의 경험 + +정보처리기사 자격증 공부할 때 단골 문제로 나와서 외웠던 기억이 나요. 그런데 당시에는 이 3개 분류에 어떤 디자인 패턴들이 있는지가 중요했고, 어떤 디자인 패턴이 어떤 기능을 하고 어떤 구조로 이루어져 있는지까지는 중요하지 않았어요. 자격증은 어찌저찌 통과했지만, 남는 게 없는 기분이었어요. 개발 공부를 시작하면서 디자인 패턴이라는 용어가 종종 등장했고, 유튜브에 쳐보며 [코드로 디자인 패턴들을 구성한 영상](https://www.youtube.com/watch?v=lJES5TQTTWE&ab_channel=%EC%96%84%ED%8C%8D%ED%95%9C%EC%BD%94%EB%94%A9%EC%82%AC%EC%A0%84)을 알게 되었어요. 이름으로만 알고 있던 디자인 패턴들의 구조와 구현을 알 수 있었던 경험이었어요. \ No newline at end of file