10-1 설계 패턴(설계 패턴 개요)

윤효준·2025년 7월 23일

소프트웨어 공학

목록 보기
19/43

🧩 패턴이란?

패턴(Pattern)반복적으로 발생하는 문제에 대한 표준화된 해결책입니다.
소프트웨어 설계에서 패턴은 경험적으로 검증된 설계의 모범 사례(Best Practice)를 추상화한 것입니다.

📌 패턴을 사용하는 이유

  • 생산성 증가: 이미 검증된 구조를 사용하므로 빠르게 설계 가능
  • 전문가 경험의 전달: 고급 개발자의 노하우를 문서화하여 팀 전체가 공유 가능
  • 불필요한 논쟁 제거: 공통 용어와 구조를 사용하여 협업이 원활
  • 품질 향상: 유지보수성과 확장성이 높은 구조 설계 가능

🧠 GoF(Gang of Four) 설계 패턴이란?

1994년에 발표된 『Design Patterns: Elements of Reusable Object-Oriented Software』에서 소개된 23가지의 객체지향 설계 패턴을 일컫습니다.
GoF 패턴은 아래와 같이 3가지 분류로 나뉩니다.


📝 GoF 패턴 설명 항목

GoF에서는 각 패턴을 아래 5가지 핵심 요소로 체계적으로 설명합니다:
GoF 피자인 패턴의 패턴 분류

  1. 패턴 이름과 분류

    • 이름은 패턴의 의도와 본질을 요약함 (예: Strategy, Observer 등)
    • 분류는 앞서 말한 Creational / Structural / Behavioral 중 하나
  2. 패턴의 의도(Intent)

    • 패턴이 무엇을 해결하는지, 또는 무엇을 위해 사용되는지에 대한 설명
    • 예: "전략 패턴은 알고리즘 군을 정의하고 각각을 캡슐화하여 교환 가능하게 만든다."
  3. 적용 대상(Applicability)

    • 해당 패턴이 어떤 상황에서 유용한지, 문제가 어떤 조건일 때 적용할 수 있는지
    • 예: "같은 기능을 수행하는 여러 알고리즘이 있고, 런타임에 이를 선택하고 싶을 때"
  4. 구조(Structure)

    • UML 클래스 다이어그램이나 객체 다이어그램으로 표현
    • 구성 요소 간의 관계를 시각적으로 설명
  5. 적용 시 고려 사항 및 제약 사항(Implementation, Consequences 등)

    • 구현할 때 주의할 점, 언어적 제한 사항, 유연성과 단점
    • 예: "Decorator 패턴은 많은 수의 작은 객체를 생성할 수 있으므로 메모리 관리에 유의해야 한다."
profile
작은 문제를 하나하나 해결하며, 누군가의 하루에 선물이 되는 코드를 작성해 갑니다.

0개의 댓글