Java Framework spring batch 소개

2019.12.24 21:58

졸리운_곰 조회 수:238

 

 

Spring batch 란?

•Spring batch는 배치 어플리케이션의 표준화를 목적으로 탄생되었다.

 

•보통, 배치 어플리케이션은 아래와 같은 작업을 수행한다.

 

 

Spring batch 로 가능한 시나리오

•주기적으로 commit 이 발생하는 배치 프로세스를 처리할 때
•동시에 N개의 같은 job을 돌려 병렬처리 하고 싶을 때
•실패한 배치처리를 중간부터 다시 돌리고 싶을 때
•배치 실행 이력을 남기고 싶을 때
•기타 등등…모든 배치 시나리오를 spring batch로 가능하다.

 

 

Spring batch 의 기술적 측면

 

  • 배치가 실행되는 환경과 배치 업무 사이의 관심사를 분리한다.

  • 개발자는 비즈니스 로직에 집중하고, 나머지는 프레임워크에서 처리한다.

  • 배치 작업의 공통적인 부분을 핵심 인터페이스로 제공한다.(표준화)

  • 핵심 인터페이스에 대한 default구현체를 제공해주어 쉽게 이용가능.

  • 설정, 커스터마이징, 확장을 쉽게 할 수 있게 해준다.

 

Spring batch 아키텍쳐(구성)

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

•Application : 개발자가 spring batch 프레임워크를 사용해 

                  코딩한 커스텀 코드 부분

•Batch Core : 배치 Job을 제어하고 실행시키는데 필요한 
                  JobLauncher, Job, Step등을 포함한다.
•Batch Infrastruncture :  reader, writer, validator, retry, repeat 같은                           
서비스를 포함하며, 앞의 두 부분에서 사용한다. 
즉, Application과 Batch Core 모두 공통이 되는 인프라스트럭쳐 
위에서 구축된다.

 

 

Spring batch 를 사용하기 위한 준비

  • Spring-batch-core가 Batch-infrastructure 의 dependency를 가지고 있으므로 Spring-batch-core만 설정해주면 된다.(필수)

 

  • Spring batch test를 위해 추가

 

 

일반적인 배치 어플리케이션에 대한 가이드 라인

•가능한한 단순화 하라. 단일 배치 안에서 복잡한 논리 구성을 피하라.
•가능한 한 물리적 데이터에 가까운 곳에서 데이터를 처리하라.
•I/O 리소스 사용을 최소화하고 가능한 한 internal 메모리를 사용하라.
•배치 실행 안에서 같은 데이터를 두 번 처리하게 하지 마라.
•데이터 무결성에 관해서는 항상 최악을 생각하라. 충분한 확인과 
 레코드에 대한 validation 로직을 삽입하라.
•테스트는 실제 상용 데이터 사이즈로 실제와 같은 환경에서 가능하면
  일찍 테스트 하라.
 
Spring Batch 3.0 에서 추가된 기능
  •    JSR-352를 지원해서 표준배치스펙과 완벽하게 호환된다.
  •    Spring Batch Integration은 원래 Spring Batch Admin의 하위모듈이었는데 승격되어 spring batch 3.0부터 포함되었다.
  •    Spring 4, Java8 지원 (최소 Java 6 이상에서 동작)
  •    JobScope 지원 (기존에는 StepScope만 지원되었다.)
  •    SQLite 지원 
 



출처: https://popqpq.tistory.com/entry/1-spring-batch-소개 [임허니 공부방]

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
62 [maven 설정] Jackson Databind » 2.6.7.1 졸리운_곰 2020.10.05 196
61 [maven 설정] MongoDB Java Driver » 3.12.6 졸리운_곰 2020.10.05 183
60 Maven 에 직접 jar 라이브러리 추가하기!!! ( 외부 repository 사용이 안될때) + scope 정리 졸리운_곰 2020.10.05 175
59 추상(abstract) 클래스가 필요한 기본적인 이유 졸리운_곰 2019.10.30 254
58 Java and JMX - Building Manageable Systems secret 졸리운_곰 2019.05.26 0
57 [GC] 강제로 GC시키기Java 메모리 full 발생시 강제로 GC 시키기 졸리운_곰 2019.01.22 393
56 Java Map 반복(Iteration)시키는 3가지 방법 졸리운_곰 2019.01.01 352
55 UML: 클래스 다이어그램과 소스코드 매핑 file 졸리운_곰 2018.04.30 414
54 lombok에 대해서 알아보자 file 졸리운_곰 2018.04.24 303
53 lombok을 잘 써보자! (2) 졸리운_곰 2018.04.24 336
52 lombok을 잘 써보자! (1) 졸리운_곰 2018.04.24 394
51 [Java] Quartz (쿼츠)를 사용하여 자바 스케줄링(scheduling) 하기 졸리운_곰 2018.02.12 523
50 [subclipse] svn에서 무시할 파일 설정하기 svn:ignore property 설정 file 졸리운_곰 2017.09.24 294
49 자바에서 C# 호출하기 file 졸리운_곰 2017.04.26 498
48 Comparison between C# and Java - DiVA.pdf file 졸리운_곰 2017.04.25 1027
47 Java Annotation: 인터페이스 강요로부터 자유를… file 졸리운_곰 2017.03.20 327
46 Java Naming conventions 자바 명명 규칙 졸리운_곰 2017.03.04 279
45 Timer 클래스를 이용한 작업 스케쥴링 졸리운_곰 2016.11.14 298
44 자바 8 살펴보기 file 졸리운_곰 2016.05.23 449
43 Java 8 개선 사항 관련 글 모음 졸리운_곰 2016.05.23 417
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED