diff --git a/docs/architecture/adr-payment-boundary.md b/docs/architecture/adr-payment-boundary.md new file mode 100644 index 0000000..ab618a7 --- /dev/null +++ b/docs/architecture/adr-payment-boundary.md @@ -0,0 +1,18 @@ +# Architectural Decision Record: Payment Boundary + +## Context +이 아키텍처 결정은 결제 시스템의 경계를 정의하고, 결제 전환 목표를 달성하기 위한 지역 및 외부 시스템과의 상호 작용을 명확히 하기 위해 작성되었습니다. 결제는 여러 외부 시스템과 통합될 필요가 있으며, 그에 따라 내부 도메인 로직이 이들 시스템과 어떻게 상호 작용하는지를 정의합니다. + +## Decision +결제 시스템은 외부 결제 게이트웨이를 포트 인터페이스로 묶고, 도메인에서 어댑터를 직접 참조하지 않습니다. 이러한 구조는 결제 도메인 로직과 외부 시스템 간의 결합도를 낮추고, 테스트 가능성을 높입니다. + +## Alternatives +1. **직접 호출**: 외부 결제 시스템의 API를 도메인에서 직접 호출하는 것. + - *장점*: 단순하고 빠른 구현. + - *단점*: 결합도가 높아지고 유지 보수가 어려워짐. +2. **서비스 레이어 도입**: 결제 로직을 서비스 레이어로 분리하여 모든 결제 요청을 처리. + - *장점*: 결합도 감소 및 더 나은 테스트 가능성. + - *단점*: 복잡성 증가. + +## Consequences +결제 시스템의 경계를 명확히 하여, 외부 시스템과의 상호작용이 관리되고, 내부 도메인 로직의 독립성이 강화됩니다. 그러나 서비스 간의 호출이 증가할 수 있어, 성능에 부정적인 영향이 있을 수 있습니다. \ No newline at end of file