Spring Batch

젤로·2022년 8월 16일
0

Java

목록 보기
4/7

✔ 빅 데이터 처리 방식

  1. 배치 처리 (Batch Processing) : 초, 분, 시간, 일, 월 단위의 일괄 처리
  2. 실시간 처리 (Real-time Processing) : 초, 밀리세컨드, 마이크로세컨드 단위의 데이터 처리
  3. 대화형 처리 (Interactive Processing) : 대화형 환경, 콘솔에서 컴파일 없이 출력 결과 확인 가능

✔ 배치 처리

배치 처리 또는 일괄 처리 는 순차적으로 자료를 처리하는 방식. 프로그램 입출력에 따라 상호작용 가능.
일정 기간 동안 데이터를 모은 후 한번에 순서적으로 처리 하는 방식.
실시간으로 데이터 조회가 힘든 단점이 있다.
이를 위해 분산 쿼리나 스트리밍 기법이 요구된다.

  • 배치 어플리케이션 특징 :
  1. 대용량 데이터 처리 가능
  2. 자동화 - 사용자 개입 없이 실행 가능
  3. 견고성 - 데이터 충돌이나 중단 없이 처리 가능
  4. 신뢰성 - 로깅, 알림 등 오류 추적 가능
  5. 성능 - 지정시간안에 처리 완료 가능

✔ 스케줄러

DB 작업을 일정한 시간, 주기마다 실행 해야할 경우, 배치를 사용하는데 보통 스프링 스케줄러로 간편하게 구현 한다.

  • Quartz
    Job Scheduling 라이브러리. 자바로 개발되어 있어 자바 프로그램에 쉽게 통합해서 개발 가능하다.
    시스템 Fail-over와 랜덤 방식의 로드 분산처리 지원.
    수십개~수천개의 작업도 실행 가능, 간단한 interval형식이나 Cron표현식의 복잡한 스케줄링도 지원 한다.

크론표현식_정리링크


✔ Spring Batch

Spring의 특성을 그대로 가지고 있다.

DI, AOP, 서비스 추상화 등 스프링 프레임워크의 3대 요소 모두 사용 가능.

스프링 배치 앱의 요소 :

  • 데몬 :
    백그라운드 상태에서 계속 실행 되는 서버 프로세스.
    일반적인 서비스는 각각의 서비스가 사용하는 port를 관리하는 데몬이 존재.
    부팅 중에 메모리에 로딩 되어 컴퓨터가 종료될 때까지 유지 된다.

  • 데몬 쓰레드 :
    일반 쓰레드의 작업을 돕는 보조적인 역할 수행.
    일반 쓰레드가 모두 종료되면 데몬 쓰레드는 강제적으로 자동 종료.
    무한루프와 조건문을 이용해서 실행 후 대기하고 있다가 특정 조건이 만족 되면 작업을 수행하고 다시 대기하도록 작성.


✔ Tasklet

Job 안에 여러 Step이 있고 Step안에 Reader와 Processor, Writer가 있는데 이는 Tasklet(기능)으로 대체 가능하다.

Spring MVC의 @Component, @Bean과 비슷한 역할. 개발자가 Step에서 하고 싶은 내용을 자유롭게 만들 수 있다.

profile
Back-End Developer 🍏🍎

0개의 댓글

관련 채용 정보