Spring batch

Angelo·2020년 12월 15일
0

SPRING

목록 보기
10/34

✔ 빅 데이터 처리 방식


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

✔ 배치 처리

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

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

✔ 스케줄러

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

Quartz

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

Cron 표현식 : 링크


✔ Spring Batch

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

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

  • 스프링 배치 앱의 요소 :


✔ Deamon

  • 백그라운드 상태에서 계속 실행 되는 서버 프로세스.
  • 일반적인 서비스는 각각의 서비스가 사용하는 port를 관리하는 데몬이 존재.
  • 부팅 중에 메모리에 로딩 되어 컴퓨터가 종료될 때까지 유지 된다.
  • 데몬 쓰레드 :
    일반 쓰레드의 작업을 돕는 보조적인 역할 수행.
    일반 쓰레드가 모두 종료되면 데몬 쓰레드는 강제적으로 자동 종료.
    무한루프와 조건문을 이용해서 실행 후 대기하고 있다가 특정 조건이 만족 되면 작업을 수행하고 다시 대기하도록 작성.

✔ Tasklet

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

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

profile
나만의 학습 노트

0개의 댓글