Spring Batch 5 - 1. 시작하기

2023. 10. 20. 11:02· Spring/Spring Batch
목차
  1. 1. Spring Batch 5 변경점
  2. 2. 프로젝트 생성
  3. 3. DB 세팅
  4. 4. application.properties 세팅
  5. 5. Entity 세팅
  6. 6. 구동 후 확인
반응형

회사에서 신규 프로젝트를 하는데, 배치 서버를 구축하는 업무를 내가 맡게 되었다. 

 

포스팅은 배치 서버를 구축하는 방법, Job을 생성하고 Tasklet 기반 Step과 Chunk 기반 Step에 대해서 다루어 볼 것이고, 

Chunk기반 Step은 스프링에서 기본적으로 제공하는 Reader와 Writer에 대해서 다루어 볼 것이다.

 

업무는 멀티모듈과 스키마 기반 멀티테넌시 환경에서, 배치 서버를 구축하는 것인데, 이는 추후에 포스팅할 것이다.

 

첫 글에서는, 최신 스프링 배치 버전인 Spring Batch 5의 특징을 알아보고, 간단하게 구축하는 방법을 알아보자.

 

1. Spring Batch 5 변경점

https://docs.spring.io/spring-batch/docs/current/reference/html/whatsnew.html

 

What’s New in Spring Batch 5.0

Spring Batch 5.0 has the following major themes: Java 17 Requirement Major dependencies upgrade Batch infrastructure configuration updates Batch testing configuration updates Job parameters handling updates Execution context serialization updates SystemCom

docs.spring.io

위는 Spring Batch 5가 어떻게 바뀌었는지에 대한 공식문서이다. 

간략하게 요약하자면,

1) Spring Batch 5부터는 Spring Framework 6으로 업그레이드되며, JAVA 17 이상의 버전이 필수로 요구된다.

2) Job과 Step을 생성하는 BuilderFactory를 사용하지 않고, JobBuilder, StepBuilder를 사용한다.

3) Spring Integration 6, Junit5를 지원한다. 

4) @EnableBatchProcessing 에 새로운 속성을 부여(Datasource 또는 TransactionManager 명시 가능)할 수 있고, 생략도 가능하다.

 

Job과 Step의 Builder 생성 방식이 달라져서, 많이 바뀐 것 같지만 생각보다 적응하기 쉬운 것 같다. 

 

2. 프로젝트 생성

spring.start.io에서 생성해주어도 된다.

Example Project라서 Name은 아무렇게나 해도 되고, Java를 선택하고, Gradle-Groovy, JDK 17버전을 선택해준다.

 

 

아래와 같은 Gradle이 추가되어야 한다.

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-batch'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    runtimeOnly 'org.postgresql:postgresql'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'org.springframework.batch:spring-batch-test'
}

버전을 명시하지 않으면 최신버전으로 추가.

 

3. DB 세팅

예제코드이므로, 간단하게 Docker-compose를 사용하여 postgresql 이미지를 받아 설정해 보자.

 

프로젝트의 루트 디렉토리에 docker-compose.yml 이름으로 파일을 하나 생성해준다.

작성은 아래처럼 하면 된다.

위 이미지를 compose하려면, 도커엔진이 깔려있어야 한다. DockerDesktop을 깔아서 실행만 시켜주면 알아서 도커엔진을 실행한다.

그럼 위쪽의 화살표 부분을 눌러 compose 해 주자.

compose가 잘 된 화면

그럼 위 코드처럼 user는 jjh, password는 jjh, DB는 blog로 pg세팅이 완료되고 구동까지 된 것이다.

 

4. application.properties 세팅

db를 설치했으니, 이제 프로젝트에 이 db를 쓴다고 명시를 해주면서 JPA설정도 해주자.

 

5. Entity 세팅

JPA 의존성과 설정을 추가해주었기 때문에, Entity를  추가해 주어야 한다. 

나중에 사용할 디렉토리까지 포함하여 구조를 아래와 같이 생성한다.

domain 디렉토리 안에 Member클래스를 추가하고 아래와 같이 작성한다.

 

access=AccessLevel.PROTECTED를 설정해 준 이유는 무분별한 객체 생성에 대해 한번 더 체크할 수 있는 수단이 되기 때문이다. 

대신 이걸 사용하려면 생성자에 @Builder를 붙여야 한다.

6. 구동 후 확인

 

Member 테이블 생성 쿼리문이 나타나고 잘 실행되는 것을 볼 수 있다.

 

 

다음 포스팅은 Batch를 설정하고 메타데이터를 추가하는 방법을 작성할 것이다.

반응형

'Spring > Spring Batch' 카테고리의 다른 글

Spring Batch 5 - 5. ItemReader  (0) 2023.10.22
Spring Batch 5 - 4. Task 기반 step, Chunk 기반 step  (0) 2023.10.22
Spring Batch 5 - 3. Step 개요  (0) 2023.10.20
Spring Batch 5 - 2. Batch 설정하기, Job  (1) 2023.10.20
  1. 1. Spring Batch 5 변경점
  2. 2. 프로젝트 생성
  3. 3. DB 세팅
  4. 4. application.properties 세팅
  5. 5. Entity 세팅
  6. 6. 구동 후 확인
'Spring/Spring Batch' 카테고리의 다른 글
  • Spring Batch 5 - 5. ItemReader
  • Spring Batch 5 - 4. Task 기반 step, Chunk 기반 step
  • Spring Batch 5 - 3. Step 개요
  • Spring Batch 5 - 2. Batch 설정하기, Job
wn1331
wn1331
반응형
wn1331
JONGHUN
wn1331
전체
오늘
어제
  • 분류 전체보기 (268)
    • Spring (16)
      • Spring Data JPA (0)
      • Spring Security (11)
      • Spring Batch (5)
    • DEV (40)
      • FrontEnd (2)
      • JAVA (5)
      • Git (1)
      • 기타 (6)
      • Network (1)
      • MSA (12)
      • 개발일기 || 트러블슈팅 (5)
      • 행사 || 후기 (3)
      • GraphQL (3)
      • Kotlin (0)
      • Database (2)
    • 코딩테스트 (164)
      • Programmers_LV0 (100)
      • Programmers_LV1 (54)
      • 백준 (8)
      • Algorithm (1)
    • 교육 | 외부활동 (44)
      • 이론_JAVA (13)
      • ORACLE (12)
      • PUBLISHING (6)
      • JAVASCRIPT (5)
      • JQuery (0)
      • 항해99 플러스 백엔드 (8)
    • 기본지식 (0)
    • 끄적끄적 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 학부생(용인대학교 컴퓨터과학과 1~4학년) 네이버 블로그는⋯

인기 글

태그

  • 스프링 부트
  • transaction
  • MSA
  • Spring Batch
  • Spring
  • Step
  • MySQL
  • 항해99
  • 스프링 시큐리티
  • 스프링
  • SESSION
  • 항플
  • java
  • 항해플러스
  • JPA
  • 항플 백엔드
  • 압축
  • Spring Boot
  • spring security
  • 세션

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
wn1331
Spring Batch 5 - 1. 시작하기
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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