kjp0411 님의 블로그
내일배움캠프 단기심화 Java - 본 캠프 Day 47 본문
TIL - 2026.04.20
오늘 한 일
- 티켓팅 시스템 프로젝트 구조 설계 진행
- 좌석(Seat) 도메인 요구사항 구체화
- 좌석 상태 전이 정책 정의 (AVAILABLE → HOLD → RESERVED 등)
- 대기열(Queue) 도메인 분리 여부에 대해 고민
- 전체 시스템에서 각 도메인의 책임 범위 재정의
- 인프라 구성 역할 담당 (Gateway, Eureka, 배포 구조 등)
오늘 배운 점
1. 도메인은 "데이터"가 아니라 "책임"으로 나눈다
초기에는 좌석, 예매, 결제 등을 단순히 테이블 기준으로 나누려고 했지만
실제로는 각 도메인이 어떤 책임과 정책을 가지는지가 더 중요하다는 것을 다시 느꼈다.
- 좌석: 상태 관리 (점유, 해제)
- 예매: 비즈니스 흐름 관리
- 결제: 트랜잭션 처리
같은 데이터라도 역할이 다르면 반드시 분리해야 한다.
2. 좌석 상태는 단순 CRUD가 아니라 "상태 머신"이다
좌석은 단순히 값이 바뀌는 것이 아니라
명확한 상태 전이 규칙을 가진다.
- AVAILABLE → HOLD (선점)
- HOLD → RESERVED (결제 완료)
- HOLD → EXPIRED (시간 초과)
- RESERVED → CANCELLED (환불 등)
이 흐름을 설계하면서
동시성 문제와 비즈니스 정책이 강하게 연결된다는 점을 이해했다.
3. 대기열은 별도 도메인으로 보는 것이 맞다
대기열은 단순 기능이 아니라
- 트래픽 제어
- 공정성 보장
- 시스템 보호
를 담당하는 인프라 + 도메인의 중간 성격이다.
따라서 Ticketing 내부 로직이 아니라
독립적인 컴포넌트로 분리하는 방향이 더 적절하다고 판단했다.
4. 이번 프로젝트에서 맡은 역할은 "인프라 중심 백엔드"
단순 API 구현이 아니라
- 서비스 간 구조 설계
- 트래픽 대응 구조
- 배포 및 운영 환경 구성
까지 담당하게 되면서
실제 백엔드 엔지니어 역할에 더 가까워지고 있다는 느낌을 받았다.
내일 할 일
- Gateway + 인증 흐름 구조 정리
'TIL' 카테고리의 다른 글
| 내일배움캠프 단기심화 Java - 본 캠프 Day 49 (0) | 2026.04.22 |
|---|---|
| 내일배움캠프 단기심화 Java - 본 캠프 Day 48 (0) | 2026.04.21 |
| 내일배움캠프 단기심화 Java - 본 캠프 Day 46 (0) | 2026.04.17 |
| 내일배움캠프 단기심화 Java - 본 캠프 Day 45 (0) | 2026.04.16 |
| 내일배움캠프 단기심화 Java - 본 캠프 Day 44 (1) | 2026.04.15 |
