Open bbbbooo opened 9 months ago
@bbbbooo 고생하셨습니다! 에러처리도 AOP 이용해서 꼼꼼이 잘 하셨네요!
ApplicationEventPublisher의 @TransactionalEventListener
구현 매우 좋았습니다.
@bbbbooo 고생하셨습니다! 에러처리도 AOP 이용해서 꼼꼼이 잘 하셨네요! ApplicationEventPublisher의
@TransactionalEventListener
구현 매우 좋았습니다.
감사합니다!
💡 구현 목표
예약
이라는 큰 틀에서 시작하여 각 기능별 책임을 적절히 분리하고자 하는 것이 목표였습니다.최종적으로
예약
,공연
,알람
이 3가지 관점으로 나눠 구현하였습니다.📝 코드 컨벤션
구글 자바 코드 컨벤션 번역을 참고하여 구현하였습니다.
최대한 지키려고 하고 있으나, 기존 습관이 몸에 붙은 탓에 지켜지지 않는 부분이 있을 수 있습니다 😭
✅ 구현 기능
예약
공연
알람
예외 핸들러
🎫 기능 흐름
코드 리뷰에 도움이 되고자 제가 생각한 기능의 대략적인 흐름을 정리하였습니다.
예약
예약 저장
예약 가능 여부
가disable
로 바뀝니다.예약 전체 조회
offset
방식을 채택한 페이징을 구현하였습니다.예약 취소 및 알람
예약 취소 트랜젝션이 커밋될때
를 구독하는 이벤트를 발행합니다. 해당 이벤트가 발생하면 예약 취소한 공연을 알람 신청한 고객들에게 이메일이 날라갑니다. 이때, 이벤트 발행 후 트랜젝션은예약 취소
가 커밋된 이후기 때문에 전파 범위를REQUIRES_NEW
로 설정하였습니다.MimeMessage
와 타임리프를 활용하였습니다.공연
공연 전체 조회
offset
기반 페이징을 구현하였습니다. 프론트에서enable
을 검증하겠지만 무조건적인 신뢰는 옳지않다고 판단하여컨트롤러
,서비스
레이어에서도 검증하도록 구현하였습니다.알람
알람 설정