<aside> <img src="/icons/info-alternate_gray.svg" alt="/icons/info-alternate_gray.svg" width="40px" /> Overview

이 문서는 Dot Slash Dash 의 신규 스케줄러 개발 진행 과정과 구체적인 정보에 대한 설명을 포함하고 있습니다.

각 단계별 진행 과정과 목적을 설명하기 위해 작성되었습니다.

</aside>

<aside> <img src="/icons/list-indent_gray.svg" alt="/icons/list-indent_gray.svg" width="40px" /> List Of Contents

</aside>


1. 기술 스택 정의

기존 기술 스택 : Python - Cronjob
변경 기술 스택 : Kotlin, Spring Batch Server - Pod

2. 개발 및 테스트

  1. 데이터소스 및 엔티티 정의
    1. PostgreSQL DataSource : 모니터링 할 대상의 데이터소스 (JpaTransactionManager 사용)
    2. Batch DataSource : 배치 작업 로깅 데이터소스 (PlatformTransactionManager 사용)
  2. Job 정의
    1. 예약된 포인트 지급, 만료된 포인트 소멸, 예약된 정산 확정, 마케팅 수신 동의 갱신 및 알림
  3. Read -> Processor -> Writer 구성
    1. Reader : DB로 부터 필요한 데이터 읽어오기 (JpaPagingItemReader , JPQL 사용)
    2. Processor : 데이터 처리 과정
    3. Writer : 처리된 데이터 DB에 기록 (JPA 변경감지 적용), 알람 작업 추가
  4. CI/CD 구축
    1. ECR 빌드(build_and_push)
    2. 배포 승인(deployment_hold)
    3. EKS 이미지 업데이트(deployment)
  5. 테스트
    1. 동작 테스트 : Datadog (Log), Slack 알람, DB 데이터 변경 등을 모니터링 하며 기존과 제대로 동작하는지 테스트
    2. 실패 전략 수립 : Log - Datadog 수집, 실패된 데이터 - DB에 추가 기록

3. 문서화

Asgard 가이드 문서