IT기술 | 배경지식

디자인 패턴이란

o_b:us 2022. 6. 21. 15:47

디자인 패턴: 자주 사용하는 설계 패턴을 정형화해서 이를 유형별로 가장 최적의 방법으로 개발을 할 수 있도록 정해둔 설계

Gof디자인 패턴

소프트웨어를 설계 할 때는 기존에 경험이 매우 중요하다. 그러나 모든 사람들이 다양한 경험을 가지고 있을 수 는 없다.
이러한 지식을 공유하기 위해서 나온것이 GOF(Gang of Four)의 디자인 패턴이다. 객체지향 개념에 따른 설계 중 재사용할 경우 유용한 설계를 디자인 패턴으로 정리했다. 총 23가지의 패턴을 3가지 유형으로 분류하고있다.

디자인 패턴의 장점

  • 개발자간의 원활한 소통
  • 소프트웨어 구조 파악 용이
  • 컴포넌트 재사용을 통한 개발 시간 단축
  • 설계 변경 요청에 대한 유연한 대처가능

디자인 패턴의 단점

  • 객체지향적인 설계/구현 (사고를 객체지향적으로 해야함)
  • 초기 투자 비용 부담 (인터페이스부터,추상클래스 여러가지 구상을 해야해서 초기 비용이 듬)

생성 패턴(Creational Pattern)

  • 객체를 생성하는데 관련된 패턴
  • 객체가 생성되는 과정의 유연성을 높이고 코드의 유지를 쉽게 해줌
  1. 추상 팩토리(Abstract Factory)
  2. 빌더(Builder)
  3. 팩토리 메서드(Factory Methods)
  4. 프로토타입(Prototype)
  5. 싱글톤(Singleton)



구조 패턴(Structual Pattern)

  • 프로그램 내의 자료구조나 인터페이스 구조 등 프로그램의 구조를 설계하는데 활용될 수 있는 패턴들
  • 클래스, 객체들의 구성을 통해서 더 큰 구조를 만들 수 있게 해준다.
  • 큰 규모의 시스템에선 많은 클래스들이 서로 의존성을 갖게되는데, 이러한 구조를 개발하기 쉽게, 유지 보수하기 쉽게 만들어준다.
  1. 어댑터(Adapter)
  2. 브리지(Bridge)
  3. 컴포지트(Composite)
  4. 데코레이터(Decorator)
  5. 퍼사드(Facade)
  6. 플라이웨이트(Flyweight)
  7. 프록시(Proxy)



행위 패턴(Behavioral Pattern)

  • 반복적으로 사용되는 객체들의 상호작용을 패턴화 해놓은 것듯
  1. 책임 연쇄(Chain of Responsibility)
  2. 커맨드(Command)
  3. 인터프리터(Interpreter)
  4. 이터레이터(Iterator)
  5. 미디에이터(Mediator)
  6. 메멘토(Memento)
  7. 옵저버(Observer)
  8. 스테이트(State)
  9. 스트레티지(Strategy)
  10. 템플릿 메서드(Template Method)
  11. 비지터(Visitor)



참고자료: https://realzero0.github.io/study/2017/06/12/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4-%EC%A0%95%EB%A6%AC.html
,
https://velog.io/@namezin/GoF-design-pattern
,
패스트캠퍼스

'IT기술 | 배경지식' 카테고리의 다른 글

무중단 배포 방법 3가지  (0) 2022.06.12