[Refactor] status 누락 파트 수정 - #79
githyj-jang wants to merge 5 commits into
Conversation
…modification checks
|
Caution Review failedPull request was closed or merged during review 📝 Walkthrough개요예약 상태 검증 로직을 상태 패턴으로 위임하고, 런타임 타임존을 Asia/Seoul로 통일하며, CI/CD 워크플로우를 테스트/빌드 분리 및 환경변수 확장으로 최적화합니다. 변경 사항예약 상태 관리 및 배포 개선
예상 코드 리뷰 난이도🎯 3 (보통) | ⏱️ ~25분 관련 PR
추천 라벨
추천 리뷰어
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
⚔️ Resolve merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
상태 책임 분리(Reservation ↔ ReservationState)에서 누락된 정책/검증 로직을 상태 객체로 이동해 도메인 로직을 정리하고, 운영 환경 타임존 및 배포 파이프라인 설정을 함께 조정하는 PR입니다.
Changes:
Reservation의 완료/수정 가능 여부 및 체크인 가능 시간 검증을ReservationState(주로ConfirmedState)로 위임- 애플리케이션/런타임 타임존을
Asia/Seoul로 설정(Jackson, JVM 옵션, ECS 환경변수) - PROD CI를 테스트/빌드-푸시로 분리하고, PROD CD에서 DB/Redis/내부 인증 관련 환경변수 주입 확장
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/test/java/com/michelet/reservation/domain/enums/ReservationTransitionTest.java | 상태 전이 enum 기반 테스트 제거 |
| src/main/resources/application.yaml | Jackson 타임존 설정 추가 |
| src/main/java/com/michelet/reservation/domain/state/ReservationState.java | cancellable/modifiable/completable 정책/검증 메서드 기본 제공(상태별 override 전제) |
| src/main/java/com/michelet/reservation/domain/state/ConfirmedState.java | CONFIRMED 상태에 대한 취소/수정/완료 가능 검증 로직 구현 추가 |
| src/main/java/com/michelet/reservation/domain/enums/ReservationTransition.java | 상태 전이 enum 제거 |
| src/main/java/com/michelet/reservation/domain/entity/Reservation.java | 완료/수정/정책 판단을 state로 위임하도록 리팩터링 |
| Dockerfile | JVM 타임존 옵션 추가 |
| .github/workflows/ci-prod.yml | 테스트 job 분리 및 push 시에만 build/push 수행하도록 변경 |
| .github/workflows/cd-prod.yml | ECS task definition에 DB/Redis/내부 인증 관련 env 주입 추가 및 TZ 설정 추가 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| jackson: | ||
| time-zone: Asia/Seoul | ||
|
|
| EXPOSE 19500 | ||
|
|
||
| ENTRYPOINT ["java", "-jar", "/app/app.jar"] No newline at end of file | ||
| ENTRYPOINT ["java", "-Duser.timezone=Asia/Seoul", "-jar", "/app/app.jar"] No newline at end of file |
| {"name":"POSTGRES_DB","value":$POSTGRES_DB}, | ||
| {"name":"POSTGRES_USER","value":$POSTGRES_USER}, | ||
| {"name":"POSTGRES_PASSWORD","value":$POSTGRES_PASSWORD}, | ||
| {"name":"REDIS_HOST","value":$REDIS_HOST}, | ||
| {"name":"REDIS_PORT","value":$REDIS_PORT}, | ||
| {"name":"INTERNAL_AUTH_SECRET","value":$INTERNAL_AUTH_SECRET} |
📝 작업 내용
🚀 주요 변경 사항
✅ 자체 체크리스트 (필수)
./gradlew build실행 결과 정상 (인증샷 첨부)📸 테스트 인증샷
💬 리뷰어 전달사항 (선택)
📎 참고 자료
Summary by CodeRabbit
릴리스 노트
Chores
Refactor