본 프로젝트 뭐든사는 패션·뷰티 상품을 중심으로 한 이커머스 플랫폼으로, 백엔드 아키텍처 설계와 도메인 분리에 중점을 두어 개발된 서비스입니다.
상품, 컨텐츠, 주문, 결제, 정산, 회원 등 주요 도메인을 명확히 분리하여 설계하였으며, 도메인 간 결합도를 낮추기 위해 이벤트 기반 구조를 적용했습니다.
현재는 기본적인 커머스 기능에 집중한 MVP 단계이며, 향후 라이브 커머스, 콘텐츠 연계 쇼핑, 개인화 추천 기능 등으로 확장할 수 있는 구조를 갖추고 있습니다.
기존 패션/뷰티 커머스 플랫폼은 다음과 같은 한계를 가진다.
- 도메인 간 강결합으로 확장 시 리스크 증가
- 주문/결제/정산 흐름에서 장애 전파
- 실시간 트래픽 대응이 어려운 구조
본 프로젝트는 위 문제를 해결하기 위해 이벤트 기반 도메인 분리 구조를 채택하였다.
- Auth
- OAuth2 기반 소셜 회원가입 및 로그인, 로그아웃
- 소셜 계정 연동 (하나의 회원에 다수 소셜 계정 연결 가능)
- 회원, 판매자, 관리자 등 권한 관리 및 권한별 API 접근 제어
- 회원
- 회원 기본 정보 관리(조회, 수정)
- 회원 프로필 관리(생성, 조회, 수정)
- 회원 배송지 주소 관리(생성, 조회, 수정, 삭제)
- 상품
- 카테고리 기반 상품 조회 및 관심상품 관리
- 컨텐츠
- 컨텐츠 관리 및 검색
- 주문
- 주문 관리 및 장바구니 관리
- 결제
- 예치금 관리
- PG사 연동을 통한 결제 처리
- 정산
- Batch를 활용한 정산 처리
- Domain Isolation: 각 도메인은 독립적으로 진화
- Domain Driven Design: 도메인 간 직접 참조 제거
- Idempotent Event Handling: 중복 이벤트에도 안전
- Clear Role Separation: Member / Seller / System / System / Holder
- MSA로의 확장성 고려: 도메인 단위로 분리된 구조 (Bounded Context)
- 도메인 이벤트 기반 비동기 처리 (Spring Event)
- Spring Security & OAuth 2.0 기반의 통합 인증·인가
- JWT(JSON Web Token)를 활용한 무상태(Stateless) 인증
- 민감 정보 암호화: AES-GCM 방식 적용
- 동시성 문제 해결: 재고·결제 처리에 대한 비관적 락 적용
- 부하 분산을 위한 비동기 처리: Spring Batch 와 scheduler를 활용하여 정산 처리
- 조회 속도 향상: ElasticSearch 를 활용한 검색 도입
- 초기에는 단일 DB 기반 이벤트 처리
- Exactly-once 보장 대신 at-least-once 전략 채택
- 실시간 정산이 아닌 배치 기반 정산
- 라이브 커머스 기능 도입
- 콘텐츠 기반 상품 추천
- 재고 도메인 분리
- Kafka 기반 이벤트 처리
- MSA 도입
- 성능 테스트
각 기술 및 설계 결정에 대한 상세 내용은 아래 문서에서 확인할 수 있습니다.



