아키텍처 패턴

Doya·2025년 1월 16일

1. 아키텍처 패턴

  • 아키텍처를 설계할 때 참조할 수 있는 전형적인 해결 방식 or 예제
  • 소프트웨어 시스템의 구조를 구성하기 위한 기본적인 윤관을 제시
  • 아키텍처 패턴에는 서브시스템들과 그 역할이 정의되어 있음
  • 서브시스템 사이의 관계와 여러 규칙 지침등이 포함되어 있음

2. 아키텍처 패턴의 종류

1. 레이어 패턴(Layers pattern)

  • 시스템을 계층으로 구분하여 구성하는 고전적인 방법의 패턴
  • 하위 계층은 상위 계층에 대한 서비스 제공자가 되고, 상위 계층은 하위 계층의 클라이언트가 됨
  • 서로 마주보는 두 개의 계층 사이에서만 상호작용이 이루어짐
  • 대표적으로 OSI참조 모델이 있음

2. 클라이언트-서버 패턴(Client-Server pattern)

  • 하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴
  • 사용자가 클라이언트를 통해 서버에 요청하면 클라이언트가 응답을 받아 사용자에게 제공하는 방식

3. 파이프-필터 패턴(Pipe-Filter Pattern)

  • 데이터 스트림 절차의 각 단계를 필터로 캡슐화하여 파이프를 통해 전송하는 패턴
  • 앞 시스템의 처리 결과물을 파이프를 통해 전달받아 처리한 수 그 결과물을 다시 파이프를 통해 다음 시스템으로 넘겨주는 패턴을 반복
  • 데이터 변환, 버퍼링, 동기화 등에 주로 사용
  • 대표적으로 UNIX의 쉘(Shell)이 있음

4. 모델-뷰-컨트롤러 패턴(Model-View-Controller Pattern)

  • 서브시스템을 모델, 뷰, 컨트롤러로 구조화하는 패턴
  • 컨트롤러가 사용자의 요청을 받으면 핵심 기능과 데이터를 보관하는 모델을 이용하여 뷰를 만들 수 있음
  • 한 개의 모델에 대해 여러 개의 뷰를 필요로 하는 대화형 애플리케이션에 적합

5. 마스터-슬레이브 패턴(Master-Slave Pattern)

  • 슬레이브 컴포넌트에서 처리된 결과물을 다시 돌려받는 방식으로 작업을 수행하는 패턴
  • 도중에 몇 개의 슬레이브가 고장나도 업무 처리하는데 문제 없음
  • 대표적으로 장애 허용 시스템, 병렬 컴퓨팅 시스템이 있음

6. 브로커 패턴(Broker Pattern)

  • 사용자가 원하는 서비스와 특성을 브로커 컴포넌트에 요청하면 브로커 컴포넌트가 요청에 맞는 컴포넌트와 사용자를 연결해주는 패턴
  • 대표적으로 분산 환경 시스템이 있음

7. 피어-투-피어(Peer To Peer Pattern)

  • 피어라 불리는 하나의 컴포넌트가 클라이언트가 될수도, 서버가 될 수도 있는 패턴
  • 대표적으로 파일 공유 네트워크가 있음

8. 이벤트-버스 패턴(Event-Bus Pattern)

  • 소스가 특정 채널에 이벤트 메시지를 발행하면, 해당 채널을 구독한 리스너들이 메시지를 받아 이벤트를 처리하는 패턴
  • 대표적으로 알림 서비스가 있음

9. 블랙보드 패턴(Blackboard Pattern)

  • 모든 컴포넌트들이 공유 데이터 저장소와 블랙보드 컴포넌트에 접근이 가능한 패턴
  • 대표적으로 음성 인식, 차량 식별, 신호 해석등이 있음

10. 인터프리터 패턴(Interpreter Pattern)

  • 프로그램 코드의 각 라인을 수행하는 방법을 지정하고, 기호마다 클래스를 갖도록 구성된 패턴
  • 대표적으로 번역기, 컴파일러, 인터프리터 등이 있음

연습 문제

1. 서브시스템이 입력 데이터를 받아 처리하고 결과를 다음 서브시스템으로 넘겨 주는 과정을 반복하는 아키텍처 패턴을 쓰시오.(20년 9월)

정답
파이프-필터 패턴

profile
안녕하세요. 도야입니다

0개의 댓글