Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

결제 시스템 프로젝트

본 프로젝트는 요구사항 변경에도 유연하게 대응할 수 있는 확장성과 결제 데이터의 불변성을 고려하여 개발하였습니다.


구현 포인트

데이터 정합성 보장을 위한 역정규화 전략

  • 문제 상황 : 할인 정책은 운영 상황에 따라 수정되거나 삭제될 수 있습니다. 하지만 주문 테이블이 정책 테이블을 참조만 할 경우, 정책 변경 시 과거 주문의 할인액을 계산할 수 없거나 잘못된 결과가 출력되는 정합성 문제가 발생합니다.

  • 해결 방안 : 따라서 결제 시점의 등급, 정책명, 할인값, 할인종류 등을 AppliedDiscount 테이블에 저장하여 데이터의 불변성을 보장했습니다. 추가로 조회 시마다 연산 로직을 수행해야 하는 오버헤드도 해결했습니다.


Main → Feature 설계 개선 사항

확장성을 고려한 할인 구조 개선

  • 문제 상황 : 할인 정책이 짧은 주기로 변경되기 때문에 등급 할인과 함께 결제 수단 등 할인 조건이 추가될 때마다 핵심 서비스 로직을 직접 수정해야 합니다.

  • 해결 방안 : 이를 Feature 브랜치에서 할인 정책(등급 할인, 결제 수단 할인)을 독립된 컴포넌트로 분리했습니다. 따라서 할인 로직을 수정하거나 추가하더라도 결제 시스템에 영향이 적은 유연한 아키텍처를 구축했습니다.


테스트

  • 각 등급(NORMAL, VIP, VVIP)에 따른 할인 검증

  • 등급 할인 적용 후 결제 수단 할인이 중복으로 적용되는지 검증

  • 정책 수정 및 삭제 후에도 과거 결제 이력이 유지되는지 검증

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages