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

1.3 KiB

ADR: 결제 경계 정의

Context

현재 시스템에서 결제를 처리하는 방식은 여러 서비스 간 의존성이 크고, 특정 결제 게이트웨이에 종속적입니다. 이를 개선하기 위해 결제 서비스의 경계를 명확히 하고 독립성을 확보하는 것이 필요합니다.

Decision

결제 서비스는 외부 결제 게이트웨이에 대한 포트 인터페이스를 정의하고, 도메인 모델에서 애드블레이터를 직접 참조하지 않도록 설계합니다. 이를 통해 결제 관련 기능을 서비스와 리포지토리 계층으로 분리하여 각 층의 독립성을 강화합니다.

Alternatives

  1. 결제 서비스를 기존 방식대로 유지하고 결제 게이트웨이에 직접 의존하도록 하는 것
    • 장점: 기존 코드 변경 없음
    • 단점: 유지보수 및 확장성 저하
  2. 결제 서비스를 완전 독립형으로 개발
    • 장점: 독립성 극대화
    • 단점: 초기 개발 비용 증가

Consequences

양방향 의존성을 제거함으로써 시스템 전체의 유지보수성이 향상되고, 독립적으로 결제 서비스를 변경할 수 있는 능력이 확보됩니다. 그러나 초기 설계와 변경 과정에서 추가적인 리소스를 소요할 수 있습니다.