전체 글
-
05. 스프링 배치 초기화 설정BackEnd/Spring Batch 2021. 12. 16. 22:01
JobLauncherApplicationRunner Spring Batch 작업을 시작하는 ApplicationRunner로서 BatchAutoConfiguration에서 생성됩니다. 스프링 부트에서 제공하는 ApplicationRunner의 구현체로 애플리케이션이 정상적으로 구동되자 마다 실행됩니다. 기본적으로 빈으로 등록된 모든 Job을 실행시킵니다. BatchProperties Spring Batch의 환경 설정 클래스로 Job 이름, 스키마 초기화 설정, 테이블 Prefix 등의 값을 설정할 수 있습니다. application.properties or application.yml 파일에 설정합니다. batch: job: names: ${job.name:NONE} # Job 이름 (미지정 시 NON..
-
04. 도메인 언어(Domain Language)BackEnd/Spring Batch 2021. 12. 15. 21:26
JobLauncher Job과 Job Parameters를 인자로 받아 배치 Job을 실행시키는 역할을 합니다. 배치 작업을 수행한 후에는 최종 클라이언트에게 JobExecution을 반환합니다. 스프링 부트 배치가 구동이 되면 JobLauncher 빈이 자동으로 생성되며 JobLauncher.run(Job, JobParameters)로 Job을 실행합니다. 동기적 실행 기본값으로 taskExecutor를 SyncTaskExecutor로 설정할 경우 동기적으로 실행됩니다. JobExecution을 획득하고 배치 처리를 최종 완료한 이후 클라이언트에게 JobExecution을 반환합니다. 스케줄러에 의한 배치처리(배치처리 시간이 길어도 상관없는 경우)에 적합합니다. 비동기적 실행 taskExecutor를 ..
-
03. 메타데이터 스키마(Meta-Data Schema)BackEnd/Spring Batch 2021. 12. 11. 11:10
스프링 배치의 실행 및 관리를 위한 목적으로 여러 도메인들(Job, Step, JobParameters...)의 정보들을 저장, 업데이트 및 조회할 수 있는 스키마를 제공합니다. 과거, 현재의 실행에 대한 세세한 정보, 실행에 대한 성공과 실패 여부 등을 일목요연하게 관리함으로서 배치 운용에 있어 리스크 발생 시 빠른 대처가 가능합니다. 데이터베이스와 연동할 경우 필수적으로 메타 테이블이 생성 되어야 합니다. 데이터베이스 스키마를 제공하며 spring-bath-core 라이브러리 내 /org/springframework/batch/core 하위에 데이터베이스 유형별로 제공합니다. 아래는 h2 데이터베이스 스키마 파일입니다. 스키마(Schema) 생성 스키마 생성은 수동 생성과 자동 생성 방법이 있습니다...
-
02. Hello Spring Batch ProjectBackEnd/Spring Batch 2021. 12. 11. 09:28
Overview 해당 글에서는 간단한 스프링 배치 프로젝트를 생성하여 구조를 확인해 보겠습니다. 전체 소스코드는 https://github.com/HanseomKim/springbatch/tree/master/src/main/java/com/spring/springbatch 참고하시면 됩니다. 1. 프로젝트 생성 https://start.spring.io/ 에서 프로젝트를 생성합니다. [GENERATE] 의존성으로는 Spring Batch, Lombok, H2 Database을 추가합니다. 다운로드 받은 폴더를 압축 해제하고 작업 폴더로 옮긴 후 IntelliJ에서 File > Open > 다운로드받은폴더\pom.xml을 열면 됩니다. 의존성으로 H2 Databse를 추가하지 않으면 초기화 시 Faile..
-
01. Spring BatchBackEnd/Spring Batch 2021. 12. 7. 21:39
Spring Batch는 로깅/추적, 트랙잭션 관리, 작업 처리 통계, 작업 재시작, 건너뛰기, 리소스 관리 등 대용량 레코드 처리에 필수적인 재사용 가능한 기능을 제공하는 가볍고 포괄적인 배치 프레임워크입니다. 또한 최적화 및 파티셔닝 기술을 통해 대용량 및 고성능 일괄 작업을 가능하게 하는 고급 기술 서비스 및 기능을 제공합니다. Spring Batch 특징 트랜잭션(Transaction) 관리 Chunk 기반 처리 선언적 I/O 시작/종료/재시작 재시작(Retry)/건너뛰기(Skip) 웹 기반 관리 인터페이스(Interface) (Spring Cloud Data Flow) Spring Batch Architecture Application 스프링 배치 프레임워크를 통해 개발자가 만든 모든 배치 Jo..
-
03. Spring Redis ProjectBackEnd/Redis 2021. 12. 3. 00:08
Spring Boot와 Redis Java Client인 Lettuce(Non-blocking, Spring Boot 2 정식 채택)를 이용하여 프로젝트를 진행합니다. 구현할 API Spec.은 아래와 같습니다. Redis Data Structures(Strings, Lists, Sets, SortedSets, Hashes)별로 데이터를 저장하고 조회합니다. Project 생성 https://start.spring.io/ 에서 Maven Project로 프로젝트를 생성합니다. [GENERATE] 버튼을 누르면 압축 폴더가 다운로드 됩니다. 다운로드 받은 폴더를 압축 해제하고 작업 폴더로 옮긴 후 IntelliJ에서 File > Open > 다운로드받은폴더\pom.xml을 열면 됩니다. Dependenci..
-
02. Redis Installation for MacBackEnd/Redis 2021. 11. 30. 23:49
1. brew install redis Homebrew로 redis를 설치하고 버전을 확인합니다. # 설치하기 $ brew install redis # 삭제하기 $ brew uninstall redis # 버전확인 $ redis-server --version Redis server v=6.2.6 sha=00000000:0 malloc=libc bits=64 build=c6f3693d1aced7d9 # 설치 위치 $ /usr/local/Cellar/redis/버전별 디렉토리 2. vi /usr/local/etc/redis.conf redis 설정파일(redis.conf)에서 기본 포트(6379)를 확인합니다. port, password, maxmemory 및 외부 접속(bind) 허용 ip 등을 설정할 수..
-
01. RedisBackEnd/Redis 2021. 11. 30. 20:01
Overview 해당 글에서는 Redis에 대한 개념, 자료 구조, 운영 및 Spring Boot와 Redis Java Client인 Lettuce(Non-blocking, Spring Boot 2 정식 채택)를 이용하여 프로젝트를 진행합니다. Introduction to Redis 인메모리 데이터 저장소(In-Memory data structure store) 데이터베이스, 캐시 및 메시지 브로커로 사용되는 오픈 소스(BSD 라이선스) 기본적으로 key-value 저장 방식이지만, strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, 및 streams 자료 구조를 지원 ..