본문 바로가기

Spring

(8)
Spring Boot Batch 적용하기 - 2 1. Step Skip Step 처리 도중에서 설정한 Exception이 발생하게 되면 해당 데이터를 건너뛰는 기능입니다.데이터의 작은 오류에 대해서 Step 의 실패 처리 대신 Skip 을 함으로써 배치 수행의 빈번한 실패를 줄일 수 있습니다.Skip 제한을 초과하는 경우가 되면 Exception이 발생됩니다. ItemReaderitem 을 읽던 도중 예외가 발생하게 되면 해당 item 을 skip 하고 다음 item 을 읽습는다. ItemProcessoritem 을 처리하던 도중 예외가 발생하면 해당 Chunk 의 첫 단계로 돌아가서 itemReader로부터 다시 데이터를 전달받습니다.itemProcessor 는 다시 item 을 받아 실행하는데 이전 실행에서 발생한 예외 정보가 내부적으로 남아있어 ..
Spring Boot Batch 적용하기 - 1 1. 스프링 배치 (Spring Batch) 스프링 배치(Spring Batch)는 대용량 데이터를 처리하기 위한 프레임워크로 스프링 기반에서 동작합니다.대량의 데이터를 효율적으로 처리하기위 해다양한 기능을 제공해줍니다.  로깅 및 추적작업 처리 통계작업 재시작건너뛰기/리소스 관리트랜잭션 관리위 와같이 대용량 데이터 처리를 안정적으로 처리를 제공해줍니다.스프링 배치(Spring Batch) 위와 같은 아키텍쳐 구성을 가지고 있습니다. ※ Batch 와 Scheduler 차이배치(Batch)는 논리적 또는 물리적으로 구성된 데이터를 그룹화하여 일괄 처리하는 방법을 의미합니다. 스케줄러(Scheduler)는 주어진 작업을 정의된 시간에 수행할 수 있게 도와주는 도구를 의미합니다. 배치는 대량의 데이터를 일괄..
Spring Boot + Quartz 적용하기 - 3 앞서 Spring Boot + Quartz 스케줄링을 구현해보았습니다.해당 포스팅은 클러스팅 환경에서 동작할 수 있게 구현해보았습니다.  1. Quartz 데이터베이스 생성Quartz 클러스터 환경을 구축하기 위해서는 메타 정보를 관리하는 데이터베이스를 생성해 주어야한다. 인텔리제이를 사용하는 사용자는 아래처럼 sql을 찾아서 테이블을 생성해주면 됩니다. 아래처럼 스키마를 구성해주면 됩니다. 이후 application.yml에 아래와 같이 설정해주었습니다. 2. quartz properties 설정이제는 quartz properties 설정을 해주면 됩니다. datasource를 설정해주고 클러스팅 처리 설정을 ture로 진행해주세요.우리는 클러스터링 환경을 구성하기 위하여 JDBC JobStore를 선..
Spring Boot + Quartz 적용하기 - 2 앞서 Quartz에 대해서 개념을 알아보았다해당 포스팅은 Spring Boot  + Quartz를 활용하여 스케줄링을 구현해보겠습니다.    1. SchdulerJob과 Trigger를 연결하여 Job을 실행시키는 역할을 수행하는 인터페이스입니다.Spring + Quartz 사용으로 ApplicationContext에 의해 관리되는 SchedulerFactoryBean을 생성해주었다.SchedulerFactoryBean에 JobFactory를 등록하여 Job도 컨텍스트로 관리될수 있게 설정된다. package com.kr.quartz.config;import com.kr.quartz.listener.MyJobListener;import com.kr.quartz.listener.TriggerListener..
Spring Boot + Quartz 적용하기 - 1 Spring Boot + Quartz를 이용하여 스케줄링 적용 과정을 포스팅하였습니다. 1. 스케줄링(Scheduling) 이란? 스케줄러란 일정한 주기 마다 반복적으로 작업을 실행하는 도구를 일컫는 말이다. 개발을 진행하는 과정에서 주기적으로 실행해야하는 작업이 필요한 경우가 생긴다. 이러한 경우 스케줄링 설정을 이용하여 작업을 처리할 수 있다. 자바에서는 다양한 스케줄러를 지원하게되는데 Quartz, Spring Scheduler, ScheduledExecutorService 등이 존재합니다.  ※ 배치 스케줄링(Batch Scheduling) 이란?배치 스케줄링이란 대량의 데이러터 처리를 자동화 작업으로 구현것을 의미합니다. 이번장에서는 배치 스케줄링을 적용하지 않으며 추후에 스프링 배치 포스팅을 ..
Jasypt 암호화를 이용하여 정보 보호하기 jasypt jasypt는 형상관리, 애플리케이션 배포시에 DB계정 및 중요한 비밀 키 값들을 평문으로 저장하는것을 막기 위해 프로퍼티를 암호화 할 수 있게 제공해주는 라이브러리 입니다. 사용법 및 설명의존성(dependency) 추가 com.github.ulisesbocchio jasypt-spring-boot-starter 3.0.4 implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.4' @EnableEncryptableProperties 어노테이션을 통하여 SpringBoot 암호화할 빈을 생성해줄 class를 생성한다.Bean 이름을 지정해주 않게 되면 Default 빈 명칭은 jasyptStringEn..
Spring Boot Logback 설정 보통의 프로젝트에 log에 대한 properties는 이미 설정 되어 있는 경우가 많다. 필자의 경우도 기본적으로 세팅되어 있는 경우를 많이 사용하며 이후 해당 설정을 다시 활용하는 경우가 많다. 이번 기회에 Log에 대한 정리와 함께 프로젝트에 적용하였다 이전 포스팅에서 로그에 대한 정리를 진행했다. https://daliy-dev.tistory.com/31 Log4j, Logback, Log4j2 로그(Log)란? 소프트웨어 실행중 발생되는 행위와 상태 및 동작정보를 시간 경과에 따라 기록하는 데이터를 일컫는 말이다. 이러한 로그를 생성하는 과정을 "로깅(Logging)"이라 한다. Java에서는 다 daliy-dev.tistory.com 프로젝트 구성 - spring boot 현재 구성하고있는 채팅..
Spring Boot 정적 컨텐츠 처리 스프링 부트를 사용할 때 주로 Thymeleaf를 많이 사용한다 요즘 개발하고있는 프로젝트는 간단하게 Thymeleaf를 적용했다  Thymeleaf (타임리프)Thymeleaf는 웹 애플리케이션의 뷰(화면)를 생성하기 위한 자바 템플릿 엔진이다.Thymeleaf는 HTML, XML, JavaScript, CSS 등의 마크업 언어를 지원하며, 다른 템플릿 엔진들과 달리 뷰 템플릿 파일 자체도 유효한 마크업 문서이다. 이는 템플릿 파일이 개발자와 디자이너 모두에게 친숙한 문법으로 작성될 수 있도록 하는 장점이 있다. 또한 Thymeleaf는 서버 측에서 렌더링되므로 클라이언트 측에서 추가적인 로딩 없이 바로 렌더링 결과를 확인할 수 있다. 이를 통해 사용자 경험을 향상시키는데 도움이 된다.Thymeleaf..