Architecture Pattern

POSA I Architecture Pattern

Ed2024 2024. 10. 2. 11:33

POSA I (Pattern-Oriented Software Architecture, Volume 1)에서 제안하는 주요 아키텍처 패턴들은 아래와 같음

  1. Layers (계층) 패턴:
    • 시스템을 계층으로 구성하여 각 계층이 특정 수준의 추상화를 제공합니다.
    • 상위 계층은 하위 계층의 서비스를 사용하며, 각 계층은 독립적으로 개발 및 수정할 수 있습니다.
    • 예: OSI 네트워크 모델, 웹 애플리케이션의 프레젠테이션-비즈니스-데이터 계층
  2. Pipes and Filters (파이프와 필터) 패턴:
    • 데이터 스트림 처리 작업을 여러 독립적인 처리 단계(필터)로 나눕니다.
    • 각 필터는 입력을 받아 처리하고 출력을 다음 필터로 전달합니다.
    • 예: UNIX 쉘 명령어 파이프라인, 컴파일러의 처리 단계
  3. Blackboard (블랙보드) 패턴:
    • 복잡한 문제를 해결하기 위해 여러 전문화된 하위 시스템이 공통의 데이터 구조(블랙보드)를 통해 협력합니다.
    • 각 하위 시스템은 독립적으로 블랙보드에 기여하고, 제어 컴포넌트가 전체 과정을 조정합니다.
    • 예: 음성 인식 시스템, 복잡한 AI 문제 해결
  4. Broker (브로커) 패턴:
    • 분산 시스템에서 서비스 제공자와 서비스 요청자를 분리하는 중간자 역할을 합니다.
    • 브로커는 요청을 적절한 서비스에 라우팅하고, 결과를 요청자에게 반환합니다.
    • 예: 메시지 큐 시스템, 미들웨어 플랫폼
  5. Model-View-Controller (MVC) 패턴:
    • 사용자 인터페이스를 세 가지 주요 컴포넌트로 분리합니다:
      • Model: 데이터와 비즈니스 로직
      • View: 데이터의 표현
      • Controller: 사용자 입력 처리 및 Model과 View 간의 상호작용 관리
    • 예: 웹 애플리케이션 프레임워크, GUI 애플리케이션
  6. Presentation-Abstraction-Control (PAC) 패턴:
    • 대화형 시스템을 계층적인 구조의 에이전트로 구성합니다.
    • 각 에이전트는 Presentation(표현), Abstraction(추상화), Control(제어) 컴포넌트로 구성됩니다.
    • MVC와 유사하지만 더 모듈화되고 분산된 구조를 제공합니다.

이러한 패턴들은 소프트웨어 시스템의 구조를 설계할 때 재사용 가능한 솔루션을 제공하며, 각 패턴은 특정 문제 영역에 적합하며, 시스템의 요구사항과 특성에 따라 선택하거나 조합하여 사용 가능함