[정처기 실기] 디자인 패턴 정리

2025. 7. 18. 16:58·+

디자인 패턴이란?

디자인 패턴은 모듈 간의 세분화된 역할이나 인터페이스 간의 구체적인 구현 방법을 설계할 때 참고할 수 있는 전형적인 해결 방식 또는 예제를 의미합니다. 디자인 패턴은 문제 및 배경, 실제 적용된 사례, 재사용이 가능한 샘플 코드 등으로 구성되어 있습니다.

 

디자인 패턴의 분류 (GoF 기준)

  • 생성 패턴(Creational): 5개
  • 구조 패턴(Structural): 7개
  • 행위 패턴(Behavioral): 11개

 

디자인 패턴 사용의 장점

  • 코드 구조 파악이 용이하다 (범용적인 스타일 제공).
  • 객체지향 설계 및 구현의 생산성 향상에 적합하다.
  • 검증된 구조의 재사용을 통해 개발 시간과 비용 절감.
  • 개발자 간 원활한 의사소통이 가능하다.
  • 설계 변경 요청에 대한 유연한 대응이 가능하다.

 

디자인 패턴 사용의 단점

  • 초기 투자 비용이 다소 부담될 수 있다.
  • 객체지향 기반 설계/구현 방식이기 때문에
    다른 개발 방식과는 호환되지 않을 수 있음.

 


 

디자인 패턴 유형 정리

 

유형 패턴 설명
생성(Creational) Abstract Factory 구체 클래스에 의존하지 않고 관련 객체를 생성
  Builder 복잡한 객체를 단계별로 생성
  Factory Method 객체 생성을 서브클래스에서 결정
  Prototype 기존 객체를 복사해서 생성
  Singleton 하나의 인스턴스만 생성되도록 제한
구조(Structural) Adapter 호환되지 않는 인터페이스를 연결
  Bridge 구현과 추상화를 분리하여 독립적 변경 가능
  Composite 트리 구조로 구성, 전체-부분 계층 표현
  Decorator 기능을 동적으로 추가
  Facade 복잡한 서브시스템에 단순 인터페이스 제공
  Flyweight 공유 객체를 사용해 메모리 절약
  Proxy 접근을 제어하는 대리 객체 사용
행위(Behavioral) Chain of Responsibility 요청을 처리할 객체를 체인으로 연결
  Command 요청을 객체로 캡슐화, 실행 취소 등 지원
  Interpreter 문법 규칙을 클래스로 표현
  Iterator 집합 객체의 요소에 순차적으로 접근
  Mediator 객체 간 복잡한 통신을 중재자 객체가 처리
  Memento 객체 상태 저장/복원 (예: undo 기능)
  Observer 객체 상태 변화 시 다른 객체에 통보
  State 상태에 따라 객체의 행동이 변경
  Strategy 알고리즘을 캡슐화해 교체 가능하게 함
  Template Method 상위 클래스에서 처리 틀 제공, 하위 클래스가 세부 구현
  Visitor 구조는 변경하지 않고 기능만 분리하여 확장
 

'+' 카테고리의 다른 글

Nginx 정리 (Apache와의 차이)  (3) 2025.08.14
토익스피킹 첫 시험 IH(Intermediate High) 후기, 공부 방법  (2) 2025.07.25
[정처기] 애플리케이션 테스트 관리 - 테스트 커버리지 유형 정리  (0) 2025.07.14
[정처기 실기] 완전수 / 완전수 기출 문제  (1) 2025.07.03
소프트웨어 설계  (1) 2025.02.06
'+' 카테고리의 다른 글
  • Nginx 정리 (Apache와의 차이)
  • 토익스피킹 첫 시험 IH(Intermediate High) 후기, 공부 방법
  • [정처기] 애플리케이션 테스트 관리 - 테스트 커버리지 유형 정리
  • [정처기 실기] 완전수 / 완전수 기출 문제
seulll
seulll
개인 공부 블로그입니다.
  • seulll
    seulll
    seulll
  • 전체
    오늘
    어제
    • 분류 전체보기 (378) N
      • Coding Test (254)
        • Programmers (162)
        • Baekjoon (90)
      • Data Structures & Algorithm.. (15)
      • Development & Projects (53)
        • Python (5)
        • Java (10)
        • Android (5)
        • AI (6)
        • Unity (3)
        • API (5)
      • OS (5)
      • DB (4)
      • Network (7)
      • Data Analysis (14)
      • + (17) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 글쓰기
    • 설정
  • 링크

    • GitHub
  • 인기 글

  • 태그

    백엔드 개발자
    웹크롤링
    오블완
    코딩테스트
    프렌즈4블록
    파이썬
    박스플롯
    대입 표현식
    2 x n 타일링
    바다코끼리
    Boxplot
    train_test_split
    백엔드 개발자 역량
    데이터분석
    오차행렬
    카카오맵
    asterisk
    그리디 알고리즘
    Python
    프로그래머스
    API
    confusion matrix
    백엔드
    티스토리챌린지
    kakao map api
    Greedy
    카카오맵 api
    solving environment
    야근 지수
    모델 성능 평가
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
seulll
[정처기 실기] 디자인 패턴 정리
상단으로

티스토리툴바