[Spring Batch] Spring batch 시작하기

gwonsang247·2024년 5월 25일
1

SpringBatch

목록 보기
1/2

안녕하세요 :) 이번 시리즈는 인턴 기간에 주 업무였던 배치 프로세스를 복귀하면서 공부해 보려합니다. 부족하지만 큰 도움이 되셨으면 좋겠습니다. 잘못된 내용이나 오류 지적은 언제나 환영입니다. 😄

들어가기

먼저 제가 맡았던 업무와 구현 내용에 대해 간략히 소개하겠습니다.
당시 사내 직원들의 근무 시간을 통합 관리할 수 있는 시스템이 없어 회사는 사원들이 기입한 근무 시간을 토대로 근무 여부를 판단할 수 밖에 없었습니다(이해가 잘 안가는 시스템...).

이에 기입한 근무 시간실제 회사 출입 사원증 태깅 기록 을 조회하고 비교해 볼 수 있는 통합 근태관리 서비스 프로젝트에 참여했습니다.


제가 맡은 역할은 모든 사원이 각자 기입한 근무 시간 데이터와 태깅 데이터를 배치 프로세스를 통해 서비스 데이터베이스에 저장하고 동기화하는 부분 을 구현했습니다.


주요 고안점은 다음과 같았습니다.

  • 기입 근무 시간 데이터, 태깅 데이터는 실시간이지만 외부 API 사용 이슈로 준 실시간으로 결정
  • 근태 관련 데이터이기 때문에 절대 누락이 있어서는 안된다.(예민한 정보......)
  • 기입 근무 시간 데이터 배치 : 16000/호출(10min)
  • 태깅 데이터 : 500/호출(1min)
  • 데이터 동기화 : 1/day

기술 스택

  • Cloud : KakaoCloud
  • Client : Next.js
  • Server : Nest.js
  • DataBase : Mysql
  • Batch : Spring Batch

사용 기술 스택은 당시 프로젝트에서 사용한 내용일 뿐 시리즈의 진행과는 상관없는 참고용입니다.


아키텍처

서비스의 전체 시스템 아키텍처 입니다.
실시간 태깅 데이터를 호출하여 저장하는 BATCH A
근무 입력 데이터를 호출하여 저장하는 BATCH B
테이블의 동기화를 진행하는 BATCH C

이외에도 공휴일 정보, 추가된 사원 확인, 매달 첫날 key값 초기화 등을 수행하는 배치가 있으며 총 6가지 배치로 이루어진 프로세스입니다.

목차

시리즈에서 다룰 주요 내용은 다음과 같습니다.

  • Spring Batch 알아보기
  • Spring Batch v4.xx vs v5.xx 차이점
  • Spring Batch STEP 구현체 비교 (Tasklet vs Chunk)
  • 배치 프로세스 성능 개선

목차 순서로 시리즈를 진행해보겠습니다:) 😆

0개의 댓글

관련 채용 정보