스프링 배치

CEO @Kit Works Inc. em Kit Works inc.
30 de May de 2023
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
스프링 배치
1 de 22

Mais conteúdo relacionado

Similar a 스프링 배치

Sql 중심 코드 탈피Sql 중심 코드 탈피
Sql 중심 코드 탈피ssuser776e2d
오픈소스를 활용한 Batch_처리_플랫폼_공유오픈소스를 활용한 Batch_처리_플랫폼_공유
오픈소스를 활용한 Batch_처리_플랫폼_공유knight1128
Ahea Team Spring batchAhea Team Spring batch
Ahea Team Spring batchSunghyun Roh
Spring vs. spring bootSpring vs. spring boot
Spring vs. spring bootChloeChoi23
MariaDB 마이그레이션 - 네오클로바MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바NeoClova
Software Architect day - 웹 프레임워크 종결 -  metaworks3Software Architect day - 웹 프레임워크 종결 -  metaworks3
Software Architect day - 웹 프레임워크 종결 - metaworks3uEngine Solutions

Similar a 스프링 배치 (20)

Mais de Wonjun Hwang

잘못된 상속은 객체지향을 해친다잘못된 상속은 객체지향을 해친다
잘못된 상속은 객체지향을 해친다Wonjun Hwang
React 상태관리React 상태관리
React 상태관리Wonjun Hwang
WebSocketWebSocket
WebSocketWonjun Hwang
2023 Baseline된 새로운 Web 기능2023 Baseline된 새로운 Web 기능
2023 Baseline된 새로운 Web 기능Wonjun Hwang
MSAMSA
MSAWonjun Hwang
ktor frameworkktor framework
ktor frameworkWonjun Hwang

스프링 배치

Notas do Editor

  1. 안녕하세요. 오늘은 “스프링 배치 알아보기” 라는 주제로 스터디를 준비해보았습니다. 회사 업무를 통해 간단한 배치 수정 작업을 하다보니 자연스럽게 관심이 갔었고 언젠가 하나의 배치 프로세스를 완성하는 것을 목표로 미리 공부하여 준비해 놓으면 좋겠다 라는 취지로 준비하게 되었습니다. 최근에 저는 스프링 배치 관련 업무를 유지보수하게 되었습니다. 이 경험을 통해 실무에서 활용 가능한 능력을 키워 나아가고자, 직접 배치 프로그램을 설계하고 구현해보는 도전에 나서기로 했습니다. 이를 위해 스터디를 시작하였습니다.
  2. 일반적으로 배치(Batch) 프로그램이라 하면, 일련의 작업들을 하나의 작업 단위로 묶어 연속적으로 일괄 처리하는 것을 말합니다. 배치가 아닌, 일반적인 프로그램에도 여러 작업을 묶어 처리하는 경우가 있는데, 둘의 차이점은 사용자와의 상호작용(Interaction) 여부라고 합니다. 배치의 특징으로는 사용자와의 상호작용이 없어야 하고, 일련의 작업들을 묶고, 대량의 데이터를 처리하는데 특화되어 있고, 정기적으로 반복 수행하고, 정해진 규칙에 따라 자동으로 수행한다는 특징이 있습니다.
  3. 스프링 배치는 자바 기반의 배치 아키텍처입니다. 스프링 배치의 특이한 점은 Accenture(액센츄어)라는 한 회사의 기증으로부터 탄생하게 되었다는 것입니다. 기존 Java 기반 오픈소스 프로젝트나 커뮤니티는 웹 및 마이크로서비스 기반 아키텍처 프레임워크에 많은 관심을 기울여 왔지만, 배치 처리 요구를 수용하기 위한 재사용 가능한 아키텍처 프레임워크에 대한 관심은 현저히 부족했습니다. 이런 문제를 개선하기 위해 바꾸기 위해 SpringSource(현 Vmware)와 Accenture(액센츄어)가 협력하였고 액센츄어는 자사의 기술적인 경험과 노하우가 담인 배치 처리 아키텍처 프레임워크를 Spring Batch 프로젝트에 기증하고, SpringSource에 의해 스프링 프레임워크에 접목시키며 현재의 스프링배치가 탄생하였습니다.
  4. 스프링 배치는 대량의 데이터를 일괄처리하는데 특화되어 있습니다. 로깅, 트랜잭션 관리, 데이터 이식 작업, 일/월/년 매출 통계 등등 대량의 데이터를 다루는 데에 최적화된 프레임워크라고 보시면 됩니다. 스프링 배치는 파티셔닝 기술을 통해 대량의 데이터를 분산처리 하거나, 작업 도중 시스템에러 발생 시 성공한 기존 작업은 건너뛰고 실패한 지점부터 재 시작하는 등의 배치 작업을 보다 쉽고 안정적으로 사용할 수 있도록 만들어 놓은 프레임워크입니다. 스프링 배치는 특이하게 스케줄링 프레임워크가 아니다 라고 강조하고 있는데요. 아마 사용자들이 배치 프로그램이라고 하면 일반적으로 스케줄링 프로그램을 가장 먼저 연상시키다보니 스프링 배치는 데이터 처리에 특화된 프레임워크다 라는 걸 강조하는 것 같습니다.
  5. 스프링 배치를 다음과 같은 업무에 활용할 수 있다고 소개하고 있습니다.
  6. 스프링 배치는 크게 Job, Step, Tasklet이라는 도메인으로 구성되어 있고 각 도메인이 순서대로 실행됩니다. JOB은 “일 매출 통계”와 같은 업무 그 자체를 의미합니다. STEP Job을 어떻게 구성하고 실행할 것인지 명세해 놓은 정보를 가지고 있는 도메인 객체입니다. TASKLET Step내에서 실행되는 도메인 객체로서 실제 작업을 처리하는 도매인 객체로 Tasklet기반과 Chunk기반이있습니다.
  7. Spring Batch에는 배치 작업에 대한 메타데이터를 저장하는 데이터베이스 스키마를 제공합니다. 또 다양한 RDBMS에 맞는 쿼리를 자체적으로 미리 제공하고 있습니다. 이 메타데이터에는 각 작업의 시작 및 종료 시간, 각 작업의 상태, 각 작업에서 처리한 레코드 수와 같은 정보가 포함됩니다. 데이터베이스 스키마는 각 작업에서 실행되는 단계에 대한 정보도 저장합니다. 이 정보는 배치 작업의 진행 상황을 모니터링하고 문제를 해결하는 데 사용할 수 있습니다.
  8. Job에 대해서 더 자세히 알아보도록 하겠습니다. Job은 Job, JobInstance, JobParatemers, JobExecution 세부 도메인으로 구성되어 있습니다.
  9. Job은 배치 작업을 설정하고 명세해 놓은 객체로 “일 매출 통계”와 같은 하나의 배치작업 자체를 의미합니다. 반드시 한 개 이상의 Step이 포함되어 있어야합니다.
  10. Job의 실행과정을 살펴보겠습니다. Job과 Job이 필요로 하는 JobParameters를 매개변수로 제공해주게 되면 JobLauncher에 의해 실행되게 됩니다. 이후에 Job이 가지고 있는 각 Step들을 실행시키는 흐름입니다.