디자인패턴

JYR00·2023년 4월 13일
0

스프링부트 강의

목록 보기
2/10

디자인패턴이란?

(소프트웨어) 디자인 패턴이란 특정 문맥에서 공통적으로 발생하는 문제에 대해 쓰이는 재사용 가능한 해결책. 목적별로 일정한 패턴이 제시되어 있다.
완전한 정답이 되는 알고리즘과 달리 현재 상황에 맞춰 최적화된 패턴을 결정하여 사용하는 것이 좋다.
대표적으로 구체화된 디자인 패턴은 GoF(Gang of Four)에서 제시한 총 23개의 패턴이 있음

Gang of Four : Eric Gamma, Richard Helm, Ralph Johnson, John Vissides, 총 4명을 일컬음


디자인 패턴의 장점

  • 개발자 간의 원활한 협업 가능
  • 소프트웨어의 구조를 파악하기 용이
  • 재사용을 통해 개발 시간 단축
  • 설계 변경이 있을 경우 비교적 원활하게 조치가 가능

디자인 패턴의 단점

  • 객체지향적 설계를 고려하여 진행해야 함
  • 초기 투자 비용이 많이 들어감(돈, 시간 등)

1. 생성패턴

생성패턴은 객체의 생성과 관련된 패턴
특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 최소화할 수 있도록 유연성 제공

2. 구조패턴

구조패턴은 프로그램 내 자료구조나 인터페이스 구조 등 프로그램 구조를 설계하는데 사용되는 패턴
클래스나 객체를 조합하여 더 큰 구조를 만들 수 있게 해줌

  • 어댑터(Adapter) : 클래스의 인터페이스를 어떤 클래스에서든 이용할 수 있도록 변환
  • 브리지(Bridge) : 구현부에서 추상층을 분리하여 각자 독립적으로 변형하고 확장할 수 있도록 함
  • 파사드(Facade) : 서브 시스템에 있는 인터페이스 집합에 대해 통합된 인터페이스 제공
  • 프록시(Proxy) : 실제 기능을 수행하는 객체 대신 가상의 객체를 사용해 로직의 흐름을 제어

3. 행동(행위) 패턴

행동 패턴은 반복적으로 사용되는 객체들의 커뮤니케이션을 패턴화.
객체 사이에 알고리즘 또는 책임을 분배하는 방법에 대해 정의함.
결합도를 최소화하는 것이 주 목적

  • 반복자(Iterator) : 컬렉션 구현 방법을 노출하지 않으면서 모든 항목에 접근할 수 있는 방법을 제공
  • 전략(Strategy) : 동일 계열의 알고리즘 군을 정의하고 캡슐화하여 상호교환이 가능하게 함

0개의 댓글