From bb3d019a2666c47aee6e369c30205887808eff25 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sun, 12 Jul 2026 05:34:13 +0000 Subject: [PATCH 1/6] forge: open work branch for SPRING-ARC-RUN-1783834407-attempt-1-run-3debf383d548 --- .forge/SPRING-ARC-RUN-1783834407-attempt-1-run-3debf383d548.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .forge/SPRING-ARC-RUN-1783834407-attempt-1-run-3debf383d548.md diff --git a/.forge/SPRING-ARC-RUN-1783834407-attempt-1-run-3debf383d548.md b/.forge/SPRING-ARC-RUN-1783834407-attempt-1-run-3debf383d548.md new file mode 100644 index 0000000..c67a8ed --- /dev/null +++ b/.forge/SPRING-ARC-RUN-1783834407-attempt-1-run-3debf383d548.md @@ -0,0 +1,3 @@ +# SPRING-ARC-RUN-1783834407-attempt-1-run-3debf383d548 + +Forge 이슈 작업 브랜치 `forge/SPRING-ARC-RUN-1783834407-attempt-1-run-3debf383d548`. From 55eb8f89f75b9e2eca9d6f3023bdd3af48323638 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sun, 12 Jul 2026 05:34:23 +0000 Subject: [PATCH 2/6] =?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(1/2)=20(SPRING-ARC-RUN-1783834407)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/architecture/adr-payment-boundary.md | 21 +++++++++++++++++++++ 1 file changed, 21 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..30dc127 --- /dev/null +++ b/docs/architecture/adr-payment-boundary.md @@ -0,0 +1,21 @@ +# 결제 경계 아키텍처 결정 문서 + +## Context +이 문서에서는 결제 시스템의 아키텍처 경계를 정의합니다. 결제는 외부 결제 게이트웨이를 포함하며, 안전하게 유지하기 위해 도메인 계층이 어댑터를 직접 참조하지 않도록 포트 인터페이스를 사용하여 의존성을 관리합니다. 이러한 구조는 결제 시스템이 외부 시스템에 대한 의존성을 최소화하고 독립적으로 유지될 수 있도록 보장합니다. + +## Decision +결제와 관련된 모든 내부와 외부 상호작용은 포트-어댑터 패턴을 통해 관리됩니다. 결제 프로세스는 다음과 같은 주요 방식을 따릅니다: +- 도메인 로직은 결제 처리에 대한 모든 규칙을 정의합니다. +- 서비스 계층은 도메인과 외부 결제 게이트웨이 간의 인터페이스를 제공합니다. + +## Alternatives +1. **모든 결제 로직을 도메인에서 처리하기** + - 장점: 일관된 도메인 모델. + - 단점: 외부 시스템에 대한 높은 결합도. + +2. **결제 게이트웨이를 직접 참조** + - 장점: 단순한 구조. + - 단점: 결제 시스템의 안전성 저하 및 변경에 대한 유연성 상실. + +## Consequences +결제 시스템은 포트-어댑터 패턴을 따름으로써 향후 변경사항에 대한 유연성을 제공하며, 새로운 결제 게이트웨이에 대한 통합이 용이합니다. 또한, 보안 측면에서도 개선되며, 도메인 계층의 재사용성을 높일 수 있습니다. From 9f1c3535a6bee3475437b7cc9a10154a2b871697 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sun, 12 Jul 2026 05:34:25 +0000 Subject: [PATCH 3/6] forge: open work branch for iss-478981daa4be-attempt-1-run-c0b7e9d69a7a --- .forge/iss-478981daa4be-attempt-1-run-c0b7e9d69a7a.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .forge/iss-478981daa4be-attempt-1-run-c0b7e9d69a7a.md diff --git a/.forge/iss-478981daa4be-attempt-1-run-c0b7e9d69a7a.md b/.forge/iss-478981daa4be-attempt-1-run-c0b7e9d69a7a.md new file mode 100644 index 0000000..d92c95b --- /dev/null +++ b/.forge/iss-478981daa4be-attempt-1-run-c0b7e9d69a7a.md @@ -0,0 +1,3 @@ +# iss-478981daa4be-attempt-1-run-c0b7e9d69a7a + +Forge 이슈 작업 브랜치 `forge/iss-478981daa4be-attempt-1-run-c0b7e9d69a7a`. From d6a5bdaea6027d7e8e1589c21a644a232a2aceab Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sun, 12 Jul 2026 05:34:32 +0000 Subject: [PATCH 4/6] =?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(2/2)=20(iss-478981daa4be)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/architecture/transaction-sequence.md | 31 +++++++++++++++++++++++ 1 file changed, 31 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..8803753 --- /dev/null +++ b/docs/architecture/transaction-sequence.md @@ -0,0 +1,31 @@ +```mermaid +sequenceDiagram + participant User + participant PaymentGateway + participant Database + + %% 정상 흐름 %% + User->>PaymentGateway: 결제 요청 + PaymentGateway->>User: 결제 승인 + User->>Database: 거래 기록 저장 + Database-->>User: 거래 성공 + %% 커밋 %% + User->>Database: 커밋 + Database-->>User: 커밋 완료 + + %% 외부 실패 %% + User->>PaymentGateway: 결제 요청 + PaymentGateway-->>User: 결제 실패 + %% 롤백 %% + User->>Database: 롤백 + Database-->>User: 롤백 완료 + + %% DB 실패 %% + User->>PaymentGateway: 결제 요청 + PaymentGateway->>User: 결제 승인 + User->>Database: 거래 기록 저장 + Database-->>User: DB 오류 + %% 롤백 %% + User->>Database: 롤백 + Database-->>User: 롤백 완료 +``` \ No newline at end of file From 8d3eff4ff5b31122434772ccfb3710e9a00c07ea Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sun, 12 Jul 2026 05:35:40 +0000 Subject: [PATCH 5/6] forge: open work branch for iss-e2325889b406-attempt-1-run-0207d2e91028 --- .forge/iss-e2325889b406-attempt-1-run-0207d2e91028.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .forge/iss-e2325889b406-attempt-1-run-0207d2e91028.md diff --git a/.forge/iss-e2325889b406-attempt-1-run-0207d2e91028.md b/.forge/iss-e2325889b406-attempt-1-run-0207d2e91028.md new file mode 100644 index 0000000..64c4c82 --- /dev/null +++ b/.forge/iss-e2325889b406-attempt-1-run-0207d2e91028.md @@ -0,0 +1,3 @@ +# iss-e2325889b406-attempt-1-run-0207d2e91028 + +Forge 이슈 작업 브랜치 `forge/iss-e2325889b406-attempt-1-run-0207d2e91028`. From 396354b1fa3b5e38b32650e7ed4df83388f36517 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sun, 12 Jul 2026 05:35:48 +0000 Subject: [PATCH 6/6] =?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(1/2)=20(2/2)=20(iss-e2325889b406)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/architecture/package-map.md | 9 +++++++++ 1 file changed, 9 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..1b992fb --- /dev/null +++ b/docs/architecture/package-map.md @@ -0,0 +1,9 @@ +# Package Map + +| Package | Responsibility | Forbidden Dependencies | +|----------------|---------------------------------------------------------|-----------------------| +| controller | Handle incoming requests, validate input | service | +| service | Business logic, coordination between layers | repository | +| repository | Data access and persistence | domain | +| domain | Core business models and logic | integration | +| integration | Interact with external systems, including payment gateways | domain | \ No newline at end of file