[확장성 패턴] 파이프-필터(pipe-filter) 패턴

파이프-필터란

파이프-필터는 어떻게 생겼을까?

파이프-필터 패턴

컴퓨팅 시스템에서는 물 대신 데이터가 흐른다. 필터는 각 단계에서 데이터를 처리하는 고립된 소프트웨어 컴포넌트에 해당된다.

파이프-필터 아키텍처

잘 디자인된 필터는 수신 데이터에 대해 하나의 작업만 수행하고 다른 파이프라인과 무관하게 작동한다. 

 

이 패턴에서 필터를 연결하는 파이프는 일반적으로 분산 대기열이나 메시지 브로커이다. 하지만 반드시 파이프를 통해 흐를 필요가 없다. 예를 들어 데이터를 분산 파일 시스템이나 데이터베이스에 저장하고 새로운 데이터 생성과 데이터 위치를 알림으로 보낼 수도 있다. 

예제 애플리케이션 문제 상황

모노리틱으로 구성된 하나의 서비스

예제 애플리케이션 문제 1

강한 결합도 – 다른 작업에 다른 프로그래밍 언어를 사용할 수 없다

예제 애플리케이션 문제 2

하드웨어 제약 – 각 작업은 다른 하드웨어가 필요할 수도 있다.

예제 애플리케이션의 해결방안

파이프-필터 패턴의 유스케이스

  • 디지털 광고 업계의 사용자 추적
  • IOT 장치의 데이터 처리
  • 비디오, 오디오 파일 처리

고려 사항

  • 파이프-필터는 상당한 수준의 오버헤드와 복잡도가 필요하다.
  • 각 필터는 stateless여야 하며 태스크를 수행하는 데 필요한 정보를 충분히 입력 받아야 한다.
  • 단일 트랜잭션으로 수행할 때는 좋은 선택이 아니다.

참고

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유