Spring Batch 도입기!! - Tasklet vs Chunk, 뭐가 다른데? (#2)
·
💪Backend/Spring
2025.07.03 - [💪Backend/Spring] - Spring Batch 도입기!! - @Scheduled로는 부족했다(#1) 👀 들어가며Spring Batch를 도입한 후, 처음 마주한 실질적인 고민은 바로 이것이었습니다:Tasklet을 써야 할까, Chunk를 써야 할까? 문서에도, 블로그에도 많은 설명이 있지만, 직접 적용하려 하니 헷갈리는 부분이 많았습니다. 종목별로 API를 호출해 3년치 데이터를 수집하고 저장하는 작업매일 주식 마감 후 하루치 데이터를 갱신하는 작업저는 위와 같은 작업들을 리팩토링 중이었습니다. 이 작업들에 어떤 방식을 선택하는 게 맞을까요?이번 글에서는 Tasklet과 Chunk의 구조적 차이와 적용 기준을 정리해보려 합니다..!! 🧱 기본 개념 ✅ Tas..
Spring Batch 도입기!! - @Scheduled로는 부족했다(#1)
·
💪Backend/Spring
저는 스프링 기반 백엔드 프로젝트에서 주기적인 작업을 @Scheduled 어노테이션으로 처리해왔습니다.매일 주식 데이터를 수집하고, 경제지표 발표일에는 민감도 분석을 재실행하는 등, 배치성 작업이 하나둘 늘어나게 되었습니다.그 당시에는 @Scheduled만으로도 충분하다고 생각했으나, 시간이 지나면서 작업이 점점 많아지고, 실패 복구나 실행 이력 관리가 필요해지면서 한계에 부딪히게 되었습니다. 위의 문제를 해결하고자, Spring Batch를 찾아보고 도입을 결정하게 되었습니다! 제가 리팩토링하고 있는 기존 프로젝트의 배치 작업들은 아래와 같습니다. 1. 초기 세팅종목별 3년치 주식 데이터 저장 (차트/민감도 분석용)주요 경제지표 3년치 이력 저장 (지표 일정 캘린더 및 분석용)2. 매일 반복매일 주식..
MSA에서 Response Entity와 Response custom class로 응답 통일하기
·
💪Backend/Spring
프로젝트를 진행하면서 다양한 팀원과 클라이언트가 서로 다른 모듈이나 서비스를 사용하게 될 때, 응답 형식이 통일되지 않으면 혼란이 발생할 수 있습니다. 특히, 마이크로서비스 아키텍처(MSA)에서는 여러 서비스가 독립적으로 개발되기 때문에, 각 서비스마다 서로 다른 응답 구조를 사용하면 전체 시스템의 일관성을 해칠 수 있습니다. 어떤 프로젝트에서든 통일된 응답 포맷은 클라이언트와 협업하는 팀원 모두에게 명확한 인터페이스를 제공하여 디버깅과 유지보수를 용이하게 만들 수 있습니다. 오늘 포스팅에서 소개할 방법 중 하나는 Spring Boot에서 제공하는 ResponseEntity와 함께, 제네릭 커스텀 Response 클래스를 활용하는 것입니다! Resposne 객체 생성아래와 같이 간단하면서도 확장성이 뛰..
[프로그래머스/PRGMS] 301650 특정 세대의 대장균 찾기 (자기 참조, 서브 쿼리)
·
💻 알고리즘/SQL
문제https://school.programmers.co.kr/learn/courses/30/lessons/301650 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 3세대의 대장균의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 이때 결과는 대장균의 ID 에 대해 오름차순 정렬해주세요. 문제 풀이에 앞서..자기 참조 관계: 다른 테이블이 아닌 자기 자신과의 관계를 맺는 타입으로 순환 관계라고도 한다. 위 문제의 테이블 구조를 살펴보자.위 테이블의 parent_id와 id를 조건으로 하여 자기참조를 하는 구문은 아래와 같이 작성할 수 있다.select child.id as child_id , pa..
[프로그래머스/PRGMS] 299307/301649 대장균의 크기에 따라 분류하기 1, 2 (CASE WHEN , WINDOW 함수)
·
💻 알고리즘/SQL
프로그래머스 SQL 고득점 Kit 의 SELECT 문제 중에서 대장균의 크기에 따라 분류하기 1,2를 풀어보았다.같은 level3 로 묶여있으나 체감상 레벨 차이가 있다고 느껴졌다..case when 과 window함수를 사용하여 풀이했다.문제 1https://school.programmers.co.kr/learn/courses/30/lessons/299307 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 대장균 개체의 크기가 100 이하라면 'LOW', 100 초과 1000 이하라면 'MEDIUM', 1000 초과라면 'HIGH'라고 분류합니다. 대장균 개체의 ID(ID)와 분류(SIZE)를 출력하는..