아키텍처 패턴 : 아키텍처를 설계할 때 참조할 수 있는 전형적인 해결 방식
- 소프트웨어 시스템의 구조를 구성하기 위한 기본적인 윤곽을 제시
아키텍처 : 서비스의 동작 원리를 나타내는 것
1. 레이어 패턴 (Layers pattern)
(1) 시스템을 계층으로 구분하여 구성하는 고전적인 방법의 패턴
(2) 하위 계층은 상위 계층에 대한 서비스 제공자가 되고, 상위 계층은 하위 계층의 클라이언트가 된다.
(3) 서로 마주보는 두 개의 계층 사이에서만 상호작용이 이루어진다.
2. 클라이언트-서버 패턴 (Client-Server pattern)
(1) 하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴이다.
(2) 사용자가 클라이언트를 통해 서버에 요청하면 클라이언트가 응답을 받아 사용자에게 제공하는 방식
컴포넌트 : 여러 개의 프로그램 함수들을 모아 하나의 특정한 기능을 수행할 수 있도록 구성한 작은 기능적 단위
3. 파이프-필터 패턴 (Pipe-Filter Pattern)
(1) 데이터 스트림 절차의 각 단계를 필터로 캡슐화하여 파이프를 통해 전송하는 패턴
(2) 앞 시스템의 처리 결과물을 파이프를 통해 전달받아 처리한 후 그 결과물을 다시 파이프를 통해 다음 시스템으로 넘겨주는 패턴을 반복
데이터 스트림 : 연결지향통신에서, 전송된 정보를 수집하거나 정보를 전송할 때 사용되는 디지털 방식으로 암호화 된 일관된 신호의 흐름
연결지향통신 : 1:1 연결 상태를 유지하여 통신하는 것
4. 모델-뷰-컨트롤러 패턴(Model-View-Controller Pattern) MVC
(1) 서브시스템을 모델, 뷰, 컨트롤러로 구조화하는 패턴
(2) 컨트롤러가 사용자의 요청을 받으면 핵심 기능과 데이터를 보관하는 모델을 이용하여 뷰에 정보를 출력하는 구조
5. 기타 패턴
(1) 마스터-슬레이브 패턴 (Master - Slave Pattern)
- 슬레이브 컴포넌트에서 처리된 결과물을 다시 돌려받는 방식으로 작업을 수행하는 패턴
ex) 장애 허용 시스템, 병렬 컴퓨팅 시스템
(2) 브로커 패턴 (Broker)
- 사용자가 원하는 서비스와 특성을 브로커 컴포넌트에 요청하면 브로커 컴포넌트가 요청에 맞는 컴포넌트와 사용자를 연결해주는 패턴
ex) 분산 환경 시스템
(3) 피어-투-피어 패턴 (Peer-To-Peer Pattern)
- 피어라 불리는 하나의 컴포넌트가 클라이언트가 될수도, 서버가 될 수도 있는 패턴
ex) 파일 공유 네트워크
(4) 이벤트-버스 패턴 (Event-Bus Pattern)
- 소스가 특정 채널에 이벤트 메시지를 발행하면, 해당 채널을 구독한 리스너들이 메시지를 받아 이벤트를 처리하는 패턴
ex) 알림 서비스
(5) 블랙보드 패턴 (Blackboard Pattern)
- 모든 컴포넌트들이 공유 데이터 저장소와 블랙보드 컴포넌트에 접근이 가능한 패턴
ex) 음성 인식, 차량 식별, 신호 해석
(6) 인터프리터 패턴 (Interpreter Pattern)
- 프로그램의 코드의 각 라인을 수행하는 방법을 지정하고, 기호마다 클래스를 갖도록 구성된 패턴
ex) 번역기, 컴파일러, 인터프리터
'C++ > C++ CS 개념' 카테고리의 다른 글
생성자, 소멸자, 대입 연산자 (0) | 2023.11.08 |
---|---|
객체지향 (Object-Oriented) (0) | 2023.11.08 |
소프트웨어 생명 주기 (Software Life Cycle) (0) | 2023.11.07 |
const (0) | 2023.10.30 |
매크로(#define) VS 상수 (0) | 2023.10.26 |