프로젝트 기획 - LIMITED-TEAM25/wiki_repository GitHub Wiki

📑 프로젝트 기획

1️⃣ 프로젝트 주제

한정판매, 경매, 체험단 모집, 쿠폰 발급과 같은 트래픽 집중 이벤트를 안정적으로 처리하는 MSA기반 Spring Boots 프로젝트



2️⃣ 프로젝트 목표

  • MSA 구조의 확장성과 유연성을 통한 안정적인 서비스 제공.
  • 대규모 트래픽 처리
    • Redis, Kafka, AWS 사용으로 트래픽 집중 시 캐싱, 스케일 업, 비동기 처리를 통한 안정적인 구조 설계
  • 대용량 데이터 처리
    • Kafka의 메시지 큐 기능을 사용하여 대용량 데이터의 순차적인 처리 기능 제공
  • 서비스 장애 조기 탐지 및 신속한 대응을 위한 모니터링 시스템 구축
    • Prometheus(수집), Grafana(view 제공)를 활용한 실시간 메트릭 및 로그 모니터링으로 시스템 안정성 확보

3️⃣ 서비스 핵심 기능 정의

  • 한정 상품 판매 기능
    • 한정된 수량의 상품을 구매하는 기능 구현
      • 상품 개수 이상의 요청은 실패 응답 반환.
  • 쿠폰 발행 기능
    • 한정된 수량의 쿠폰을 발급 받는 기능 구현
      • 쿠폰 개수 이상의 요청은 실패 응답 반환.
  • 경매 기능
    • 제한된 시간 내에 가장 높은 가격을 입찰한 회원이 해당 상품 구매 가능
    • 다른 사용자의 입찰가를 알 수 없는 블라인드 경매
    • 입찰 제한 상황
      • 시작 입찰가 보다 작은 금액을 입력한 경우 실패 응답 반환
      • 경매 날짜 외 입찰을 시도한 경우 실패 응답 반환
  • 체험단 기능
    • 제한된 시간 내에 지원 자격을 충족한 응모 인원 중 랜덤으로 선정
    • 인원 제한
      • 응모 인원 제한 X
      • 선발 인원 제한 O
    • 회원의 성별 데이터를 기준으로 지원 자격 제한

4️⃣ 기능 우선순위

  1. API Gateway, 인증/인가
  2. 사용자 기능
  3. 상품, 주문
  4. 선착순 상품 구매, 쿠폰, 경매, 체험단

5️⃣ 기능 목록

  • 인증/인가 서비스
    • 회원 가입
    • 로그인
    • 로그아웃 + 블랙리스트
  • 사용자 서비스
    • 회원 정보 조회
      • 비밀번호 제외
  • 주문 서비스
    • 주문 생성
    • 주문 조회
    • 주문 상태 변경
  • 상품 관리 서비스
    • 상품 생성
    • 상품 조회
  • 한정 수량 서비스
    • 한정수량 구매
    • 한정수량 이벤트 생성
    • 한정수량 이벤트 조회
    • 한정수량 이벤트 상태 변경
    • 한정수량 상품 생성
    • 한정수량 상품 조회
    • 한정수량 상품 재고 수정
  • 상품 경매 서비스
    • 경매 이벤트 생성
    • 경매 이벤트 조회
    • 경매 이벤트 상태 변경
    • 경매 입찰
    • 경매 입찰 조회
    • 상품 경매 구매
    • 경매 상품 생성
    • 경매 상품 조회
    • 경매 상품 재고 수정
  • 쿠폰 서비스
    • 쿠폰 생성
    • 쿠폰 조회
    • 쿠폰 상태 변경
    • 사용자에게 쿠폰 발급
    • 사용자에게 발급된 쿠폰 사용
  • 체험단 서비스
    • 체험 이벤트 생성
    • 체험 이벤트 조회
    • 체험 이벤트 상태 변경
    • 체험단 지원
    • 체험단 선정
    • 체험 상품 등록
    • 체험 상품 조회
    • 체험 상품 수정
  • 공통 모듈 서비스
    • BaseEntity
    • Exception

6️⃣ 업무 분담

조규성 : Leader

  • API-Gateway
  • Eureka-Server
  • 인증/인가
  • 사용자
  • 쿠폰 이벤트

엄은진 : Sub-Leader

  • 주문
  • 경매 이벤트

이소현 : Tech-Leader

  • 한정 수량 이벤트
  • 상품

안중건 : Tech-Leader

  • 체험단 이벤트
  • 공통 모듈
⚠️ **GitHub.com Fallback** ⚠️