2026/02/25 7

[Spring] Batch 5

Job Parameter- 배치 작업을 실행할 때 외부에서 주입하는 파라미터 묶음 LocalDate targetDate = LocalDate.of(2026, 1, 26);deleteLogs(targetDate); Job Parameter 사용 x :- 위의 2026, 1, 26 처럼 값을 매 번 수동으로 변경, 재배포해야 한다.- 동적으로 변하는 값들에 대해 다루기 힘들다. Job Parameter 을 이용해 동적인 값들을 터미널 명령어 입력 시 주입할 수 있다.- 배치 작업 실행 시점에서 동적 데이터 주입 => 매 번 프로젝트 수정이 일어나지 않는다. ./gradlew bootRun --args='--spring.batch.job.name=myJob requestDate=20260225' Job Par..

Java & Spring/Batch 2026.02.25

[Spring] Batch 4

스프링 배치 처리 방식 : Chunk - 크고 무거운 작업의 처리 단위- 대용량 처리가 필요할 때 사용 (매월 1일 포인트 지급, 배송 상태를 일괄적으로 변경 ..)- 대용량 처리 도중 실패 시 '현재 청크 단위' 부터 이어서 실행 가능 청크 지향 처리의 동작 : 데이터 읽기 -> 가공 -> 쓰기 데이터 읽기 : ItemReader 함수형 인터페이스데이터 가공 : ItemProcessor 함수형 인터페이스데이터 쓰기 : ItemWriter 함수형 인터페이스 package spring.batch.lowerToupper;import lombok.RequiredArgsConstructor;import org.springframework.batch.core.job.Job;import org.sprin..

Java & Spring/Batch 2026.02.25

[Spring] Batch 2

스프링 배치 처리 방식 : Tasklet - 작고 독립적인 작업의 처리 단위- 단발성 작업이 필요할 때 사용 (파일 관리, 단순 DB 작업, Email, 문자 알림 발송, 쉘 스크립트 실행 ..) @FunctionalInterface : 함수형 인터페이스, 메서드가 하나이다.리턴 타입이 RepeatStatus인 execute 메서드 하나만 가지고 있다. StepContribution : 현재 단계(Step)가 얼마나 진행되었는지 기록하는 객체- ex : 책을 읽은 횟수, 메모를 쓴 횟수, 커피를 제작한 횟수 .. ChunkContext : 작업 수행에 필요한 정보가 담겨있는 객체 (외부 파라미터, 이전 단계 step에서 넘긴 데이터 ..) Tasklet 방식 1 : 람다식으로 RepeatStatus..

Java & Spring/Batch 2026.02.25

[Spring] Batch 1

스프링 배치- 대용량 데이터를 끊기지 않고 안전하고 효율적으로 처리하기 위한 표준화 프레임워크- 자동화할 '업무'를 대상으로 한다. Job- 배치 처리의 가장 큰 단위 Step - Job을 수행할 세부 단계, 실행 단위- 하나의 Job은 여러 Step으로 구성되어 있다. Job Repository- 배치 처리에 필요한 '메타 데이터'를 DB에 저장하고 관리하는 역할- 메타 데이터 : 스프링 배치 실행에 대한 데이터 (Job의 시작 시간, Step의 실행 시간 ..) Job Operator - 스프링 배치 5에서는 Job Launcher라고 불렀다. - 스프링 배치 운영 조작 인터페이스 - 스프링 배치에 대해 작업을 시작, 관리, 운영 등 조작할 수 있다. @SpringBootApplication..

Java & Spring/Batch 2026.02.25

Redis 3

스프링 서버에서 Redis 적용 현재 진행 중인 중고책 거래 플랫폼 프로젝트에 Redis 적용- Trade 단일 조회에 cache aside 적용 (TTL 10분)- TradeList 전체 조회에 cache aside 적용 (TTL 5분) *아래 메서드들은 Service 계층이고 기본적으로 @Transactional(readOnly = true) 적용 중1. Trade 단일 조회 캐시 등록// 판매글 단일 조회@Cacheable(value = "trade", key = "#trade_seq", unless = "#result == null")public TradeVO search(long trade_seq) { // 쿼리를 2번 조회하기 때문에 cache TradeVO findTrade = ..

Infra/Redis 2026.02.25

비전공자도 이해할 수 있는 Redis 입문/실전 후기

https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-redis-%EC%9E%85%EB%AC%B8-%EC%84%B1%EB%8A%A5-%EC%B5%9C%EC%A0%81%ED%99%94/dashboard?cid=334605 비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)| JSCODE 박재성 - 인프런 강의현재 평점 4.8점 수강생 1,461명인 강의를 만나보세요. 비전공자 입장에서도 쉽게 이해할 수 있고, 실전에서 바로 적용 가능한 'Redis 입문/실전 (조회 성능 최적화편)' 강의를 만들어봤습니다! 스스www.inflearn.com목차 1. Redis 기본 개념 2. 사용법 익히기 3. 캐싱 전략 4. 로컬에서..

Infra 2026.02.25