YesAladin Batch는 Spring Batch와 Spring Scheduler를 사용하여 Yesaladin 내 여러 배치 작업을 처리하는 시스템입니다. 회원 등급 갱신, 갱신된 등급에 따른 포인트 지급, 생일 쿠폰 지급, 주문 상태 변경, 구독 갱신 알림을 수행합니다.
./mvnw spring-boot:run
- 회원 등급 갱신
- 매월 1일 전달 주문 금액 산정 후 회원 등급 갱신
- Shop Database에 접근하여 읽기/처리/쓰기 작업 수행
- CompositeItemWriter를 사용한 회원 등급 갱신/등급 갱신 내역에 대한 복합적인 쓰기 작업 수행
- 매월 1일 전달 주문 금액 산정 후 회원 등급 갱신
- 포인트 지급
- 매월 1일 갱신된 등급에 따른 포인트 지급 및 포인트 내역 작성
- 생일 쿠폰 지급
- 매일 7일 후 생일인 회원에게 쿠폰 자동 발행
- Shop, Coupon 서버와의 API 통신을 통한 생일 회원 조회/쿠폰 지급 처리
- 매일 7일 후 생일인 회원에게 쿠폰 자동 발행
- Project Management
- NHN Cloud Log & Crash 연동을 통해 모니터링 환경 구축
- Spring Cloud Config 연동을 통해 설정 정보 외부화
- 매일 자정 주문(ORDER) 상태로 3일이 지난 주문을 조회하여 취소(CANCEL) 상태로 이력 추가
- DB에 접근하여 테이블 order_status_change_logs(주문 상태 변경 이력)에서 주문(ORDER) 상태로 3일이 지나고, 3일 사이 주문(ORDER) 상태 외 이력이 존재하지 않는 주문 조회
- 조회된 주문을 대상으로 취소(CANCEL) 상태의 이력을 테이블 order_status_change_logs(주문 상태 변경 이력)에 추가
- 매일 10시 구독 갱신까지 1달, 1주, 1일 남은 구독주문을 조회하여 두레이 훅을 사용해 구독자에게 알림
- DB에 접근하여 지정한 기간만큼 남은 구독주문 상품, 그와 관련된 구독자, 결제일, 구독 기간을 조회
- ItemWriter를 사용하여 구독 정보를 DoorayHookSender를 통해 구독자에게 알림
- Git Flow 전략을 사용하여 Branch를 관리하며 Main/Develop Branch로 Pull Request 시 코드 리뷰 진행 후 merge 합니다.
- Main: 배포시 사용
- Develop: 개발 단계가 끝난 부분에 대해 Merge 내용 포함
- Feature: 기능 개발 단계
- Hot-Fix: Merge 후 발생한 버그 및 수정 사항 반영 시 사용