Skip to content

moonjun1/MSA

Repository files navigation

🏗️ 완전한 MSA 시스템

Gradle 기반 마이크로서비스 아키텍처로, 상품 주문까지 가능한 완전한 전자상거래 시스템입니다. 스크린샷 2025-08-26 234206 스크린샷 2025-08-26 234202 스크린샷 2025-08-26 232748 스크린샷 2025-08-26 235828

🎯 주요 기능

  • 👤 사용자 관리: 회원가입, 조회, 삭제
  • 📦 상품 관리: 상품 등록, 재고 관리, 카테고리 검색
  • 🛒 장바구니: 상품 담기, 수량 관리
  • 📋 주문 처리: 실시간 주문 생성, 재고 자동 차감

🏗️ 시스템 아키텍처

Frontend (React)     API Gateway         Eureka Server
    :3000         →      :8080          ←     :8761
                            │
           ┌────────────────┼────────────────┐
           ▼                ▼                ▼
     User Service    Product Service   Order Service
        :8081            :8082            :8083
                                            │
                                            ▼
                                    Product Service
                                      (OpenFeign)

🚀 실행 방법

1. IntelliJ에서 프로젝트 열기

File → Open → MSA/build.gradle 선택 → Open as Project

2. 백엔드 서비스 순서대로 실행

1️⃣ EurekaServerApplication (8761) - 서비스 발견 서버
2️⃣ UserServiceApplication (8081) - 사용자 관리 서비스
3️⃣ ProductServiceApplication (8082) - 상품 관리 서비스
4️⃣ OrderServiceApplication (8083) - 주문 관리 서비스
5️⃣ GatewayApplication (8080) - API 게이트웨이

3. 프론트엔드 실행

cd frontend
npm install
npm start

🌐 접속 URL

🛠️ 기술 스택

백엔드

  • Gradle 8.10 (멀티모듈 빌드)
  • Java 17 (LTS 버전)
  • Spring Boot 3.2 (마이크로서비스 프레임워크)
  • Spring Cloud Gateway (API 라우팅)
  • Netflix Eureka (서비스 발견)
  • Spring Cloud OpenFeign (서비스 간 통신)
  • H2 Database (인메모리 DB)

프론트엔드

  • React 18 (최신 Hook 기반)
  • Axios (HTTP 클라이언트)
  • CSS Grid & Flexbox (반응형 레이아웃)

✨ 핵심 특징

아키텍처 패턴

  • 서비스 발견 패턴 (Eureka Server/Client)
  • API 게이트웨이 패턴 (단일 진입점)
  • 서비스 간 통신 (OpenFeign 선언적 HTTP 클라이언트)
  • 데이터베이스 per 서비스 (각 서비스별 독립 DB)

기술적 해결책

  • 완전한 Gradle 멀티모듈 (Maven 완전 제거)
  • Java 17 호환성 (이전 Java 22 문제 해결)
  • @PathVariable 정상 작동 (-parameters 컴파일 옵션)
  • CORS 완벽 설정 (프론트엔드 통합)

사용자 경험

  • 탭 기반 직관적 UI (사용자/상품/장바구니/주문)
  • 실시간 장바구니 기능
  • 자동 재고 관리 (주문 시 재고 차감)
  • 반응형 모바일 UI

🧪 테스트 시나리오

1. 시스템 상태 확인

  • Eureka: http://localhost:8761 (5개 서비스 등록 확인)
  • API 직접 호출: Postman으로 각 엔드포인트 테스트

2. 전체 플로우 테스트

  1. 사용자 등록: 이름, 이메일로 회원가입
  2. 상품 등록: 다양한 상품들 추가 (가격, 재고 포함)
  3. 장바구니 사용: 여러 상품을 장바구니에 추가
  4. 주문 생성: 장바구니에서 실제 주문으로 전환
  5. 재고 확인: 주문 후 상품 재고 자동 차감 확인
  6. 주문 조회: 생성된 주문 상세 정보 확인

3. 고급 기능 테스트

  • 서비스 간 통신: Order Service → Product Service (Feign)
  • 트랜잭션 롤백: 주문 실패 시 재고 복구
  • 동시성 테스트: 여러 사용자가 동시에 주문

📚 문서

🚀 확장 계획

향후 추가 가능한 기능들:

  • 🔄 Circuit Breaker (장애 격리)
  • 🔄 분산 추적 (Zipkin)
  • 🔄 중앙화 로깅 (ELK Stack)
  • 🔄 보안 인증 (JWT, OAuth2)
  • 🔄 메시지 큐 (RabbitMQ)

완전한 상용 수준의 마이크로서비스 전자상거래 시스템입니다! 🛍️✨

About

MSA 맛보기 시리즈_1 유레카로 살짝 만들어봄

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •