리스트(235)
-
3. Job
✅ 아래 내용들에 대해서 알아보자 - Job - JobInstance - JobParameters - JobExecution Job 배치 계층 구조에서 가장 상위에 있는 개념으로서 하나의 배치작업 자체를 의미 Job Configuration을 통해 생성되는 객체 단위로서 배치작업을 어떻게 구성하고 실행할 것인지 전체적으로 설정하고 명세해 놓은 객체 배치 Job을 구성하기 위한 최상위 인터페이스이며 스프링 배치가 기본 구현체를 제공한다 여러 Step 을 포함하고 있는 컨테이너로서 반드시 한 개 이상의 Step으로 구성해야 함 Job은 SimpleJob과 FlowJob으로 구성도미 SimpleJob 순차적으로 Step 을 실행시키는 Job 모든 Job에서 유용하게 사용할 수 있는 표준 기능을 갖고 있음 Fl..
2023.02.14 -
배치 실행 시 잡파라미터 null 바인딩 현상
환경 배치를 로컬에 구성 후 테스트를 하였고 스케쥴링을 통해 특정 잡을 JobLauncher로 실행, JobParameter를 생성하여 전달하였음 현상 스프링 부트 Run을 하여 Reader 부분 확인해 보니 잡 파라미터 값이 null로 들어오고 있다. 처음에 @StepScope를 잘못 썼나? 아니면 파라미터명을 잘못 입력했나? 여러가지 문제를 생각해서 이때부터 삽질의 시간이 시작되었다.. Parameters:[{}] 로 값이 바인딩이 안 되는 로그가 보인다. 그런데 스케쥴링으로 실행되는 부분에서는 잡 파라미터가 잘 들어온다(??) 아래 로그값에도 parameters: [{startDate=2023-02-07, endDate=2023-02-08, timestamp=1675838930004}] 값으로 잘 ..
2023.02.08 -
2. 배치 메타 데이터 분석
✅ 아래 내용들에 대해서 알아보자 - 배치 메타 데이터란 - Job 관련 메타 테이블 - Step 관련 메타 테이블 배치 메타 데이터란? 스프링 배치의 실행 및 관리를 위한 목적으로 여러 도메인들(Job, Step, JobParameters, Execution..)의 정보들을 저장, 업데이트, 조회할 수 있는 스키마 제공 과거, 현재의 실행에 대한 세세한 정보, 실행에 대한 성공과 실패 여부 등을 관리함으로써 배치 운영에 있어 이슈 발생 시 빠른 대처 가능 DB와 연동할 경우 필수적으로 메타 테이블이 생성되어야 함 스프링 배치는 DB별 스키마를 제공한다.(Drop, Create DDL 제공) 위치는 인테리제이 기준으로 External Library > org/springframwork.batch.core..
2023.02.06 -
IntelliJ - 스프링 부트 Active Profile 설정 방법
스프링부트로 개발 시 application.yml 혹은. properties 파일에 profiles를 설정을 하여 실행환경을 다르게 두어 동작이 필요로 할 때가 있다. 인텔리제이 무료버전에서 active-profile을 설정하여 실행하는 법을 알아보자 spring: profiles: active: local ..... spring: profiles: active: batch 방법 1. 상단의 실행 버튼의 Edit Configuration을 클릭한다. 2. Modify options > Add VM options을 실행 후 -Dspring.profiles.active="실행시킬 profile명" 입력 후 저장한다. 3. 실행하면 "The following 1 profile is active: ..." 라는..
2023.01.24 -
스프링 이벤트 처리
✅ 아래 내용들에 대해서 알아보자 - 이벤트란 무엇일까? - 스프링 이벤트 처리 방법 - 예제 코드 & 실습 - 이벤트 발송 프로세스 이벤트란? 컴퓨팅에서 이벤트(event)란 프로그램에 의해 감지되고 처리될 수 있는 동작이나 사건을 의미합니다. 예를 들어 사용자가 키보드의 키를 누르는 행위, 사용자가 화면의 버튼을 누르는 것 등의 행위들을 의미한다. 분산 시스템 간에 이벤트를 생성, 발행(publish)하고 발행된 이벤트를 필요로하는 수신자에게 전달하여 수신자가 이벤트를 처리하는 형태의 시스템 아키텍처를 Event-driven-architecture(EDA)라고 한다. 스프링 이벤트 처리 방법 스프링의 Application context는 BeanFactory 기능 말고 여러가지 기능들을 제공하는데 그..
2023.01.20 -
Webflux + Swagger 적용하기
Webflux 환경에서 Swagger를 적용해보자! 1. Webflux에서 Swagger를 사용하기 위해서는 build.gradle에 스웨거 사용을 위해 추가를 한다.(각자 버전에 맞게 설정) implementation "io.springfox:springfox-swagger2:${swaggerVersion}" implementation "io.springfox:springfox-swagger-ui:${swaggerVersion}" implementation "io.springfox:springfox-spring-webflux:${swaggerVersion}" implementation "io.springfox:springfox-bean-validators:${swaggerVersion}" 2. 스웨거를..
2023.01.17