- 간단하고 재사용 가능한 요소들로 동시 프로그램을 쉽게 구축할 수 있도록 해줌
- Go의 자연스러운 채널 기반 모델을 유지하면서, Boilerplate를 줄임
주요 기능과 목표
-
일반적인 동시성 작업 단순화
- 병렬 작업 실행, 실시간 이벤트 처리 등에서 안전하고 깨끗한 방법을 제공함.
- Goroutine, 채널, 에러 관리의 복잡성을 추상화함.
- 동시성 레벨에 대한 완전한 제어를 개발자에게 맡김.
-
모듈화된 코드 작성 지원
- Go 채널을 입력으로 받아 변환된 채널을 반환하는 방식으로 함수들이 동작.
- 유닉스 파이프와 유사하게 여러 작업을 체인처럼 연결 가능.
-
에러 처리 중앙화
- 파이프라인에서 발생한 에러를 단일 지점에서 처리 가능.
- 복잡한 경우에는 에러를 특정 지점에서 가로채거나 처리할 수 있는 도구도 제공.
-
스트림 처리 간소화
- 무한 스트림 처리 가능.
- 메모리에 맞지 않는 대규모 데이터나 실시간 처리에 적합.
-
고급 작업 지원
- 배치 처리, Map-Reduce, 스트림 분할, 병합 등 고급 기능 제공.
- 선형뿐 아니라 DAG(Directed Acyclic Graph) 형태의 파이프라인 지원.
-
커스텀 확장 지원
- 표준 Go 채널과 호환되며, 사용자 정의 함수 추가가 쉬움.
-
경량화 및 의존성 제거
- 작은 API와 zero-dependency로 기존 프로젝트에 쉽게 통합 가능.
- 자원 사용 최소화.