24 lines
No EOL
1.9 KiB
Markdown
24 lines
No EOL
1.9 KiB
Markdown
# ADR: 결제 경계 정의
|
|
|
|
## Context
|
|
이 문서에서는 결제 시스템의 아키텍처 경계를 정의합니다. 결제 처리는 시스템의 핵심 기능 중 하나이며, 다른 서비스들과의 통합이 필요합니다. 또한 보안과 데이터 전송의 무결성을 보장하는 것이 필수적입니다.
|
|
|
|
## Decision
|
|
결제 시스템은 다음의 세 가지 주요 구성 요소로 나뉘어집니다:
|
|
1. **결제 API**: 외부 결제 게이트웨이와의 연동을 처리합니다.
|
|
2. **사용자 서비스**: 결제 정보와 사용자 관련 데이터를 관리합니다.
|
|
3. **통계 서비스**: 결제 관련 데이터 분석 및 리포팅을 담당합니다.
|
|
|
|
이들 서비스는 마이크로서비스 아키텍처를 기반으로 하며, 각 서비스 간의 의존성을 최소화합니다. 통신은 REST API를 통해 이루어지며, 필요 시 메시지 큐를 활용합니다.
|
|
|
|
## Alternatives
|
|
1. **모놀리식 아키텍처**: 모든 결제 기능을 단일 애플리케이션으로 구축.
|
|
- **장점**: 단순한 배포 및 관리.
|
|
- **단점**: 확장성이 떨어지고, 하나의 서비스 장애가 전체 시스템에 영향을 미칠 수 있음.
|
|
|
|
2. **하이브리드 아키텍처**: 결제 서비스의 일부를 별도 서비스로 분리하되, 나머지는 모놀리식으로 유지.
|
|
- **장점**: 서비스의 독립적 확장 가능성.
|
|
- **단점**: 서비스 간 의존성 문제가 발생할 수 있음.
|
|
|
|
## Consequences
|
|
선택한 마이크로서비스 아키텍처는 확장성과 유지보수성을 보장할 수 있습니다. 그러나 초기 구현의 복잡성이 증가하며, 서비스 간의 데이터 일관성을 유지하기 위한 추가적인 노력이 필요합니다. 각 서비스는 독립적으로 배포가 가능하므로 더 빠른 피처 릴리즈가 가능합니다. 또한, 결제 처리를 별도로 분리함으로써 보안 요구사항을 더 잘 충족할 수 있습니다. |