- [ Spring/Batch ][Spring Batch] 7. SimpleJob 개념 및 API2024-11-02 20:50:08SimpleJob 기본 개념 및 흐름기본 개념SimpleJob은 Step을 실행시키는 Job의 구현체로서 SimpleJobBuilder에 의해 생성된다.스프링 배치에서 제공하는 표준 구현체이며, API를 설정할 때 STEP 타입의 객체만 들어올 수 있다.여러 단계의 Step으로 구성할 수 있으며 Step을 순차적으로 실행시킨다.모든 Step의 실행이 성공적으로 완료되어야 Job이 성공적으로 완료된다.맨 마지막에 실행한 Step의 BatchStatus가 Job의 최종 BatchStatus가 된다. 흐름CASE 1.SimpleJob은 모든 Step이 COMPLETED 상태로 완료되어야 SimpleJob도 성공적으로 수행될 수 있다. CASE 2.SimpleJob은 중간 Step이 FAILED 시 그 이후..
- [ Spring/Batch ][Spring Batch] 6. JobBuilderFactory, JobBuilder2024-10-30 23:18:12기본 개념스프링 배치는 Job과 Step을 쉽게 생성 및 설정할 수 있도록 util 성경의 빌더 클래스들을 제공한다. JobBuilderFactoryJobBuilder를 생성하는 팩토리 클래스로서 `get(String name)` 메서드를 제공한다.`jobBuilderFactory.get("jobName")`에서 jobName은 스프링 배치가 Job을 실행시킬 때 참조하는 Job의 이름이다. JobBuilderJob을 구성하는 설정 조건에 따라 두 개의 하위 빌더 클래스를 생성하고, 실제 Job 생성을 위임한다.SimpleJobBuilderSimpleJob을 생성하는 Builder 클래스Job 실행과 관련된 여러 설정 API를 제공한다.FlowJobBuilderFlowJob을 생성하는 Builder 클..
- [ DBMS/Oracle ][Oracle] MERGE 문의 이해 및 활용2024-07-25 22:16:08MERGE 문은 조건에 따라서 데이터의 삽입, 갱신, 삭제 작업을 한번에 할 수 있다.해당 행이 존재하는 경우 UPDATE 또는 DELETE를 수행하고, 새로운 행일 경우 INSERT를 수행한다.대상 테이블에 대한 UPDATE/INSERT 조건은 ON 절에 의해 결정된다.MERGE 문에서 CLOB 사용시 업데이트 할 내용이 2000bytes가 넘을 때 ORA-00600 오류가 발생하며, MERGE SyntaxINTO: DATA가 UPDATE 되거나 INSERT 될 테이블 또는 뷰를 지정USING: 비교할 SOURCE 테이블 또는 뷰나 서브쿼리를 지정, INTO 절의 테이블과 동일하거나 다를 수 있다.ON: UPDATE나 INSERT를 하게 될 조건으로, 해당 조건을 만족하는 DATA가 있으면 WHEN ..
- [ Spring/Batch ][Spring Batch] 5. 배치 초기화 설정2024-06-20 22:19:52스프링 배치 초기화 설정스프링 배치를 시작할 때 스프링이 자동으로 초기화 하는 영역이 있다.어떤 작업을 하는지 간단히 알아보고, 디버깅을 통해 직접 어떻게 동작하는지 알아보자우선 아래의 개념들을 알고 있어야 한다. 1. JobLauncherApplicationRunnerSpring Batch 작업을 시작하는 ApplicationRunner로서 BatchAutoConfiguration에서 생성됨스프링 부트에서 제공하는 ApplicationRunner의 구현체로 어플리케이션이 정상적으로 구동되자 마자 실행됨ApplicationRunner는 스프링 부트가 환경 구성을 모두 마친 뒤에 곧바로 실행하는 클래스이다.기본적으로 빈으로 등록된 모든 job을 실행시킨다. 2. Batch PropertiesSpring B..
- [ Spring/Batch ][Spring Batch] 4. Step 관련 도메인(Step, StepExecution, StepContribution)2024-06-15 12:17:00Step기본 개념Job을 구성하는 독립적인 하나의 단계로서 실제 배치 처리를 정의하고 컨트롤하는 데 필요한 모든 정보를 가지고 있는 도메인 객체단순한 단일 태스크 뿐 아니라 입력과 처리 그리고 출력과 관련된 복잡한 비즈니스 로직을 포함하는 모든 설정을 할 수 있다.배치작업을 어떻게 구성하고 실행할 것인지 Job의 세부 작업을 Task 기반으로 설정하고 명세해 놓은 객체모든 Job은 하나 이상의 Step으로 구성됨 기본 구현체Step은 인터페이스이며, 이를 구현한 기본 구현체들은 아래와 같다.`TaskletStep`: 가장 기본이 되는 클래스로서 Tasklet 타입의 구현체들을 제어한다.`PartitionStep`: 멀티스레드 방식으로 Step을 여러 개로 분리해서 실행한다.`JobStep`: Step 내..
- [ Spring/Batch ][Spring Batch] 3. Job 관련 도메인(Job, JobInstance, JobParameter, JobExecution)2024-06-11 01:13:50들어가기 전에!해당 게시글은 인프런 정수원님의 Spring Batch 강의를 듣고 추후 복기하고자 공부한 내용을 가볍게 정리한 것입니다.문제가 될 시 삭제하겠습니다. 또한 현재 스프링 배치의 최신버전과 상이한 내용이 있습니다.해당 내용 참고해서 읽어주시면 감사하겠습니다! Job이란?기본 개념배치 계층 구조에서 가장 상위에 있는 개념으로서 하나의 배치 작업 자체를 의미한다.예를 들어, "API 서버의 접속 로그 데이터를 통계 서버로 옮기는 배치"가 Job이다.Job 구성(Configuration)을 통해 생성되는 객체 단위로서 배치 작업을 어떻게 구성하고 실행할 것인지 전체적으로 설정하고 명세해 놓은 객체배치 Job을 구성하기 위한 최상위 인터페이스이며 스프링 배치가 기본 구현체를 제공여러 Step을 포함..