spring-architecture-resilie.../docs/architecture/adr-payment-boundary.md

1.3 KiB

Payment Boundary Decision Record

Context

결제 프로세스의 경계를 정의하는 것은 시스템의 역할과 책임을 명확히 하고 의존성을 관리하는 데 중요합니다. 이 아키텍처 결정은 결제 전환 목표에 따라 외부 결제 게이트웨이가 어떻게 시스템과 상호작용하는지를 설명합니다.

Decision

결제 도메인에서 외부 결제 게이트웨이는 포트 인터페이스 뒤에 위치하며, 도메인에서 직접 참조하지 않습니다. 이를 통해 결제 처리의 유연성 및 확장성을 확보하고, 서비스의 변경에 대한 의존성을 줄입니다.

Alternatives

  1. 외부 결제 게이트웨이를 도메인에서 직접 참조하는 방법
    • 장점: 단순한 구현.
    • 단점: 결제 서비스의 변경 시 도메인 로직에도 영향을 주어 유지보수가 어렵습니다.
  2. 다른 포트 인터페이스 사용
    • 장점: 다양한 결제 서비스를 지원 가능.
    • 단점: 추가적인 복잡성이 증가할 수 있습니다.

Consequences

이 결정으로 인해 시스템은 결제 서비스 변경 시에도 유연하게 대응할 수 있으며, 서비스 간의 경계를 명확히 하여 코드의 가독성과 유지보수를 향상시킵니다.