From 3f56a1c2051ec6fa307637d4acad0bec4d10ec6e Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sun, 12 Jul 2026 07:35:30 +0000 Subject: [PATCH 1/4] forge: open work branch for SPRING-ARC-BOUNDARY-1783841726-attempt-1-run-aed3e587b299 --- ...PRING-ARC-BOUNDARY-1783841726-attempt-1-run-aed3e587b299.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .forge/SPRING-ARC-BOUNDARY-1783841726-attempt-1-run-aed3e587b299.md diff --git a/.forge/SPRING-ARC-BOUNDARY-1783841726-attempt-1-run-aed3e587b299.md b/.forge/SPRING-ARC-BOUNDARY-1783841726-attempt-1-run-aed3e587b299.md new file mode 100644 index 0000000..7eb028c --- /dev/null +++ b/.forge/SPRING-ARC-BOUNDARY-1783841726-attempt-1-run-aed3e587b299.md @@ -0,0 +1,3 @@ +# SPRING-ARC-BOUNDARY-1783841726-attempt-1-run-aed3e587b299 + +Forge 이슈 작업 브랜치 `forge/SPRING-ARC-BOUNDARY-1783841726-attempt-1-run-aed3e587b299`. -- 2.49.1 From a2b271fd58ea2f6166ca2419fcc6d7a213a6ca6b Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sun, 12 Jul 2026 07:36:07 +0000 Subject: [PATCH 2/4] =?UTF-8?q?=EA=B2=B0=EC=A0=9C=20=EC=A0=84=ED=99=98=20?= =?UTF-8?q?=EB=AA=A9=ED=91=9C=20=EC=95=84=ED=82=A4=ED=85=8D=EC=B2=98=20?= =?UTF-8?q?=EC=A0=95=EC=9D=98=20(SPRING-ARC-BOUNDARY-1783841726)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/architecture/adr-payment-boundary.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 docs/architecture/adr-payment-boundary.md diff --git a/docs/architecture/adr-payment-boundary.md b/docs/architecture/adr-payment-boundary.md new file mode 100644 index 0000000..78cf24a --- /dev/null +++ b/docs/architecture/adr-payment-boundary.md @@ -0,0 +1,19 @@ +# 결제 전환 목표 아키텍처 결정 기록 (ADR) + +## Context +결제 시스템의 전환 목표를 정의하고, 외부 결제 게이트웨이와의 통신을 관리하기 위한 아키텍처를 설정합니다. 외부 결제 게이트웨이는 도메인에서 직접 참조되지 않고, 포트 인터페이스를 통해 접근합니다. + +## Decision +결제 도메인과 외부 결제 게이트웨이 간의 의존성을 최소화하기 위해, 포트 인터페이스를 사용하여 어댑터 패턴을 적용합니다. 이를 통해 도메인 로직은 외부 시스템에 대한 의존성을 가지지 않게 됩니다. + +## Alternatives +1. 직접 외부 결제 게이트웨이를 도메인에서 참조하는 방법 + - 장점: 구현이 간단함 + - 단점: 도메인 로직의 테스트가 어려워짐 + +2. 서비스 레이어에서 외부 결제 게이트웨이를 호출하는 방법 + - 장점: 도메인과의 의존성 감소 + - 단점: 서비스 레이어가 복잡해질 수 있음 + +## Consequences +- 도메인 로직의 독립성을 유지할 수 있으며, 외부 결제 시스템의 변경에 유연하게 대응할 수 있습니다. 또한, 테스트가 용이해집니다. \ No newline at end of file -- 2.49.1 From 86216b84f511c82dbc95bd7b5c4500eba3cc98fd Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sun, 12 Jul 2026 07:36:08 +0000 Subject: [PATCH 3/4] =?UTF-8?q?=EA=B2=B0=EC=A0=9C=20=EC=A0=84=ED=99=98=20?= =?UTF-8?q?=EB=AA=A9=ED=91=9C=20=EC=95=84=ED=82=A4=ED=85=8D=EC=B2=98=20?= =?UTF-8?q?=EC=A0=95=EC=9D=98=20(SPRING-ARC-BOUNDARY-1783841726)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/architecture/package-map.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 docs/architecture/package-map.md diff --git a/docs/architecture/package-map.md b/docs/architecture/package-map.md new file mode 100644 index 0000000..716717f --- /dev/null +++ b/docs/architecture/package-map.md @@ -0,0 +1,7 @@ +| 패키지 | 책임 | 금지 의존성 | +|--------------|-----------------------------------------|-------------------------| +| controller | 사용자 요청 처리 및 응답 반환 | domain, service | +| service | 비즈니스 로직 처리 및 트랜잭션 관리 | repository | +| repository | 데이터베이스와의 상호작용 | domain | +| domain | 도메인 모델 및 비즈니스 규칙 정의 | integration | +| integration | 외부 시스템과의 통신 (예: 결제 게이트웨이) | domain | \ No newline at end of file -- 2.49.1 From e7c25fc4038d76d4de6e314d22936e21e89f9193 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sun, 12 Jul 2026 07:36:09 +0000 Subject: [PATCH 4/4] =?UTF-8?q?=EA=B2=B0=EC=A0=9C=20=EC=A0=84=ED=99=98=20?= =?UTF-8?q?=EB=AA=A9=ED=91=9C=20=EC=95=84=ED=82=A4=ED=85=8D=EC=B2=98=20?= =?UTF-8?q?=EC=A0=95=EC=9D=98=20(SPRING-ARC-BOUNDARY-1783841726)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/architecture/transaction-sequence.md | 26 +++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 docs/architecture/transaction-sequence.md diff --git a/docs/architecture/transaction-sequence.md b/docs/architecture/transaction-sequence.md new file mode 100644 index 0000000..996073f --- /dev/null +++ b/docs/architecture/transaction-sequence.md @@ -0,0 +1,26 @@ +```mermaid +sequenceDiagram + participant User + participant Controller + participant Service + participant Repository + participant PaymentGateway + + User->>Controller: 결제 요청 + Controller->>Service: 결제 처리 요청 + Service->>Repository: 트랜잭션 시작 + alt 정상 흐름 + Service->>PaymentGateway: 결제 요청 + PaymentGateway-->>Service: 결제 성공 + Service->>Repository: 트랜잭션 커밋 + else 외부 실패 + Service->>PaymentGateway: 결제 요청 + PaymentGateway-->>Service: 결제 실패 + Service->>Repository: 트랜잭션 롤백 + else DB 실패 + Service->>Repository: 트랜잭션 시작 + Repository-->>Service: DB 오류 + Service->>Repository: 트랜잭션 롤백 + end + Controller-->>User: 결제 결과 반환 +``` \ No newline at end of file -- 2.49.1