일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- Spring Batch
- docker
- 도커
- 주식용어
- Spring
- apache log4j
- gradle
- scrapy
- spring boot 시작
- docker 명령어
- Vue 배우기
- 미국 배당주
- 미국주식
- python 기초
- Vue
- 젠킨스
- AES256
- Spring Batch 강의
- python
- Vue 알아보기
- 티스토리 광고 수익
- MYSQL
- Python 기본편
- Vue 강의
- JDK1.3
- intelliJ plugin
- 구글 애드센스 수익
- docker mysql
- spring Annotation
- 애드센스 수익
목록분류 전체보기 (198)
나만의공간
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..
스프링배치를 실행할려고 하니 아래와 같은 오류가 나타나 해결 방법을 찾으니 스프링 2.1버전부터는 Overrriding의 default값이 false로 나와서 생기는 오류라고 합니다. Spring Bean은 ApplicationContext내에서 이름으로 식별됩니다. 따라서 Bean Overriding은 다른 Bean과 같은 이름을 가진 ApplicationContext내에서 Bean을 정의할 때 발생하는 기본 동작입니다. 이름이 충돌하는 경우 이전 빈을 간단히 대체하여 작동합니다. Spring5.1부터 개발자가 예기치 않은 Bean 재정의를 방지하기 위해 예외를 자동으로 throw할 수 있도록 BeanDefinitionOverrideException이 도입되었습니다. 기본적으로 Bean 재정의를 허용하..
시스템을 개발하면서 로깅은 왜 꼭넣어야 하는지? 로깅을 하면 어떤 이점이 있어 로깅을 하게 되는지를 먼저 알고자 합니다. 로깅시 이점 로그 출력 형식을 지정할수 있다. 로그 레벨을 지정하여 보고 싶은 로그만 볼수 있다 콘솔 로그만 아니라, 파일, 별도에 로그처리(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 아래 사이트 방문 후 필요한 기능 선택 후 다..
Spring Batch 기본 설치 가이드를 만들기 위해 Batch에서 사용할 DataBase가 하나 필요해 졌다. 여러 DataBase가 있지만 보편적으로 많이 사용하는 MySql을 설치해 보고 싶어 졌다. 로컬 PC에 설치 프로그램 다운로드 받아 클릭만 하면 설치가 가능하지만 요즘은 Docker를 이용해 좀더 편하고 독립적인 시스템을 많이 사용하니 나도 MySql을 Docker로 설치해 Spring Batch 기본 설정을 만들어 보려고 한다. Docker MySql 설치 Docker 자체에 대한 설치는 별도 가이드 없이 Docker는 설치 되어 있다는 가정하에 진행을 하고자 합니다. 설치환경 맥북(M1) MySql 8.0 이상버전 -. MySql 8.0이하 버전 설치시 맥북(M1-arm64)에는 설치가..