모든 태그
태그

Spring Batch 기술 블로그 글

Spring Batch 태그가 달린 국내 IT 기업 기술 블로그 글을 최신순으로 모았습니다.

전체 37최신 20개 표시
홈에서 필터

최신 게시글

20개 표시

백엔드

옴니채널 재고 정합성 한계에 대응하는 인벤토리 데이터 파이프라인 구축기

옴니채널 재고 정합성과 확장성 문제를 해결하기 위해 인벤토리 데이터 파이프라인을 이벤트 기반으로 재설계했습니다. Spring Batch, Kafka Fan-Out, Push/Pull 분리로 리드타임과 부하를 줄였습니다.

#Kafka#Spring Batch#AWS
800

백엔드

“장보기 지원금이 곧 소멸돼요” 알림 뒤에서 일어난 일

장보기 지원금 소멸 알림 배치에서 메시지 발송 대기 중 DB 커넥션을 오래 점유해 타임아웃이 발생했습니다. 이를 위해 리소스 사용 구간과 발송 대기 구간을 분리해 배치 안정성을 높였습니다.

#Spring Batch#DB#Transaction
10500

백엔드

Composite PK에서 시작된 Spring Boot 4 / Spring Batch 6 업그레이드 기록

Spring Data JDBC의 Composite ID 적용을 계기로 Spring Boot 4와 Spring Batch 6 업그레이드를 진행했습니다. 복합키 매핑, 배치 메타데이터 변경, Kotlin·Jackson·Gradle 호환성까지 함께 정리했습니다.

#Spring Boot#Spring Batch#Spring Data JDBC
14300

백엔드

수억 건의 데이터, 맛있게 쪼개 먹는 방법 (with. Partitioning)

Spring Batch Partitioning, Cursor Reader, Bulk Operations로 수억 건 데이터 처리의 OOM 문제를 해결했습니다. 병렬 분할과 스트리밍 읽기, 일괄 쓰기 최적화로 성능과 안정성을 함께 높였습니다.

#Spring Batch#partitioning#MongoCursorItemReader
21200

백엔드

오프라인 매장에 코드를 배포하다 Part 2: 올리브영 전자라벨(ESL) 최적화 여정

전국 1,300개 매장 전자라벨 배치를 위해 Partitioning으로 락 경합을 제거하고 처리 시간을 크게 줄였습니다. 또한 Aurora Serverless v2로 트래픽에 맞게 자동 확장해 성능과 비용을 함께 개선했습니다.

#Spring Batch#partitioning#AWS
11100

백엔드

“스케줄이 또 안 돌았어요” — 우리가 Temporal을 선택한 이유

Jenkins 기반 스케줄 운영의 한계를 해결하기 위해 Temporal을 도입했습니다. 자동 재시도와 실행 이력 가시성으로 출고지시와 주문수집을 더 안정적으로 자동화했습니다.

#Temporal#Jenkins#Spring Batch
15800

백엔드

“이번 달도 밤샘 정산입니다.” — 정산 시스템은 어떻게 만들었을까 (실전편)

정산 도메인의 특성에 맞춰 이벤트 처리와 배치 처리를 분리한 하이브리드 구조를 설명했습니다. Kafka, Spring Batch, Argo Workflow로 실패와 재처리를 전제로 한 정산 시스템을 구현했습니다.

#Kotlin#Spring Boot#Spring Batch
20000

아키텍처

“이번 달도 밤샘 정산입니다.” — 정산 시스템은 왜 필요했을까 (설계편)

정산을 사람의 기억이 아닌 시스템의 책임으로 옮기기 위한 MASS 설계 원칙을 다뤘습니다. 멱등성, 결정적 계산, 고정 반올림으로 재처리와 재계산에도 동일한 결과를 보장했습니다.

#Kafka#Spring Batch#Argo
12900

백엔드

레거시 정산 개편기: 신규 시스템 투입 여정부터 대규모 배치 운영 노하우까지

20년 레거시 정산 시스템을 분할정복과 데이터 모델 개선으로 개편했습니다. 대규모 배치는 테스트 자동화, 카나리 투입, Jenkins 기반 운영으로 안정성과 성능을 함께 높였습니다.

#Spring Batch#Jenkins#Kubernetes
14700

백엔드

500만 데이터 엑셀 출력을 4GB 메모리에서 하는방법

정산시스템의 대용량 엑셀 출력에서 OOM과 재시도 폭주를 해결한 사례를 다뤘습니다. 날짜 단위 병렬 처리와 DB Cursor, S3 업로드로 메모리 부담 없이 비동기 다운로드 구조를 만들었습니다.

#Spring Batch#JPA#MySQL
17100

데브옵스

Airflow 와 Databricks 로 완성한 디자인허브 정산 시스템 리팩토링 여정

Airflow와 Databricks로 디자인허브 정산 파이프라인을 리팩토링한 과정을 정리했습니다. 운영 DB 부하를 줄이고 멱등성, 가시성, 협업 체계를 함께 개선했습니다.

#Airflow#Databricks#Spring Batch
2300

백엔드

Kotlin Coroutine으로 구현한 비동기 제휴 연동 시스템 구축기

Spring Batch 기반 동기 연동의 병목을 Kotlin Coroutine으로 개선한 사례를 소개했습니다. Kafka와 비동기 호출을 결합해 처리 시간과 리소스 효율을 함께 높였습니다.

#Kotlin#Coroutine#Spring Batch
12200

백엔드

구관이 꼭 명관은 아니다: 정산 시스템의 세대교체

레거시 정산 시스템의 성능 한계와 복잡도를 해결하기 위해 Spring Boot와 Spring Batch로 전면 재설계했습니다. 정산 기준별 Step 분리와 일간 집계 추가로 확장성과 운영 안정성을 높였습니다.

#Django#Python#PostgreSQL
24400

데브옵스

프로모션 배치 k8s 이관기

프로모션 배치를 Kubernetes로 이관한 과정과 운영 경험을 정리했습니다. Quartz 클러스터링, 관리 도구 보완, 종료·리소스 대응까지 다뤘습니다.

#Kubernetes#Spring Boot#Spring Batch
6800

백엔드

제휴 서비스 수집 시스템, 첫 설계부터 지금까지의 여정

제휴 서비스 수집 시스템의 레거시 한계를 개선해 이벤트 기반, CQRS, Zero Payload 구조로 재설계했습니다.실시간 연동과 부하 분산을 통해 속도, 정합성, 운영 효율을 높인 과정을 공유했습니다.

#Kafka#CQRS#Spring Batch
26000

백엔드

MySqlPagingQueryProvider 살펴보기

JdbcPagingItemReader와 MySqlPagingQueryProvider의 페이지네이션 동작과 주의사항을 정리했습니다.\nsort key와 group clause 설정에 따라 데이터 누락과 SQL 오류가 발생할 수 있어 조심해야 했습니다.

#spring-batch#JdbcPagingItemReader#MySQL
2800

백엔드

[SpringBatch 연재 11] Job 및 Step 마다 시작/종료시 특정 작업 수행하기

Spring Batch에서 Job과 Step의 시작/종료 시점에 실행할 작업을 Listener로 연결하는 방법을 설명했습니다. JobExecutionListener와 StepExecutionListener 등록 예시와 실행 로그 흐름을 함께 보여주었습니다.

#Spring Boot#Spring Batch#listener
1600

백엔드

포스타입 정산 시스템 이관기 2

정산 시스템을 PHP에서 Java 기반 Job Runner로 이관한 과정과 테크 스펙, 테스트, 마이그레이션 전략을 설명했습니다. 또한 URI 인코딩, Reader 페이징, timeout 등 트러블 슈팅 사례와 개선 효과를 정리했습니다.

#Spring Batch#WebClient#JPA
1700

백엔드

[SpringBatch 연재 10] 스프링배치 플로우 컨트롤 하기

Spring Batch의 Flow Controller로 Step 실행 순서와 분기 방법을 설명했습니다. next, on, from, stop을 이용해 조건별 배치 흐름을 구성하는 방법을 정리했습니다.

#Spring Batch#Java#batch
1700

백엔드

[SpringBatch 연재 09] 입맛에 맞는 배치 처리를 위한 Custom ItemReader/ItemWriter 구현방법 알아보기

Spring Batch의 기본 Reader/Writer로 부족한 경우를 대비해 커스텀 구현 방법을 다뤘습니다. Querydsl 기반 페이징 Reader와 외부 서비스 호출 Writer를 통해 배치 유연성을 높였습니다.

#Spring Batch#Querydsl#ItemReader
3400