스캐터 개더(Scatter Gather) 패턴
1. 개요
스캐터 개더(Scatter Gather) 패턴은 복잡한 요청을 처리하기 위해 여러 독립적인 서비스나 컴포넌트에 병렬로 작업을 분산하고(Scatter), 각 서비스로부터 받은 응답을 취합하여(Gather) 최종 결과를 생성하는 메시징 아키텍처 패턴이다. 이 패턴은 주로 분산 시스템 환경에서 응답 시간(Latency)을 줄이고 처리량(Throughput)을 높이는 데 사용된다.
2. 동작 원리 (Scatter-Gather Flow)

스캐터 개더 패턴은 일반적으로 다음 네 가지 단계로 구성다.
- 클라이언트 요청 (Client Request): 사용자가 시스템에 단일 요청
- 분산 (Scatter): Dispatcher 컴포넌트가 단일 요청을 여러 개의 작은 하위 요청(Sub-requests)으로 분할
- 처리 (Processing): 각 수신자 서비스는 할당받은 하위 요청을 독립적으로 처리하고 결과를 응답
- 취합 (Gather): Dispatcher 컴포넌트가 모든 수신자 서비스로부터 모든 응답을 받거나, 미리 정의된 시간 제한(Timeout) 내에 받은 응답들을 모아 단일의 최종 응답으로 통합하여 회신
3. 주요 활용 사례
- 가격 비교: 고객이 특정 제품의 가격을 질의할 때, 요청을 여러 이커머스 공급업체(수신자)에 동시에 분산하고, 모든 응답을 취합하여 가장 저렴한 가격을 포함하는 통합된 결과를 반환
- 재고 확인: 여러 지점의 재고를 동시에 확인하거나, 여행 예약 시스템에서 여러 항공사의 항공편 정보를 동시에 검색할 때 사용
- 분산 검색: 대규모 분산 데이터베이스나 검색 엔진에서 질의를 여러 샤드(Shard)에 분산하여 처리 속도를 높이는 데 활용
4. 장점과 고려 사항
| 구분 | 장점 (Pros) | 고려 사항 (Cons) |
| 성능 | 여러 작업을 병렬로 처리하여 전체 응답 시간(Latency)을 획기적으로 단축 | 병렬 처리가 가능한 환경(충분한 CPU/스레드)이 필요하며, 병렬화에 따른 오버헤드 발생 가능 |
| 처리량 | 시스템의 처리 능력(Capacity)이 증가하여 처리량(Throughput) 향상 | 가장 느린 응답을 기다려야 하는 경우 (모든 응답이 필요한 경우), 해당 응답이 전체 지연 시간(Latency) 결정 |
| 복잡성 | 복잡한 로직을 독립적인 서비스로 분리하여 모듈성 향상 | 응답을 취합하고 통합하는 로직 자체가 복잡할 수 있으며, 응답 누락이나 오류 처리가 복잡 |
5. 결론
스캐터 개더 패턴은 대규모 분산 환경에서 빠른 응답이 필수적인 시스템에 이상적인 패턴이다. 이 패턴의 성공은 하위 요청을 처리하는 서비스의 독립성과, 취합 단계에서 효율적인 결과 통합 로직을 구현하는 능력에 달려 있다.
'IT Tech.' 카테고리의 다른 글
| (AI) 글리치 토큰 필터링 (0) | 2025.11.19 |
|---|---|
| (AI) LLM 벡터와 임베딩 (0) | 2025.11.19 |
| (소프트웨어공학) 실행 오케스트레이터 패턴 (0) | 2025.11.18 |
| (소프트웨어공학) Pipes and Filters 패턴 (0) | 2025.11.17 |
| (보안) OWASP ASVS 개요 (1) | 2025.11.17 |