카테고리 없음

[정보처리기사] 아키텍처 패턴

아놀드금자 2023. 4. 21. 03:44
728x90

 레이어 패턴

- 각각의 서브시스템들이 계층(Layer)구조를 이룸

- 상위계층은 하위계층에 대한 서비스제공자, 하위계층은 상위계층의 클라이언트

- 서로 마주보는 두계의 계층 사이에서만 상호작용

- 특정 계층만을 교체해 시스템 개선이 가능

- ex) OSI 참조모델

 

 

클라이언트-서버 패턴

- 하나의 서버 컴포넌트+ 다수의 클라이언트 컴포넌트

- 사용자 <-> 클라이언트 <-> 서버

- 서버는 클라이언트 요청에 대비해서 항상 대기상태

- 클라이언트나 서버는 요청-응답때문에 동기화 되는 경우 제외하고는 독립적

 

 

파이프-필터 패턴

- 데이터 스트림 절차의 각 단계를 필터 컴포넌트로 캡슐화하여 파이프를 통해 데이터를 전송하는 패턴(??)

{소스} ---파이프---> [필터] ---파이프---> [필터] ---파이프---> {sink}

- 필터는 재사용성과 추가가 쉬워서 확장이 용이

- 필터 재배치하여 다양한 파이프라인 구축 가능

- 데이터 변환, 버퍼링, 동기화 등에 주로 사용

- ex) unix 쉘

 

 

MVC 패턴

- 3개의 부분으로 구조화

- 모델: 서브 시스템의 핵심 기능과 데이터 보관

- 뷰: 사용자에게 정보 표시

- 컨트롤러: 사용자로부터 받은 입력 처리

- 각 부분은 별도의 컴포넌트로 분리, 서로 영향 없이 개발 가능

- 여러개의 뷰를 만들 수 있음 -> 대화형APP에 적합

 

 

마스터-슬레이브 패턴

- 마스터 컴포넌트에서 슬레이브 컴포넌트로 작업을 분할 -> 슬레이브에서 처리된 결과물 다시 돌려받음

- 마스터: 모든 작업의 주체

- 슬레이브: 마스터의 지시에 따라 작업 수행, 반환

- ex) 장애 허용 시스템, 병렬 컴퓨팅 시스템

 

 

브로커 패턴

- 사용자가 원하는 서비스를 브로커에 요청 -> 브로커가 요청에 맞는 컴포넌트와 사용자를 연결

- ex) 분산 환경 시스템

 

 

피어-투-피어 패턴

- 피어를 하나의 컴포넌트로 간주

- 피어는 클라이언트가 될 수도, 서버가 될 수도 있음

- 클라이언트와 서버는 전형적인 멀티스레딩 방식 사용

 

 

이벤트-버스 패턴

- 소스가 특정 채널에 이벤트 메시지 발행(publish) -> 채널 구독한 리스너들이 메시지 받아서 이벤트 처리

- 4가지 주요 컴포넌트: 소스, 리스너, 채널(통로), 버스(채널관리)

 

 

블랙보드 패턴

- 모든 컴포넌트들 -> 공유데이터 저장소, 블랙보드 컴포넌트에 접근 가능

- 검색을 통해 블랙보드에서 데이터 찾기 가능

- 해결책이 명확하지 않은 문제에서 유용

- ex) 음성 인식, 차량 식별, 신호 해석

 

 

인터프리터 패턴

- 프로그램 코드의 각 라인을 수행하는 방법을 지정하고, 기호마다 클래스를 갖도록 구성

- 특정언어로 작성된 프로그램 코드를 해석하는 컴포넌트 설계 시 유리

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90