결제 전환 목표 아키텍처 정의 (1/2) (SPRING-ARC-REFERENCE-1783832425)
All checks were successful
ci / test (pull_request) Successful in 7s

This commit is contained in:
forge-bot 2026-07-12 05:02:09 +00:00
parent 5311948bbc
commit a2e3950178

View file

@ -1,14 +1,14 @@
# 결제 전환 목표 아키텍처 결정 기록 # ADR: 결제 전환 경계 정의
## Context ## Context
결제 시스템의 아키텍처를 정의하기 위해, 외부 결제 게이트웨이와의 상호작용을 고려해야 합니다. 이 시스템은 도메인 레이어에서 어댑터를 직접 참조하지 않고, 포트 인터페이스를 통해 외부 시스템과 통신합니다. 현재 시스템은 외부 결제 게이트웨이와의 통합이 필요하며, 이를 위해 아키텍처적으로 명확한 경계를 설정해야 합니다. 결제 프로세스는 여러 단계로 나눠져 있으며, 각 단계는 성공적인 거래와 실패 시의 처리를 명확히 해야 합니다. 특히 '정상 흐름'과 커밋 및 롤백 경계는 다루어져야 합니다.
## Decision ## Decision
결제 도메인은 외부 결제 게이트웨이에 대한 의존성을 포트 인터페이스를 통해 관리하며, 이를 통해 결제 처리의 유연성과 테스트 용이성을 확보합니다. 외부 결제 게이트웨이는 포트 인터페이스를 통해 접근하고, 도메인 계층에서는 직접적으로 어댑터를 참조하지 않아야 합니다. 이를 통해 결제 프로세스의 각 단계를 잘 구분하고, 예외 처리를 체계적으로 설계합니다.
## Alternatives ## Alternatives
1. **직접 의존성**: 도메인에서 외부 결제 게이트웨이를 직접 참조하는 방법. (단점: 결합도가 높아짐) 1. **직접 어댑터 참조**: 도메인에서 외부 결제 게이트웨이에 직접 접근하는 방식. 이 방식은 구현이 간단하지만, 결제 시스템의 변경에 대한 유연성을 잃게 됩니다.
2. **포트 인터페이스 사용**: 도메인에서 포트 인터페이스를 통해 외부 결제 게이트웨이에 접근하는 방법. (장점: 결합도 감소) 2. **에이전트 패턴 도입**: 에이전트를 통해 모든 결제 관련 요청을 처리하는 방식. 이는 복잡성을 추가하지만, 확장성과 유지보수에 유리합니다.
## Consequences ## Consequences
포트 인터페이스를 사용함으로써, 결제 시스템은 외부 결제 게이트웨이에 대한 의존성을 줄이고, 다양한 결제 제공자를 쉽게 통합할 수 있는 구조를 갖추게 됩니다. 현재 선택한 방식은 외부 결제 프로세스를 도메인 비즈니스 로직과 분리시켜, 나중에 API 변경이나 서비스 교체 시 시스템 전반에 미치는 영향을 최소화합니다. 그러나 처음 설계 시 추가적인 추상화와 경계 설정이 필요합니다.