[Spring] Spring Batch - 일정한 시간에 회원 유효성 검사하기

2024. 6. 10. 15:13·Spring
목차
  1. SpringBatch
  2. 주요 개념
  3. 실습
  4. 전체 구성 정리
728x90
반응형
SMALL

SpringBatch

  • Spring Batch는 대용량 데이터 배치 처리에 관한 프레임워크이다.
  • 이는 데이터 집계, 변환 및 이관 작업과 같은 반복적인 대규모 처리 작업을 지원한다.

주요 개념

  • Job
    • 하나 이상의 step으로 구성된 배치 처리 작업의 단위
    • Job은 실행될 전체 작업의 청사진이다.
  • Step
    • 실제 작업을 수행하는 단위
    • 각step은 Tsaklet또는 ItemReader, ItemProcessor, ItemWriter로 구성될 수 있다.
  • Tasklet
    • Step내에서 단일 작업을 수행하는 인터페이스
    • 간단한 작업에 적합하며, execute메서드 하나로 정의된다.
  • ItemReader, ItemProcessor, ItemWriter
    • SpringBatch는 데이터 읽기, 처리 및 쓰기를 담당하는 이 세가지 구성 요소로 작업을 정의할 수 있다.
    • ItemReader는 데이터를 읽고, ItemProcessor는 데이터를 처리하며, ItemWriter는 데이터를 쓴다.
  • JobLauncher
    • JobLauncher는 Job을 실행하는데 사용된다.
    • Job과 JobParameters를 받아서 Job을 실행한다.
  • JobBuilderFactory와 StepBuilderFactory
    • Job과 Step을 생성하는데 사용되는 팩토리 클래스
  • JobParameters
    • JobParameters는 Job실행 시 필요한 매개변수를 나타낸다.
    • 동일한 Job을 서로 다른 매개변수로 여러 번 실행할 수 있다.
  • JobExcutionListener
    • Job의 시작과 종료 시 동작을 정의하는 리스너
    • Job의 라이프 사이클 이벤트를 처리할 수 있다.

실습

  • 주제
    • SpringBatch를 사용한 회원 유효성 검사 및 삭제
    • 회원중 isDeleted가 d인 회원을 삭제하는 로직을 수행한다.

전체 구성 정리

  1. 프로젝트 설정: Spring Boot와 필요한 의존성을 설정하고 데이터베이스 연결 정보를 설정합니다.
  2. 엔티티 설정: Member 엔티티 클래스를 생성합니다.
  3. 리포지토리 설정: MemberRepository 인터페이스를 생성하여 JPA를 통해 데이터베이스 작업을 수행합니다.
  4. Spring Batch 설정: 배치 작업을 구성합니다.
    • Job Configuration: 작업(Job)과 단계(Step)을 정의합니다.
    • Tasklet 설정: Tasklet을 구현하여 실제 작업을 수행합니다.
    • Job Listener 설정: 작업의 시작과 종료 시 동작을 정의합니다.
  5. 스케줄러 설정: 스케줄러를 설정하여 지정된 시간에 배치 작업을 실행합니다.

이제 Spring Boot 애플리케이션을 실행하면 매일 자정에 isDeleted 컬럼이 D인 회원들을 삭제하는 배치 작업이 실행됩니다. 스케줄러의 크론 표현식을 변경하여 원하는 시간에 작업이 실행되도록 설정할 수 있습니다.

 

 

https://github.com/Sunro1994/SpringBatch

728x90
반응형
SMALL

'Spring' 카테고리의 다른 글

[Lombok] Builder란? toBuilder를 사용해서 DB 내용 수정하기  (0) 2024.07.04
[Spring] AOP의 개념, AsertJ와 차이점, 실습해보기  (1) 2024.06.10
Spring Framework - init-param의 뜻?  (1) 2023.04.18
Spring Framework - MVC pattern Architecture  (0) 2023.04.17
Spring Framework - servlet-context.xml해석  (0) 2023.04.17
  1. SpringBatch
  2. 주요 개념
  3. 실습
  4. 전체 구성 정리
'Spring' 카테고리의 다른 글
  • [Lombok] Builder란? toBuilder를 사용해서 DB 내용 수정하기
  • [Spring] AOP의 개념, AsertJ와 차이점, 실습해보기
  • Spring Framework - init-param의 뜻?
  • Spring Framework - MVC pattern Architecture
공부하고 기억하는 공간
공부하고 기억하는 공간
IT 비전공자로 시작하여 훌륭한 개발자가 되기 위해 공부하고 있는 공간입니다. 틀린 내용이나 부족한 부분이 있으면 댓글로 알려주세요 바로 수정하겠습니다.
    250x250
  • 공부하고 기억하는 공간
    IT - railroad
    공부하고 기억하는 공간
  • 전체
    오늘
    어제
    • 분류 전체보기 (325)
      • 면접 준비 (22)
        • OS (6)
        • Spring Security (0)
        • Java (3)
        • DB (11)
        • Network (3)
      • ElasticSearch (2)
      • Kafka (4)
      • Spring (22)
        • Spring Cloud (7)
        • Security6 (5)
        • JPA (12)
        • 프로젝트 리팩토링 회고록 (4)
        • Logging (8)
        • Batch (2)
      • Redis (17)
        • Redis 개념 (8)
        • Redis 채팅 (5)
        • Redis 읽기쓰기 전략 (1)
      • AWS (11)
      • 리눅스 (29)
        • 리눅스 마스터 2급 (5)
        • 네트워크(기초) (7)
        • 리눅스의 이해 (6)
        • 리눅스의 설치 (2)
        • 리눅스 운영 및 관리 (6)
      • JAVA-기초 (16)
        • JAVA기본 (11)
        • Design Pattern (5)
      • JSP (27)
        • JSP 기본 개념 (10)
        • JSP (1)
      • SQL (1)
      • TIL (36)
      • 문제 풀이 (2)
        • Programmers (9)
        • 백준 문제풀이 (28)
      • JavaScript (10)
      • HTML (17)
      • Ngrinder (1)
        • Ngrinder 문서 정리 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      CSS
      레디스
      redis 채팅
      리눅스
      JS
      리눅스마스터2급정리
      Til
      프로그래머스
      자바 알고리즘
      리눅스마스터2급
      자바 면접질문
      jsp request
      자바 면접
      JSP
      HTML
      redis
      백준
      jsp기초
      자바 반복문
      Spring Data Redis
      springsecurity
      Spring
      java
      Springframework
      자바스크립트
      JavaScript
      자바
      spring redis
      자바기초
      스프링프레임워크
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    공부하고 기억하는 공간
    [Spring] Spring Batch - 일정한 시간에 회원 유효성 검사하기

    개인정보

    • 티스토리 홈
    • 포럼
    • 로그인
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.