home
자바
home
☁️

SpringCloud & MSA

"Spring Boot로 아주 쉬운 MSA 구조 만들기 실습 플랜"
딱! 너 같은 4년차를 위한 레벨로 현실적으로 짜줄게.

목표

3개의 마이크로서비스를 만든다.
서비스 간 통신을 경험한다 (Feign Client).
Config Server, Eureka, Gateway를 쓴다.
로컬환경(Docker 없이)으로 먼저 완성한다.

만들 것 (미니 프로젝트)

서비스 구성
1.
회원 서비스 (User Service)
회원가입, 로그인
2.
상품 서비스 (Product Service)
상품 조회, 등록
3.
주문 서비스 (Order Service)
상품 주문, 주문 조회
공통 인프라
API Gateway: 외부 요청을 서비스별로 라우팅
Eureka Server: 각 서비스 등록/발견
Config Server: 서비스 설정 중앙 관리

실습 플랜 (4주 코스)

1주차: MSA 환경 구축

Spring Boot 3.x 버전으로 각 서비스 초기 세팅 (Spring Initializr)
Eureka Server 만들고, 각 서비스 등록
Config Server 구축 → 각 서비스 설정값 외부에서 관리
로컬에서 포트 다르게 띄우기 (User:8081, Product:8082, Order:8083)
목표: "Eureka 대시보드에서 3개 서비스 보이게 만들기"

2주차: 기본 기능 개발

User Service: 회원가입 (DB: H2 또는 PostgreSQL)
Product Service: 상품 등록/조회
Order Service: 주문 생성/조회
목표: "각 서비스의 REST API 완성해서 Swagger 문서화까지 하기"

3주차: 서비스 간 통신 구현

Order Service가 상품 정보 조회할 때 Product Service에 요청
(Feign Client + Load Balancer 사용)
Order Service가 회원 정보 확인할 때 User Service에 요청
장애 상황 대비 (Feign + Circuit Breaker 적용)
목표: "서로 API 호출해서 데이터 조회하게 만들기"

4주차: API Gateway 적용 + 고도화

Gateway 설정 (라우팅: /user/**, /product/**, /order/**)
인증 토큰 체크 (JWT 간단 적용)
Config Server를 Git 연동으로 개선
예외 처리 통합 (Global Exception Handler)
목표: "외부는 오직 Gateway만 통해 접근하게 만들기"

필요한 기술 스택

Java 17+
Spring Boot 3+
Spring Cloud (Eureka, Config, Gateway, OpenFeign)
Gradle (또는 Maven)
H2 / PostgreSQL
Swagger (API 명세)
Git

실습 완료 시 얻는 것

MSA 구조 이해
Eureka, Config Server, Gateway 실전 경험
Feign 통신 & Circuit Breaker 적용 경험
간단한 JWT 인증 적용 경험
GitHub에 포트폴리오 업로드 가능

정리

주차
주요 목표
1주차
서비스 구축, Eureka/Config 연동
2주차
REST API 개발 (회원, 상품, 주문)
3주차
서비스 간 통신 구현 (Feign)
4주차
Gateway 통합, JWT 인증, 고도화
참고