## 📌 버그 설명 <!-- "안 돼요"는 좋은 버그 설명이 아닙니다. 언제, 어떤 조건에서, 무엇이 어떻게 잘못되는지를 구체적으로 작성해주세요. 예) POST /api/v1/payments 를 동일 bookingId로 동시에 2회 호출하면 두 건 모두 PENDING으로 저장됨 (PM-03 Idempotency 위반) --> - 스케줄마다 정해진 예매 수용량(totalCapacity) <= remainingCount(실제 공연장 수용량) 의 방향으로 설계됐으나, 좌석표의 특수성을 완전히 고려하지 않는 환경에서는 불필요한 로직이 될 수 있음 - ecs 배포 시 이전 이미지 태그를 참조해 배포하게 됨 ## 🔍 원인 분석 <!-- 로그, 스택 트레이스, 코드 라인을 함께 첨부하면 원인 파악이 빠릅니다. 아직 원인을 모른다면 "추정" 이라고 명시하고 가설을 적어주세요. 예) PaymentService.createPayment() 에서 bookingId 중복 체크 로직 누락으로 추정 --> - 스케줄 마다 한계 수용량을 지정할 totalCapacity의 필요성에 의해 설계됐으나, 현재 관련 좌석표 관리 등의 기능의 필요성은 크지 않고, 오히려 수용량 관리에 혼선을 줄 수 있음 - 이전 이미지 태그로 계속해서 반복 배포를 할 수 있음 ## 🛠️ 해결 방법 <!-- 수정 방향이 여러 가지라면 왜 이 방법을 선택했는지 간략히 적어주세요. 트레이드오프가 있다면 명시하는 것이 리뷰어에게 큰 도움이 됩니다. --> - CreateScheduleRequest: totalCapacity 필드 제거 - CreateScheduleCommand: totalCapacity 필드 제거 - ProgramCommandService.createSchedule(): venueValidation.totalCapacity()를 totalCapacity로 직접 사용 - UpdateScheduleRequest / UpdateScheduleCommand: totalCapacity 필드 제거 (venue 기반 고정이므로 수정 불가) - ProgramCommandService.updateSchedule(): totalCapacity 관련 검증 제거 - Schedule.create() / Schedule.update(): totalCapacity 파라미터는 내부 유지 (도메인 불변식 유지), 단 외부에서 venue 값이 전달됨 - deploy.yml 내 갱신된 이미지 태그 기준으로 task-definition 재정의 step 추가 ## 🧪 검증 - [ ] 재현 테스트 - [ ] 수정 후 정상 동작 확인 - [ ] 관련 기능 영향도 확인 ## 📌 참고 사항 <!-- 같은 버그가 다른 서비스에도 존재할 가능성이 있다면 반드시 언급해주세요. --> - 재발 방지 아이디어
📌 버그 설명
스케줄마다 정해진 예매 수용량(totalCapacity) <= remainingCount(실제 공연장 수용량) 의 방향으로 설계됐으나,
좌석표의 특수성을 완전히 고려하지 않는 환경에서는 불필요한 로직이 될 수 있음
ecs 배포 시 이전 이미지 태그를 참조해 배포하게 됨
🔍 원인 분석
스케줄 마다 한계 수용량을 지정할 totalCapacity의 필요성에 의해 설계됐으나,
현재 관련 좌석표 관리 등의 기능의 필요성은 크지 않고, 오히려 수용량 관리에 혼선을 줄 수 있음
이전 이미지 태그로 계속해서 반복 배포를 할 수 있음
🛠️ 해결 방법
CreateScheduleRequest: totalCapacity 필드 제거
CreateScheduleCommand: totalCapacity 필드 제거
ProgramCommandService.createSchedule(): venueValidation.totalCapacity()를 totalCapacity로 직접 사용
UpdateScheduleRequest / UpdateScheduleCommand: totalCapacity 필드 제거 (venue 기반 고정이므로 수정 불가)
ProgramCommandService.updateSchedule(): totalCapacity 관련 검증 제거
Schedule.create() / Schedule.update(): totalCapacity 파라미터는 내부 유지
(도메인 불변식 유지), 단 외부에서 venue 값이 전달됨
deploy.yml 내 갱신된 이미지 태그 기준으로 task-definition 재정의 step 추가
🧪 검증
📌 참고 사항