일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- MYSQL
- Spring Batch
- 애드센스 수익
- IntelliJ
- spring boot 시작
- Vue 배우기
- Vue
- docker mysql
- scrapy
- 미국주식
- apache log4j
- 구글 애드센스 수익
- intelliJ plugin
- Python 기본편
- python 기초
- 젠킨스
- JDK1.3
- 도커
- spring Annotation
- Spring
- 미국 배당주
- Vue 강의
- Spring Batch 강의
- Vue 알아보기
- gradle
- python
- docker
- 티스토리 광고 수익
- docker 명령어
- AES256
목록IT/Spring Batch (10)
나만의공간

FlowJob 기본개념 Step을 특정한 상태에 따라 흐름을 전환하도록 구성할 수 있으며, FlowJobBuilder에 의해 생성됩니다. Step이 실패하더라도 Job은 실패로 끝나지 않도록 해야 하는 경우 Step이 성공했을때 다음에 실행해야 할 Step을 구분해야 할 경우 특정 Step은 전혀 실행되지 않게 구성해야 하는 경우 Flow와 Job의 흐름을 구성하는데만 관여하고 실제 로직은 Step에서 이뤄집니다. 내부적으로 SimpleFlow 객체를 포함하고 있으면 Job 실행시 호출 됩니다. 배치상태유형 FlowJob은 조건에 따라 분기되어 실행되는데 그에 대한 조건상태를 이용합니다. BatchStatus Batch Status는 JobExecution과 StepExecution의 속성으로 Job과 ..

StepBuilderFactory와 StepBuilder StepBuilderFactory StepBuilder를 생성하는 팩토리 클래스로서 get 메소드를 제공함. StepBuilderFactory.get("stepName") stepName으로 step을 생성하도록 StepBuilder에게 전달 StepBuilder Step을 구성하는 설정 조건에 따라 다섯 개의 하위 빌더 클래스를 생성하고, Step생성을 위임함. TaskletStepBuilder -. Tasklet을 생성하는 기본 빌더 클래스 SimpleStepBuilder -. Tasklet을 생성하며, 내부적으로 청크기반 작업을 처리하는 ChunkOrientedTasklet 클래스를 생성합니다. PartitionStepBuilder -. Pa..

JobLauncherApplicationRunner Spring Batch 작업을 시작하는 ApplicationRunner로서 BatchAutoConfiguration에서 생성 스프링 부트에서 제공하는 ApplicationRunner의 구현체로 어플리케이션이 정상적으로 구동되자 마자 실행됨 기본적으로 Bean으로 등록된 모든 Job을 실행 시킵니다. BatchProperties application.yml 에서 Spring Batch 의 환경 설정을 할 수 있음 spring: batch: job: enabled: true names: ${job.name:NONE} jdbc: initialize-schema: always table-prefix: SYSTEM_ enabled 기본값은 true false는 ..
Spring Batch에서 사용하고 있는 도메인들에 대한 개념 이해 Job 기본개념 배치 계층 구조에서 가장 상위에 있는 개념으로 하나의 배치 작업을 의미 합니다. Job Configuration을 통해 생성되는 객체로 배치 작업 구성을 어떡해 실행할 것인지 전체적으로 설정하고 설명해 놓은 객체 입니다. 배치 Job을 구성하기 위한 최상위 인터페이스이며, 스프링 배치가 기본 구현체(SimpleJob, FlowJob)을 제공합니다. SimpleJob 순차적으로 Step을 실행시키는 Job 가장 보편적이고 모든 Job에서 사용할 수 있는 표준 기능 제공 FlowJob 특정 조건과 흐름에 따라 Step을 구성하여 실행시키는 Job Flow 객체를 실행시켜서 작업을 진행 Job은 여러 Step을 포함하고 있는 ..

Spring Batch를 만들기전 Batch란 무엇이며, Spring Batch에서 사용하는 용어에 대한 정리를 하겠습니다. Batch란? 배치는 어떤 업무에 대한 일괄 처리를 뜻합니다. 전날 신규 가입한 고객수를 알고자 하는 업무가 있다고 할때 필요할 때 마다 OLTP(RDS DB)를 매번 조회 한다고 하면 DB는 해당 트래픽을 감당하지 못할 수 도 있고, 의미 없는 네트워 비용, DB비용이 많이 들게 됩니다. 이럴때 전날 신규 가입한 고객에 대해서 따로 집계를 하는 어플리케이션(배치)가 있다고 하면 별도 집계는 필요없이 한번 집계된 데이타를 조회만 하면 되니 시스템 안정성/비용 등이 대폭 감소하게 됩니다. 이런한 업무를 처리하는 어플리케이션을 배치 어플리케이션 이라고 합니다. 배치 어플리케이션이 처리..

Spring Batch에서 사용하는 메타 테이블은 아래와 같은 ERD구조를 가지며 각 테이블이 어떤 역활을 하고 있는지 알아 보겠습니다. ERD 구조 BATCH_JOB_INSTANCE Job 실행시 Job Instance 정보가 저장된다. 동일한 JOB_NAME 과 JOB_KEY는 중복 저장될 수 없다. 동일한 JOB_NAME의 JOB INSTANCE를 만들고자 하면 매번 다른 JobParameter를 사용해야 한다. 컬럼 설명 JOB_INSTANCE_ID 고유하게 식별할 수 있는 기본키 VERSION 업데이트 될 때마다 1씩 증가 JOB_NAME jobBuilderFactory.get에 설정한 Job Name Insert 됨 JOB_KEY 동일한 Job Name의 개별 인스턴스를 서로 고유하게 식별하는..
대부분에 어플리케이션은 DB를 접속하여 동작을 합니다. Batch는 더욱 DB연결을 많이 하게 되어 있고, Spring Batch에서도 DB연결은 필요하게 됩니다. 이번 강의 에서는 Spring Batch에 DB를 연결하고 3편에서 강의한 Log를 이용해 DB관련 로그도 같이 출력 되도록 진행 하겠습니다. SpringBatch 5.X가 나온상태이지만 DB연결시 어려움이 있어 SpringBatch 4.X기반으로 작성 되었습니다. build.gradle DB 로그관련 설정 추가 start.spring.io 사이트에서 Spring Batch에 기본설정으로 생성하게 되면 아래와 비슷한 dependencies가 생성됩니다. 여기서 추가로 필요한 DB로그 정보등을 볼수 있는것들을 추가 합니다. implementat..

시스템을 개발하면서 로깅은 왜 꼭넣어야 하는지? 로깅을 하면 어떤 이점이 있어 로깅을 하게 되는지를 먼저 알고자 합니다. 로깅시 이점 로그 출력 형식을 지정할수 있다. 로그 레벨을 지정하여 보고 싶은 로그만 볼수 있다 콘솔 로그만 아니라, 파일, 별도에 로그처리(ELK)등으로 보낼 수 있다. 성능이 System.out보다 월등히 좋다. 로그레벨 종류 내용 TRACE DEBUG 보다 더 자세한 예외 로그 DEBUG INFO 보다 더 자세한 정보가 필요한 경우, 주로 DEV 환경에서 많이 사용 INFO 명확한 의도가 있는 에러나, 시스템 정보를 남길경우, QA / PRD 환경에서 많이 사용 WARN 에러가 될수도 있는 잠재적 가능성이 있는경우 ERROR 의도 하지 않은 에러가 발생한 경우나, 시스템적인 오류..

강의 첫번째에서 SpringBatch F/W을 기본으로 만드는 방법을 설명 드렸습니다. docker를 이용한 DB도 구성을 맞춰습니다. Spring Batch에서 기본으로 생성하는 테이블이 만들어 지는 과정으로 로그로 볼려고 하는데 로그에는 아무것도 안찍히는데, MySql서버에 접속하여 테이블을 조회 하면 아래와 같은 9개에 테이블이 만들어져 있습니다. 아래 9개 테이블은 Spring Batch Application을 실행하면 자동으로 만들어 집니다. Spring Batch에서 자동생성된 테이블 / 시퀀스에 대한 ERD는 아래와 같습니다. 어떤 과정으로 Spring Batch에서 테이블들을 만드는지 설명 드리고, 다음강의에서 각 테이블별 어떤 정보가 적재되고, 어떤용도로 쓰이는지 자세히 알아 보겠습니다...

대용량에 데이타 처리시나, 규칙적인 데이타를 처리하기 위해 여러 배치 프로그램을 사용합니다. 요즘 대부분 기업에서는 SpringBatch를 이용하여 배치처리를 많이 하고있고, 젠킨스와 결합하면 매우 좋은 배치 시스템이 됩니다. SpringBatch를 처음부터 구성하는 방법을 정리하면서 학습을 해보고자 합니다. SpringBatch F/W 초기 구성 다운로드 SpringBatch 기본구성은 Spring initializr 사이트에서 원하는 개발 스펙을 선택해서 다운로드 받으면 됩니다. 저희는 아래 구성 Spec을 기본으로 하여 구축 하고자 합니다. SpringBatch 기본구성 언어: Java 17 빌드방식: Gradle 8.X SpringBoot: 3.1.1 아래 사이트 방문 후 필요한 기능 선택 후 다..