- 매일매일 영화 순위 정보를 DB에 저장하는 chunk 기반의 배치 프로세스 작성
- 2023.07 ~ 2023.08
- Spring Boot 2, Spring Batch 4, Spring Data JPA, Docker 24, MariaDB 11
- Docker를 활용하여, MariaDB 환경 구축
- Spring Scheduler를 활용하여, Batch Job 호출
- Spring Batch를 활용하여, ETL 작업처리
- WebClient를 활용하여, 영화 순위 관련 정보를 조회할 수 있는 KOBIS OPEN API 호출
- MariaDB Docker Image Pull
- Docker Volume 생성
- MariaDB Image Docker Container 실행(볼륨지정, 포트지정, root 패스워드 지정)
- MariaDB Image Docker Container 접속
- MariaDB DB 생성
SavePastDailyMovieJob
: 과거의 일별 영화 순위를 저장하는 3개의 Batch Step을 실행
SavePastDailyTotalMovieStep
: 전체 영화 순위 저장SavePastDailyKoreanMovieStep
: 한국 영화 순위 저장SavePastDailyForeignMovieStep
: 외국 영화 순위 저장
ItemReader
SavePastDailyTotalMovieReader
: 전체 영화 순위 조회SavePastDailyKoreanMovieReader
: 한국 영화 순위 조회SavePastDailyForeignMovieReader
: 외국 영화 순위 조회
ItemProcessor
SavePastDailyTotalMovieProcessor
: 전체 영화 순위 데이터 가공SavePastDailyKoreanMovieProcessor
: 한국 영화 순위 데이터 가공SavePastDailyForeignMovieProcessor
: 외국 영화 순위 데이터 가공
ItemWriter
- 가공된 영화 순위 데이터를 DB에 저장
- 과거의 일별 영화 순위를 저장하는 Batch Job을 1분마다 호출
- WebClient를 활용하여 KOBIS OPEN API를 호출
- 전체영화, 한국영화, 외국영화 별로 과거의 일별 영화 순위 데이터 조회
- 조회한 영화 순위 데이터를 DB에 저장할 데이터로 가공
- 가공된 영화 순위 데이터를 DB에 저장
- Batch Job이 끝난 후, DB에 영화 순위 데이터가 저장된 날짜 변경