반응형
SMALL
파이프-필터 패턴
- 파이프-필터 패턴은 데이터 스트림 절차의 각 단계를 필터로 캡슐화하여 파이프를 통해 전송하는 패턴이다. 마치 음식 제조 공정에서 재료가 각 단계를 거치며 가공되듯, 데이터도 파이프를 통해 각 필터(처리 단계)를 거친다.
- 앞 시스템의 처리 결과물을 파이프를 통해 전달받아 처리한 후 그 결과물을 다시 파이프를 통해 다음 시스템으로 넘겨주는 패턴을 반복한다.
- 데이터 변환, 버퍼링, 동기화 등에 주로 사용되며, 대표적인 예로 UNIX의 쉘(SHELL)이 있다. 이처럼 각 단계에서 데이터를 처리하고, 처리된 데이터를 다음 단계로 넘기는 과정이 핵심이다.
마스터-슬레이브 패턴
- 마스터-슬레이브 패턴은 마스터가 작업을 슬레이브에게 할당하고, 슬레이브가 처리한 결과물을 다시 마스터로 돌려주는 방식이다. 이는 팀장이 각 팀원에게 업무를 나누어주고, 각 팀원이 작업을 완료한 후 다시 팀장에게 보고하는 상황과 비슷하다.
- 슬레이브 컴포넌트에서 처리된 결과물을 다시 돌려받는 방식으로 작업을 수행하는 이 패턴은 장애 허용 시스템, 병렬 컴퓨팅 시스템에서 주로 사용된다. 마스터는 작업을 통제하며, 슬레이브는 실제 작업을 분담한다.
브로커 패턴
- 브로커 패턴은 사용자가 원하는 서비스와 특성을 브로커 컴포넌트에 요청하면, 브로커가 요청에 맞는 컴포넌트와 사용자를 연결해주는 패턴이다. 이는 고객이 여행사(브로커)에게 여행 계획을 요청하면, 여행사가 적합한 항공편, 호텔 등을 찾아 연결해주는 것과 유사하다.
- 이 패턴은 주로 분산 환경 시스템에서 사용되며, 클라이언트와 서비스 제공자 간의 중개 역할을 브로커가 담당하여 복잡한 분산 시스템 구조를 단순화한다.
피어-투-피어 패턴
- 피어-투-피어 패턴은 각 컴포넌트가 클라이언트이자 서버로 동작할 수 있는 패턴이다. 즉, 파일 공유 네트워크처럼 모든 노드(피어)가 서로 데이터를 주고받을 수 있는 구조이다. 동아리 멤버들이 서로 자료를 주고받으며 협력하는 상황과도 비슷하다.
- 이 패턴은 중앙 서버 없이 피어들이 서로 데이터를 주고받기 때문에, 분산된 자원 공유에 적합하며 파일 공유 네트워크에서 주로 사용된다.
이벤트-버스 패턴
- 이벤트-버스 패턴은 이벤트 소스가 특정 채널에 메시지를 발행하면, 이를 구독한 리스너들이 메시지를 받아 처리하는 패턴이다. 마치 소셜 미디어에서 누군가 글을 올리면, 팔로워들이 실시간으로 알림을 받는 것과 유사하다.
- 이 패턴은 주로 알림 서비스에서 사용되며, 메시지의 발행자와 수신자 간의 느슨한 결합을 유지할 수 있어 시스템의 유연성을 높인다.
블랙보드 패턴
- 블랙보드 패턴은 모든 컴포넌트가 공유 데이터 저장소(블랙보드)에 접근하여 문제를 해결하는 패턴이다. 학교의 칠판을 예로 들면, 선생님이 문제를 칠판에 적으면 학생들이 그것을 보고 각각의 해답을 찾는 구조와 유사하다.
- 음성 인식, 차량 식별, 신호 해석 같은 복잡한 문제 해결 과정에서 주로 사용되며, 블랙보드에 데이터를 게시하고 이를 각 컴포넌트들이 활용하여 문제를 해결하는 구조이다.
인터프리터 패턴
- 인터프리터 패턴은 프로그램 코드의 각 라인을 해석하고, 이를 수행하는 방식으로 기호마다 클래스를 갖도록 구성된 패턴이다. 통역사가 발언자의 말을 실시간으로 번역하듯, 인터프리터는 코드를 한 줄씩 해석하여 실행한다.
- 이 패턴은 번역기, 컴파일러, 인터프리터와 같은 도구에서 주로 사용되며, 기호(코드)의 의미를 해석하고 즉시 실행하는 것이 특징이다.
반응형
LIST
'정보처리기사 > 서버 프로그램 구현' 카테고리의 다른 글
N-S차트 (0) | 2024.10.18 |
---|---|
모듈의 결합도와 응집도 (0) | 2024.10.18 |
객체 지향 분석의 방법론 (1) | 2024.10.17 |
객체지향 설계의 핵심 원리-클래스,메시지,캡슐화 (3) | 2024.10.17 |
소프트웨어 아키텍처 (2) | 2024.10.15 |