Skip to content

Conversation

@Soundbar91
Copy link
Collaborator

🔥 연관 이슈

🚀 작업 내용

패키지 정리 및 계층 정리

in.koreatech.payment/
├── KoinPaymentApplication.java
├── controller/
├── service/
│   ├── PaymentConfirmService.java
│   ├── PaymentQueryService.java
│   ├── PaymentService.java
│   ├── UserAuthenticationService.java
│   ├── TemporaryPaymentService.java
│   ├── PaymentIdempotencyKeyService.java
│   └── PaymentCancelService.java
├── model/
│   ├── entity/
│   ├── domain/
│   └── redis/
├── repository/
│   ├── mysql/
│   └── redis/
├── dto/
├── gateway/
│   ├── toss/
│   │   ├── TossPaymentGatewayService.java
│   │   ├── TossOrderIdGenerator.java
│   │   ├── TossPaymentClient.java
│   │   ├── dto/
│   │   └── exception/
│   └── pg/
│       ├── PaymentGatewayService.java
│       ├── PgOrderIdGenerator.java
│       └── dto/
├── common/
├── exception/
└── mapper/
  • PaymentService에 몰려있던 로직을 분리했습니다. (service 패키지)
  • 기존에는 Service를 추상화하여 구현체를 끼어 넣었는데, pg사와 연결하는 부분을 추상화했습니다. (gateway 패키지)
  • 도메인 객체와 엔티티 객체 변환 로직을 분리했습니다. (mapper 패키지)
[Client]
   |
   v
[Controller]
   |
   v
[PaymentService (Orchestrator)]
   - DTO -> Domain Info 변환
     |                           |                           |
     v                           v                           v
[TemporaryPaymentService]   [PaymentConfirmService]    [PaymentCancelService]
   - PG OrderId 발급             - PG confirm 호출             - PG cancel 호출
     |                           |                           |
     v                           v                           v
[Repositories/Redis]       [Repositories/Redis]        [Repositories]
     |                           |                           |
     |
     v
[PaymentGatewayService]
   - 외부 PG 연동 (confirm/cancel/generatePgOrderId)

멀티 데이터 소스 재설정 및 flyway 추가

  • 기존에 삭제한 멀티 데이터 소스를 재설정했습니다.
  • flyway 추가하여 결제 관련 데이터를 koin db에서 분리했습니다.
  • koin db에서 관리하는 테이블은 향후 작업에서 개선할려고 합니다. (API 호출을 통해 조회 및 수정)

테이블 ERD

Untitled

결제 롤백 로직 임시 삭제

  • 결제 과정에서 오류가 발생했을 때 롤백을 진행하는 로직을 임시로 삭제했습니다.
  • 향후 재구현 예정입니다.

💬 리뷰 중점사항

* refactor: Order PK 변경

- 기존 PK는 pgOrderId으로 변경
- 새로운 PK 추가

* refactor: Order PK 변경으로 인한 테스트 및 구현 코드 변경

* refactor: 토스 페이먼츠 주문 번호 생성 클래스 리네이밍
* refactor: Order PK 변경

- 기존 PK는 pgOrderId으로 변경
- 새로운 PK 추가

* refactor: Order PK 변경으로 인한 테스트 및 구현 코드 변경

* refactor: 토스 페이먼츠 주문 번호 생성 클래스 리네이밍

* feat: PG GateWay 인터페이스 추가

* chore: PgOrderIdGenerator 패키지 이동

* chore: TossOrderIdGenerator 패키지 이동

* chore: TossPaymentClient 패키지 이동

* chore: TossPayment Dto 패키지 이동

* feat: 결제 승인 구현

* feat: 결제 승인 구현

* chore: 롤백 로직 주석 처리

* feat: 결제 멱등키 서비스 추가

* refactor: 결제 취소 로직 리펙토링

* fix: 페이먼츠 인터페이스 참조로 변경

* test: 응답 dto 변경에 의한 테스트 수정

* chore: 클래스 및 변수 리네이밍

* chore: 토스 클라이언트 예외 클래스 패키지 변경

* fix: 결제 승인 및 취소 예외 처리 서비스로 이동
@Soundbar91 Soundbar91 requested a review from ImTotem September 1, 2025 14:24
@Soundbar91 Soundbar91 requested a review from DHkimgit September 1, 2025 14:24
@Soundbar91 Soundbar91 self-assigned this Sep 1, 2025
@Soundbar91 Soundbar91 added the Refactor 리펙토링 관련 라벨입니다. label Sep 1, 2025
@github-actions
Copy link

github-actions bot commented Sep 1, 2025

Unit Test Results

8 tests   7 ✔️  1s ⏱️
6 suites  0 💤
6 files    1

For more details on these failures, see this check.

Results for commit e769583.

@Soundbar91 Soundbar91 closed this Sep 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Refactor 리펙토링 관련 라벨입니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

코드 리펙토링

2 participants