[정보관리기술사 137회 1교시 7번] 마이크로서비스 오케스트레이션(Orchestration)과 코레오그래피(Choreography) 비교

정보관리기술사 · 137회 1교시 7번 · 배점 10점

마이크로서비스 오케스트레이션과 코레오그래피 비교

I. 개요

마이크로서비스 아키텍처에서 여러 서비스에 걸친 분산 트랜잭션을 어떻게 조율할 것인가는 핵심 설계 과제이다. ACID가 보장되지 않는 분산 환경에서 Eventually Consistent 방식의 Saga 패턴이 주로 사용되며, 이 Saga를 구현하는 방식으로 오케스트레이션(Orchestration)과 코레오그래피(Choreography) 두 가지 접근이 존재한다.

II. 오케스트레이션 vs 코레오그래피 비교

구분 오케스트레이션 코레오그래피
제어 방식 중앙 조정자(Orchestrator)가 각 서비스에 명령 전달 각 서비스가 이벤트를 구독·발행하며 자율 반응
결합도 오케스트레이터에 종속 (중앙 집중적) 느슨한 결합 (이벤트 브로커 경유)
가시성 전체 흐름 파악 용이 전체 흐름 추적 어려움 (분산 추적 필요)
단일 장애점 오케스트레이터 장애 시 전체 영향 브로커 이중화로 단일 장애점 감소
구현 도구 Apache Airflow, Temporal, AWS Step Functions Kafka, RabbitMQ, AWS EventBridge

III. Saga 패턴과의 연계

Saga 패턴은 분산 트랜잭션을 로컬 트랜잭션 시퀀스로 분해하고, 실패 시 보상 트랜잭션(Compensating Transaction)으로 롤백을 구현한다. 오케스트레이션 Saga는 조정자가 보상 트랜잭션을 직접 호출하고, 코레오그래피 Saga는 각 서비스가 실패 이벤트를 발행해 다음 서비스가 보상을 수행한다.

IV. 선택 기준 및 결론

  • 오케스트레이션 적합: 복잡한 비즈니스 프로세스, 가시성·감사 로그 요구, 팀 역량이 중앙 집중 관리에 익숙한 경우
  • 코레오그래피 적합: 서비스 간 느슨한 결합이 최우선, 이벤트 중심 아키텍처, 서비스 수가 많고 독립 확장이 중요한 경우
핵심 키워드: Orchestration, Choreography, Saga Pattern, Compensating Transaction, Event-Driven Architecture, Eventual Consistency, Distributed Transaction

Leave a Comment