diff --git a/docs/architecture/adr-payment-boundary.md b/docs/architecture/adr-payment-boundary.md index 7c9e7ee..297c8b9 100644 --- a/docs/architecture/adr-payment-boundary.md +++ b/docs/architecture/adr-payment-boundary.md @@ -1,14 +1,19 @@ -# ADR for Payment Boundary +# 결제 경계 아키텍처 결정 기록 (ADR) ## Context -In developing a payment processing system, defining clear boundaries between various components is critical for maintaining a robust architecture. This delineation ensures that payment interactions can evolve independently and that the overall system remains resilient against failures. +이 문서는 결제 시스템의 경계를 정의하고, 외부 결제 게이트웨이와의 상호작용을 관리하기 위한 아키텍처 결정을 기록합니다. ## Decision -We have decided to implement a domain-driven design where the payment processing logic resides within the domain layer, while integration with external payment gateways will occur via an adapter pattern, ensuring that the domain is insulated from external dependencies. +결제 도메인에서 외부 결제 게이트웨이를 직접 참조하지 않고, 포트 인터페이스를 통해 의존성을 관리하기로 결정했습니다. 이를 통해 결제 시스템의 유연성과 테스트 용이성을 높일 수 있습니다. ## Alternatives -1. **Tight Coupling with External Service**: Directly invoking external payment services from the domain layer, leading to increased risk of failure. -2. **Service Layer Gateway**: Using a service layer to aggregate responses but still indirectly coupling the domain to the external service. +1. 외부 결제 게이트웨이를 직접 참조하는 방법 + - 장점: 구현이 간단함 + - 단점: 결제 시스템의 유연성이 떨어지고, 테스트가 어려워짐 + +2. 포트 인터페이스를 통한 간접 참조 + - 장점: 유연성 증가, 테스트 용이 + - 단점: 초기 구현 복잡성 증가 ## Consequences -By using an adapter pattern, the domain can adapt to different payment gateways without affecting other parts of the system. This promotes better maintainability and flexibility in the payment processing architecture. \ No newline at end of file +이 결정으로 인해 결제 시스템은 외부 결제 게이트웨이에 대한 의존성을 줄이고, 다양한 결제 제공자와의 통합이 용이해집니다. 또한, 테스트 환경에서 결제 시스템을 독립적으로 검증할 수 있는 기반이 마련됩니다. \ No newline at end of file