GraphQL Federation 2(Supergraph Architecture)

개요
GraphQL Federation 2는 여러 마이크로서비스의 GraphQL 스키마를 단일 Supergraph로 통합하여 클라이언트에 일관된 API를 제공하는 아키텍처 모델이다. Apollo Federation의 차세대 버전으로, 기존 Federation 1 대비 향상된 스키마 구성 유연성, 명확한 소유권 모델, 향상된 조합(Composition) 규칙을 제공한다.
마이크로서비스 환경에서 각 팀이 독립적으로 GraphQL 서브그래프(Subgraph)를 운영하면서도, 게이트웨이(Gateway) 또는 Router를 통해 하나의 통합된 그래프처럼 동작하도록 설계된 것이 핵심이다.
1. 개념 및 정의
GraphQL Federation 2는 여러 개의 독립 GraphQL 서비스(Subgraph)를 Supergraph로 구성하여 단일 엔드포인트로 제공하는 분산 GraphQL 아키텍처이다. 각 서비스는 자신의 도메인 스키마를 정의하고, Federation Directive를 통해 다른 서비스와 연결된다.
Federation 2는 @key, @shareable, @override, @inaccessible 등의 Directive를 확장하여 스키마 결합 방식을 개선하였다.
2. 특징
| 구분 | Federation 2 특징 | Federation 1 대비 개선점 |
| 스키마 구성 | 명확한 엔티티 소유권 | Directive 사용 간소화 |
| 조합 규칙 | 유연한 Composition | 충돌 해결 방식 개선 |
| 라우팅 | Apollo Router 기반 고성능 | Gateway 구조 최적화 |
Federation 2는 Supergraph SDL 기반 구성으로 명확한 스키마 병합 과정을 제공한다.
3. 구성 요소
| 구성 요소 | 설명 | 주요 기능 |
| Subgraph | 독립 GraphQL 서비스 | 도메인별 스키마 정의 |
| Supergraph | 통합 스키마 | 전체 API 단일화 |
| Router/Gateway | 요청 라우팅 | 분산 쿼리 실행 |
Apollo Router는 Rust 기반 고성능 구현으로 기존 Node.js Gateway 대비 처리 성능이 향상되었다.
4. 기술 요소
| 기술 영역 | 세부 기술 | 설명 |
| Schema Composition | Supergraph SDL | 스키마 병합 정의 |
| Entity Resolution | @key Directive | 엔티티 참조 처리 |
| Query Planning | Distributed Execution | 서브그래프 간 쿼리 분할 |
Federation 2는 스키마 충돌 감지 및 컴파일 단계에서 오류를 사전에 탐지한다.
5. 장점 및 이점
| 항목 | 기대 효과 | 적용 사례 |
| 팀 독립성 | 마이크로서비스 자율성 | 대규모 SaaS 플랫폼 |
| 확장성 | 도메인 단위 확장 | 글로벌 API 서비스 |
| 성능 최적화 | 분산 쿼리 실행 | 복잡한 데이터 조인 |
Supergraph 구조는 클라이언트 변경 없이 내부 서비스 확장을 가능하게 한다.
6. 주요 활용 사례 및 고려사항
| 활용 사례 | 적용 환경 | 고려사항 |
| 대규모 마이크로서비스 | 이커머스 플랫폼 | 스키마 거버넌스 필요 |
| 글로벌 SaaS | 멀티팀 개발 환경 | Router 운영 전략 |
| BFF 대체 구조 | 모바일·웹 통합 API | 모니터링 체계 강화 |
도입 시 스키마 설계 표준화, 버전 관리 전략, 성능 모니터링 및 장애 대응 체계 수립이 필요하다.
7. 결론
GraphQL Federation 2는 마이크로서비스 환경에서 분산된 GraphQL 스키마를 효율적으로 통합하는 차세대 Supergraph 아키텍처이다. 팀 단위 독립성과 확장성을 유지하면서도 단일 API 경험을 제공하며, 대규모 분산 시스템에서 강력한 API 통합 전략으로 자리잡고 있다.