MSA Shopping Mall - 1(Project Overview)

김원기·2025년 3월 8일

MSA Shopping Mall

목록 보기
1/13

일단 Hot-item-collector 를 리팩토링한다고 하긴 했는데
사실 아예 새로운 서비스가 될 수도 있으며 말그대로 리팩토링하는 과정이 담길 수 있다.

그리고 서비스 런칭 수준으로 프로젝트를 끌어올렸을 때 기준을 잡는다면 소요 기간은 아마 30-50일 사이로 잡히지 않을까 싶다.

짤막한 일정 선정 이유

  • 0일 ~ 2주 : MVP
  • 3주 ~ : 고도화 및 배포

일단 이번 포스팅에서는 핵심 기능 정의와 기술 스택 선별 그리고 해당 기술을 선택한 이유까지만 적어 보도록 하겠다.

1차 목표 - MVP

MVP에는 다음과 같은 기능을 담고자 한다.

  • User Service → 회원가입 & 로그인 (JWT)
  • Product Service → 상품 목록 조회
  • Cart Service → 장바구니 추가
  • Order Service → 주문 생성

일단 MSA를 경험하는게 먼저일 것 같다는 생각이 들어서 MVP를 위의 4가지 기능으로 선정했고, MVP외의 기능은 추후에 확장하며 진행하겠다.

핵심 기능 정의

사용자 관리(User Service)

회원 가입, 로그인, 비밀번호 변경
JWT 기반 인증 및 OAuth2 소셜 로그인 (카카오, 네이버 등)

상품 관리(Product Service)

상품 목록 조회, 검색
카테고리 및 브랜드별 필터링
상품 상세 페이지

장바구니(Cart Service)

사용자가 상품을 장바구니에 추가/삭제
수량 변경

주문 및 결제(Order & Payment Service)

주문 생성 (배송 정보 입력)
결제 처리 (카드, 가상계좌, 네이버페이 등)
주문 상태 변경 (결제 완료 → 배송 중 → 배송 완료)

재고 관리(Inventory Service)

주문 시 재고 감소
재고 부족 알림

리뷰 및 평점(Review Service)

상품에 대한 리뷰 작성
별점 평가
추천 및 검색(Search & Recommendation Service)

인기 상품 추천
Elasticsearch를 활용한 검색 최적화

고객 서비스(CS Service)

문의하기, 1:1 채팅 상담
환불/반품 처리

이벤트 및 쿠폰 관리(Coupon Service)

프로모션, 쿠폰 할인 적용
특정 유저 대상 이벤트

배송 관리(Delivery Service)

배송 추적
배송 상태 업데이트


기술 스택

일단 MSA에 초점을 맞춘 프로젝트기 때문에 프론트는 추후에 구현이 가능하거나 러닝커브를 고려한 후 선별을 하도록 하겠다.

기술 스택은 다음과 같이 정했다.

Backend : Java(Spring Boot 3.x)

DBMS
1) MySQL : 정형 데이터 관리
2) MongoDB : 비정형 데이터 관리 (로그, 채팅 메시지, 리뷰 등)

통신 방식
서비스 간 RESTful API
RabbitMQ(이벤트 기반 처리)

RabbitMQ vs Kafka

https://yay-dev.tistory.com/157

왜 RabbitMQ를 쓰냐면...

사실 MSA구조의 서비스를 개발 심지어 초기에는 MVP를 목표로하기 때문에 대용량 처리나 매우 복잡한 아키텍쳐를 가질 필요가 없다는 판단이기 때문이다.

또한 추후에 CS관련 기술을 고려했을 때 아마도 1:1 채팅이 될 예정인데
지연 시간이 짧은 RabbitMQ가 메시지 처리 브로커로 조금 더 알맞지 않을까 싶기 때문이다.

(맘 같아선 서비스 간 통신은 Kafka, 채팅 서비스에서는 RabbitMQ였지만 작은 규모의 서비스에서 기술 다 때려넣는게 좋지 않은건 아니까..)

즉, 정리해보면 다음과 같이 정리되겠다.

  • RabbitMQ: 지연 시간이 짧고, CS(1:1 채팅) 같은 빠른 응답이 필요한 서비스에 적합
  • Kafka: 대용량 스트리밍 데이터 처리에 강점이 있지만, 초기 MSA에서는 과도한 복잡성 초래 가능

👉 결론: RabbitMQ를 사용하여 이벤트 기반 처리를 하되, 추후 Kafka 도입을 고려

profile
혼자 공부하는 블로그라 부족함이 많아요 https://www.notion.so/18067a27ac7e4f4790dde645fb3bf3d3?pvs=4

0개의 댓글