Hope Everyone Is Happy

0. 디자인 패턴 개요 본문

※ CS 스터디/디자인 패턴

0. 디자인 패턴 개요

J 크 2023. 8. 2. 00:27
728x90
반응형

 회사를 다녔을 때, 클래스들을 설계하며 가끔(?) 이해가 안되는 설계의 코드들을 다들 아무렇지 않게 쓰고 있어서 수정하고 싶을 때가 많았는데, 디자인 패턴을 보다보니 그 땐 이렇게 수정했어야 했구나.. 라는 생각이 주마등처럼 지나가네요. 지금 고치러 갈 수도 없고


♣ 디자인 패턴 ?

디자인 패턴이란 소프트웨어를 설계할 때 반복적으로 발생하는 일반적인 문제점들을 해결할 수 있는 해결책

   (Ex. 인스턴스를 계속 생성하여  메모리 낭비, 효율적인 상속 관계 구성 등.)

- 즉, 객체 간의 상호 관계 등의 솔루션을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것

- 코드로써 직접적으로 디자인 하는 이론이 아니라, 다양한 상황에 대해 문제를 해결할 수 있는 솔루션의 틀 (Template)

- 올바른 디자인 패턴을 사용하면, 시스템의 유지보수나 설계에 있어서 가장 빠르고 정확한 방법을 찾아낼 수 있다.

 

♣ GOF 디자인 패턴 ?

Gangs of Four(GOF) Design Patterns is the collection of 23 design patterns from the book “Design Patterns: Elements of Reusable Object-Oriented Software”.

- 디자인 패턴의 교과서라고 불리는 Gof의 디자인패턴은 원서 "Design Patterns: Elements of Reusable Object-Oriented Software"에서 목적에 따라 분류한 총 23개의 패턴으로 구성

- 23개의 패턴은 5개의 생성 패턴 (Creational Pattern), 7개의 구조 패턴(Structural Pattern), 11개의 행동 패턴(Behavioral Pattern) 3가지로 구분.


생성 패턴 (Creational Pattern), 구조 패턴(Structural Pattern) 행동 패턴(Behavioral Pattern)
Singleton (싱글턴 패턴) Adapter Template Method
Factory (팩토리 패턴) Composite Mediator
Abstract Factory Proxy (프록시 패턴) Chain of Responsibility
Builder FlyWeight Observer (옵저버 패턴)
Prototype Facade Strategy (전략 패턴)
  Bridge Command
  Decorator State
    Visitor
    InterPreter
    Iterator (이터레이터 패턴)
    Memento

간단하게 요약하면 디자인 패턴은 아래와 같이 사용

1.  소프트웨어 설계에 있어서 예상 되는 문제를 생각

2. 예상 되는 문제가 빠르게 해결되면서 효율적으로 구성될 디자일 패턴을 선택.

3. 프로그램 구현.

 

 참고로 저는 위의 GOF 디자인 패턴 표에서  파란색 표시가 된 부분의 패턴들만 우선적으로 포스팅을 할 생각입니다.

이유는 공부를 위해 구글링도 많이 하고 있지만, 책은 면접을 위한 CS전공지식 노트를 참고하고 있어서 해당 책에서 선정한 디자인 패턴의 종류를 우선적으로 포스팅해보려고 합니다.

책 구매 주소 : https://product.kyobobook.co.kr/detail/S000001834833

 

 위의 내용과 관련하여 추가적인 내용이나 피드백은 언제나 환영입니다!!! :)