본문 바로가기

강의

(130)
스프링 배치 도메인 이해 - JobExecution 1. JobExecution JobExecution은 "Failed" 또는 "Completed" 등의 Job의 실행 결과 상태를 가지고 있음 JobExecution의 실행 상태 결과가 JobInstance 실행이 완료된 것으로 간주해서 'COMPLETED'면 재 실행 불가 JobExectuion의 실행 상태 결과가 JobInstance 실행이 완료되지 않은 것으로 간주해서 'Failed'면 재실행이 가능함. JobExecution의 실행 상ㅇ태 결과가 Completed 될 때 까지 하나의 JobInstance 내에서 여러 번의 시도가 생길 수 있음.
스프링 배치 도메인 이해 - Job + JobInstance + JobParameter 1. Job 2. Job의 구조 Jobparametes는 이후에 학습할 도메인 JobLauncher도 이후에 학습 예정 BatchJob을 구성하고 실행시키는 주체는 JobLauncher 클래스이다. job을 실행시킬 때 필요한 인자는 Job객체와 JobParameters라는 도메인 객체를 가지고 JobLauncher가 실행시킨다. Job은 내부적으로 Job을 구성할 때 여러 Step을 포함해서 구성한다. Job은 하나의 도메인 객체고 interface로 제공되지만 SimpleJob은 Step을 포함하고 있는 일종의 컨테이너 역할을 한다. Steps라는 리스트를 품고 있고 job이 구도오디면 Step1, 2, 3 을 실행시키는 구조이다. Job은 최상위 interface이고 execute 메서드가 있다. ..
스프링 배치 - DB 스키마 생성 (2) JOB 관련 테이블 batch_job_instance - job이 실행될 때 jobinstance 정보가 저장되며 job_name과 job_key를 키로 하여 하나의 데이터가 저장 - 동일한 job_name과 job_key로 중복 저장될 수 없다. BATCH_JOB_EXECUTION - job의 실행정보가 저장되며 Job 생성, 시작, 종료 시간, 실행 상태, 메세지 등을 관리 BATCH_JOB_EXECUTION_PARAMS - Job과 함께 실행되는 Job parameter 정보를 저장 BATCH_JOB_EXECUTION_CONTEXT - job의 실행동안 여러가지 상태정보, 공유 데이터를 직렬화 9Json 형식) 해서 저장 - step간 서로 공유 가능함 Step 관련 테이블 BATCH_STEP_EX..
스프링 배치 시작 - DB 스키마 생성 및 이해 (1) 1. 기본 이해 1-1. JobExecution 클래스 Job이 실행되는 동안 생성이 된다. job의 실행 정보, 상태 정보를 담고있다. 1-2 StepExecution 클래스 Step도 실행되는 동안 StepExecution이 생성된다. step의 실행 정보, 상태 정보 1-3 실행 정보, 상태 정보 저장 저장되어 있는 table을 스프링 배치에서 기본적으로 제공하고 있다. 스크립트를 가지고 적용할 수 있다. 스크립트를 가지고 테이블을 생성해서 실행정보, 상태정보를 저장하면 된다. 실행정보 상태정보를 메타데이터라고 한다. 2. DB job이 몇시에 실행이 되었으며, 최종 종료된 상태는 어떤 상태인지 실행정보와 상태정보를 database에 저장하는 단계가 있다. 2-1 db 저장의 이점 그래야 우리가 j..
스프링 배치 시작 - 연습용 배치 생성 1. 기본 설정 스프링 배치를 실행하기 위해, 기본적인 설정을 추가해주자. pom.xml org.springframework.boot spring-boot-starter-batch com.h2database h2 runtime org.projectlombok lombok 1.18.24 provided 2. 스프링 배치 실행 스프링 배치의 구조는 아래와 같다. Job은 여러개의 Step을 가질 수 있으며, Step은 여러개의 Tasklet을 가질 수 있다. Tasklet은 Business logic이라고 볼 수 있다. 코드를 작성해보자. package io.springbatch.springbatch; import lombok.RequiredArgsConstructor; import org.springfra..
spring batch - 프로젝트 구성 및 의존성 설정 1. 스프링 배치 활성화 스프링 배치를 실행시키기 위해서는 선언해야 하는 어노테이션이 있다. @EnablebatchProcessing 2. @EnableBatchProcessing 어노테이션이란? 1. 총 4개의 설정 클래스를 실행시킨다. 2. 스프링 배치의 모든 초기화 및 실행 구성이 이루어진다. 3. 스프링 부트 배치의 자동 설정 클래스가 실행됨 - 빈으로 등록된 모든 Job을 검색해서 초기화 - 초기화 됨과 동시에 모든 Job을 수행하도록 구성됨. (수동으로 실행이 되게 할 수도 있다.) 3. 4개의 설정 클래스? 1. BatchAutoConfiguration 2. SimpleBatchConfiguration 3. BatchConfigurerConfiguration - BasicBatchConfig..
Lambda 코드 수정하기 (github actions) 웹 콘솔에서 수정하기 Lambda 코드를 수정하고 Deploy를 눌러서 바꿔주는 방법을 배웠었습니다. .github/workflows/main.yaml name: deploy to lambda on: [push] jobs: deploy_source: name: deploy lambda from source runs-on: ubuntu-latest steps: - name: checkout source code uses: actions/checkout@v1 - name: default deploy uses: appleboy/lambda-action@master with: aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws_secret_access_key: $..
API gateway http endpoint를 만들어 주는 것입니다. Lambda는 endpoint가 없었기 때문에 API gateway를 이용하여 endpoint를 지원해주었습니다. API gateway를 조금 더 자세히 알아보기 위해 API gateway를 직접 생성해 Lambda와 연결해보겠습니다. API gateway에 들어가면 이전시간에 Lambda와 연결한 API gateway를 확인할 수 있습니다. 실습을 위해 지우고 다시 시작해보겠습니다. Lambda에서 API gateway를 생성할 때는 두가지 만 존재했는데 API gateway 페이지에서는 4가지의 API gateway가 존재합니다. 그중에서 우리는 REST API를 생성해 보도록 하겠습니다. Public REST API 구축 버튼 클릭! API 이름을 ..