혼자공부중
공부하는 블로그
혼자공부중
전체 방문자
오늘
어제
  • 분류 전체보기 (111)
    • 자격증 (49)
      • 정보처리기사 실기 (49)
    • JAVA (18)
    • DB (0)
    • 알고리즘 문제 풀이 (11)
      • 프로그래머스 (11)
    • Front (0)
      • HTML (0)
      • CSS (0)
      • Javascript (0)
    • 패스트캠퍼스 강의 (33)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 패스트캠퍼스 #포트폴리오 #직장인자기계발 #환급챌린지 #포트폴리오챌린지 #패스트캠퍼스후기 #초격차패키지 #오공완
  • DBMS
  • 2022정보처리기사
  • 정보처리기사 실기
  • 데이터모델
  • 데이터베이스
  • Java
  • 시나공
  • 배열
  • 객체지향
  • 변수
  • 인터페이스
  • 관계형데이터베이스
  • 애플리케이션테스트
  • 상속
  • 2022정보처리기사필기
  • 알고리즘
  • 코딩테스트
  • SQLD
  • 자바
  • 정보처리기사 필기
  • UI
  • 메소드
  • 정보처리기사 필기 정리
  • 정보처리기사 실기 정리
  • 수제비
  • 정보처리기사
  • 프로그래머스
  • 반복문
  • 2022정보처리기사실기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
혼자공부중

공부하는 블로그

[23일차] 50일 포트폴리오 챌린지
패스트캠퍼스 강의

[23일차] 50일 포트폴리오 챌린지

2023. 8. 30. 15:50
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://bit.ly/43z0P6S 

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr



스프링 배치

Spring Boot Batch 란?

  • 대량의 데이터를 처리하는 작업을 의미하며 이를 ‘자동화’하여 ‘시스템의 부하를 줄이고 효율적인 데이터 처리’를 가능하게 하는 프레임워크를 의미합니다.
  • Spring Boot Batch 라이브러리로 설치를 하면 ‘스프링 스케줄러’도 함께 사용이 가능합니다.

배치 프로그램(Batch Program)이란?

  • ‘대량의 데이터를 처리하는 작업을 자동화’하는 프로그램을 의미합니다.

이러한 작업들은 보통 ‘스케줄러’를 이용하여 특정시간에 수행하도록 구성합니다.

  • 예를 들어 매일 밤 12시에 일괄적으로 데이터를 업데이트하는 작업이 배치 프로그램의 예시입니다.

스케줄러(Scheduler)란?

  • 일정한 시간 간격으로 반복적으로 수행되거나 특정 시간에 수행되도록 예약해 놓은 작업을 자동으로 실행해 주는 시스템입니다.
  • 스케줄러를 이용하면 주기적으로 반복되는 일일 업무나 특정 시간에 실행해야 하는 작업 등을 자동으로 처리할 수 있습니다

배치 프로그램과 스케줄러는 동일한 것이 아닌가?

  • 비슷한 기능을 가지고 있지만 동일한 것은 아닙니다. 실행방법과 목적에 큰 차이가 있습니다.
  • 배치 프로그램은 일괄 처리를 위한 프로그램이며 ‘정해진 시간에 실행되지 않고 사용자의 명령이 있을 때 실행’합니다.
  • 스케줄러는 ‘정해진 시간에 자동으로 실행’되는 프로그램이며 ‘주기적으로 실행되는 작업’을 설정할 수 있습니다.

Spring Boot Batch 라이브러리를 종속성으로 추가하고 스케줄러를 이용하려면 또 추가를 해야 하는가?

  • 아닙니다. Spring Boot Batch 라이브러리로 설치를 하면 ‘스프링 스케줄러’도 함께 사용이 가능합니다.

배치 사용 목적

  • 대량 데이터 처리: 대규모 데이터베이스, 로그 파일, CSV 파일 등에서 ‘데이터 추출 및 처리’를 위해 사용됩니다.
  • 자동화된 작업 처리: 스케줄러를 이용하여 주기적으로 ‘반복되는 작업’ 자동 처리를 위해 사용됩니다.
  • 분산 처리: 여러 서버에서 대량의 ‘데이터 처리 가능’을 위해 사용됩니다.
  • 재시도 및 로깅: 데이터 처리 중 오류 발생 시 ‘자동 재시도 및 로깅 기능’ 지원을 위해 사용됩니다.
  • 데이터 분석: 데이터 마이그레이션, 백업 및 복원, 데이터 분석 등 다양한 용도로 사용됩니다.

배치 주요 기능

  • Job과 Step을 이용한 배치 프로세스 구현: 배치 처리의 단위 작업(Job)과 작은 단위 작업(Step)을 이용하여 배치 프로세스를 구현하는 기능을 제공합니다.
  • Chunk 지향 처리 방식을 통한 대용량 데이터 처리: Chunk 단위로 데이터를 처리하여 대용량 데이터 처리 기능을 제공합니다.
  • Quartz, Cron 등의 스케줄러를 이용한 배치 작업 스케줄링: 스케줄러를 이용하여 배치 작업을 주기적으로 실행하도록 스케줄링을 제공합니다.
  • Batch 작업에 대한 로깅과 예외 처리 기능 제공: Batch 작업 수행 중 로깅과 예외 처리를 지원하여 안정적인 배치 작업 제공합니다.

Chunk 지향 처리 방식

대용량 데이터를 처리하는 데 있어서 ‘메모리 사용량을 최소화’하고 ‘대용량 데이터를 작은 Chunk 단위로 나누어 처리’하는 방식입니다.

Quartz

Java 기반의 오픈 소스 ‘스케줄링 라이브러리’이며 특정 시간에 작업을 자동으로 실행하도록 예약을 할 수 있도록 기능을 제공합니다.

Cron

Cron은 리눅스와 유닉스 계열 운영체제에서 사용되는 예약 작업 ‘스케줄링 시스템’입니다. 특정 시간에 실행되어야 하는 작업을 정의하는 데 사용됩니다.

Spring Boot Batch 프로세스 및 용어

1. 전체 프로세스

  1. Job Launcher로 Job을 실행합니다. (Job Launcher -> Job)
  2. Job은 Step을 통해 실제 배치처리를 수행합니다. (Job → Step)
  3. Step에서는 읽어오고(Item Reader) → 처리하고(Item Processor) → 저장(Item Writer)을 수행합니다. (Step → Item Reader, Processor, Writer)

2. Job

  • 하나 이상의 Step으로 구성이 되며 ‘배치 처리의 최상위 단위’를 의미합니다.
  • 실행 시점에 파라미터를 전달받을 수 있으며 실행 결과를 반환할 수 있습니다.
  • 1개의 Job은 1개 이상의 Step으로 구성되어 있습니다.

3. Step

  • 실제로 배치 처리를 ‘수행’하는 단위를 의미합니다. Spring Batch Job안에는 한 개 이상의 Step으로 구성되어 있습니다.
  • Step에서는 하나의 작업만 처리를 수행하는 ‘Tasklet’ 방식 또는 Reader-Processor-Writer 묶음으로 여러 작업을 처리를 하는 ‘Chunk’ 방식이 있습니다

Spring Boot Batch의 종류

Tasklet 방식

  • Batch의 Step 단계에서 ‘단일한 레코드(row)’나 ‘파일’을 하나의 작업만 처리하는 방식을 의미합니다. 해당 모델에서는 처리는 각각의 처리를 하나의 트랜잭션에서 처리합니다.
  • 일반적으로 파일을 읽고 처리한 다음 결과를 데이터베이스에 쓰는 등의 작업을 수행합니다.
  • 단일 작업을 처리하기 때문에 작업이 끝날 때까지 대기해야 합니다. 그렇기에 대용량 데이터 처리에는 적합하지 않습니다.
저작자표시 변경금지 (새창열림)

'패스트캠퍼스 강의' 카테고리의 다른 글

[25일차] 50일 포트폴리오 챌린지  (0) 2023.09.01
[24일차] 50일 포트폴리오 챌린지  (1) 2023.08.31
[22일차] 50일 포트폴리오 챌린지  (0) 2023.08.29
[21일차] 50일 포트폴리오 챌린지  (0) 2023.08.28
[20일차] 50일 포트폴리오 챌린지  (1) 2023.08.27
    '패스트캠퍼스 강의' 카테고리의 다른 글
    • [25일차] 50일 포트폴리오 챌린지
    • [24일차] 50일 포트폴리오 챌린지
    • [22일차] 50일 포트폴리오 챌린지
    • [21일차] 50일 포트폴리오 챌린지
    혼자공부중
    혼자공부중
    대단한 목적보다는 혼자 공부하는 것에 의미를 두려고 합니다.

    티스토리툴바