kjp0411 님의 블로그
내일배움캠프 단기심화 Java - 본 캠프 Day 50 본문
TIL - 2026.04.23
오늘 한 일
- MSA 기반 티켓팅 시스템 인프라 구축 진행
- Eureka Server를 활용한 서비스 디스커버리 구성
- user-service, gateway-service를 Eureka에 등록 및 연결
- Spring Cloud Gateway를 활용한 API Gateway 구축
- Gateway → User Service 라우팅 테스트 성공
- Config Server를 도입하여 설정 외부화 구조 적용
- config-repo(GitHub)를 통해 서비스 설정 관리
- user-service, gateway-service 모두 config-server 기반으로 설정 로딩 적용
- 각 서비스별 Git Repository 분리 및 초기 커밋 완료
오늘 배운 점
1. MSA의 핵심 구성 요소
MSA 구조에서 필수적인 구성 요소들을 직접 구축하면서 흐름을 이해했다.
- Config Server: 설정 중앙 관리
- Eureka Server: 서비스 디스커버리
- Gateway: 요청 라우팅
- 각 Service: 독립적인 비즈니스 로직 수행
단순히 개념으로 알던 것을 실제로 연결하면서, 각 컴포넌트가 어떻게 상호작용하는지 체감할 수 있었다.
2. 설정 외부화(Config Server)의 중요성
기존에는 각 서비스 내부에서 application.yml로 설정을 관리했지만,
Config Server를 도입하면서 설정을 GitHub(config-repo)에서 관리하도록 변경했다.
이를 통해:
- 서비스 재배포 없이 설정 변경 가능
- 환경별 설정 관리 용이
- 설정 일관성 유지
MSA에서 설정을 외부화하는 이유를 명확히 이해할 수 있었다.
3. Gateway + Eureka 기반 라우팅 구조
Gateway에서 다음과 같이 설정:
- lb://USER-SERVICE 를 통해 Eureka 기반으로 서비스 호출
이를 통해:
- 실제 서비스 주소를 몰라도 호출 가능
- 로드밸런싱 및 확장성 확보
특히,
http://localhost:8000/users/test → user-service ok
이 흐름이 정상 동작하면서 전체 구조가 완성되었음을 확인했다.
4. MSA에서 Git Repository 분리 전략
각 서비스별로 Git Repository를 분리했다.
user-service
gateway-service
config-server
config-repo
이를 통해:
- 서비스 독립성 확보
- 배포 단위 분리
- 협업 시 충돌 최소화
MSA에서는 하나의 레포가 아닌, 서비스 단위로 관리하는 것이 중요함을 이해했다.
느낀 점
오늘은 단순 기능 개발이 아니라,
MSA 구조의 뼈대를 직접 구축한 날이었다.
특히 Gateway → Eureka → Service → Config Server까지
전체 흐름이 실제로 동작하는 것을 확인하면서,
단순 개념이 아닌 "구조적인 이해"로 넘어간 느낌을 받았다.
이제부터는 인프라 위에 비즈니스 로직을 쌓는 단계이기 때문에,
User 도메인(DB, Entity, CRUD, 인증)을 차근차근 구현해 나갈 예정이다.
내일 할 일
- user-service DB 연결 (PostgreSQL)
- User Entity 설계
- 기본 CRUD API 구현
- 이후 JWT 인증 구조 설계
'TIL' 카테고리의 다른 글
| 내일배움캠프 단기심화 Java - 본 캠프 Day 52 (0) | 2026.04.27 |
|---|---|
| 내일배움캠프 단기심화 Java - 본 캠프 Day 51 (0) | 2026.04.24 |
| 내일배움캠프 단기심화 Java - 본 캠프 Day 49 (0) | 2026.04.22 |
| 내일배움캠프 단기심화 Java - 본 캠프 Day 48 (0) | 2026.04.21 |
| 내일배움캠프 단기심화 Java - 본 캠프 Day 47 (0) | 2026.04.20 |
