kjp0411 님의 블로그
내일배움캠프 단기심화 Java - 본 캠프 Day 49 본문
TIL - 2026.04.22
오늘 한 일
- MSA 기반 티켓팅 시스템 프로젝트 구조 설계
- 서비스별 레포 분리 진행 (user, reservation, seat, queue, match, club 등)
- gateway-service, eureka-server 별도 레포 생성
- 인프라 전용 레포(ticketing-system) 역할 정의
- GitHub 이슈 및 PR 템플릿 설정 (.github 레포)
오늘 배운 점
1. 멀티모듈 vs MSA의 본질적인 차이
이전 프로젝트는 하나의 레포 안에서 여러 서비스를 관리하는 멀티모듈 구조였다.
하지만 이번 프로젝트는 서비스별로 레포를 분리한 MSA 구조로 진행된다.
- 멀티모듈: 하나의 프로젝트 안에서 여러 서비스 관리
- MSA: 서비스 자체가 독립적인 프로젝트
단순 코드 분리가 아니라 배포/운영 단위가 분리된 것
2. 인프라 서비스와 비즈니스 서비스의 차이
서비스는 크게 두 가지로 나뉜다.
- 비즈니스 서비스: user, reservation, seat 등
- 인프라 서비스: gateway, eureka
gateway는 “입구”, eureka는 “서비스 위치 관리”
3. 프로젝트 구조 설계의 중요성
루트 폴더를 ticketing으로 잡고, 그 안에 각 서비스를 배치하는 구조로 설계했다.
ticketing
├─ eureka-server
├─ gateway-service
├─ user-service
├─ reservation-service
├─ seat-service
├─ queue-service
├─ match-service
├─ club-service
├─ common-module
└─ ticketing-system (infra)
4. 실행 흐름 이해
프로젝트 구조 설계의 중요성
MSA에서의 실행 순서는 다음과 같다.
eureka → service → gateway → docker-compose
eureka가 먼저 떠야 서비스들이 서로 연결된다
5. 현재 단계에 대한 이해
지금은 기능 개발 단계가 아니라
“서비스들을 연결하는 단계”
- CRUD 구현 X
- 구조 연결 O
느낀 점
이번에 MSA 구조를 직접 설계하면서
단순히 코드를 작성하는 것보다 구조를 잡는 것이 훨씬 중요하다는 걸 느꼈다.
특히 gateway, eureka, docker-compose 같은 인프라 요소들이
전체 시스템의 동작을 좌우한다는 점이 인상적이었다.
지금은 기능을 만드는 것보다 “시스템이 실제로 돌아가게 만드는 것”에 집중해야 한다.
내일 할 것
- eureka-server clone 및 실행
- user-service eureka 연결
- gateway-service 라우팅 연결
- docker-compose 기반 전체 실행 구성
목표: MSA 최소 동작 환경 완성
'TIL' 카테고리의 다른 글
| 내일배움캠프 단기심화 Java - 본 캠프 Day 51 (0) | 2026.04.24 |
|---|---|
| 내일배움캠프 단기심화 Java - 본 캠프 Day 50 (0) | 2026.04.23 |
| 내일배움캠프 단기심화 Java - 본 캠프 Day 48 (0) | 2026.04.21 |
| 내일배움캠프 단기심화 Java - 본 캠프 Day 47 (0) | 2026.04.20 |
| 내일배움캠프 단기심화 Java - 본 캠프 Day 46 (0) | 2026.04.17 |
