- 데이터의 흐름이 마치 파이프를 타는 물 흐름과 비슷하다 하여 파이프라인 패턴이라 함
- 정석적인 디자인 패턴 리스트에 있는 패턴은 아닌데, 이는 동시성 프로그래밍 환경에서만 활용할 수 있는 한정적인 패턴이기 때문
- 기본 구조론 전체 패턴을 실행하기 위한 pipeline과 패턴 내 호출되는 각 함수 pipe로 이루어져 있다, pipeline이 데이터를 생성하거나 외부로부터 받아 첫번째 pipe로 전달하고, 각 pipe끼리 거쳐 작업을 처리하는 방식
장점
- 동시성 프로그래밍에서 주로 발생하는 데드락을 탐지 및 예방할 수 있다
- pipeline 내 pipe, 작업들을 쉽게 교체하거나 재사용할 수 있다
단점
- 동시성 환경 외엔 사용할 일이 없다
- 동시성 환경에 익숙하지 않다면 알 수 없는 에러를 발생시킬 수 있다
예시 코드
- 구현 방식은 입력을 변수로 받을것인지, 채널로 받을 것인지에 따라 달라지는데, 현재 파악하고 있는 방식으론 채널 자체를 pipe에서 받아주고, 채널 생성은 pipeline이 하는 방식이다
- Example Code
- 예시 코드에선 pipeline이 pipe들을 연결하고, 각 pipe의 채널도 관리하는데, 시각적으론 깔끔하게 보이지만, pipeline 복잡성이 올라가게 된다