From d4c76cc2d34ba418a7061cfdf2ff4899eff67294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=87=E1=85=A1=E1=86=A8=E1=84=89=E1=85=B3=E1=86=BC?= =?UTF-8?q?=E1=84=92=E1=85=AE=E1=86=AB?= Date: Fri, 18 Oct 2024 19:28:25 +0900 Subject: [PATCH] =?UTF-8?q?Docs:=20=EB=B0=95=EC=8A=B9=ED=9B=88=206?= =?UTF-8?q?=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\353\260\225\354\212\271\355\233\210.md" | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 "\354\261\225\355\204\260_6/\353\260\225\354\212\271\355\233\210.md" 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