카테고리 기술 기록

Spring Batch JobParameter 설계 전략 — 중복 실행을 막고 재처리를 설계하는 법

운영 배치의 가장 흔한 사고 중 하나는 이거다. “어제 배치가 또 돌았어요.” Job은 잘 실행됐는데,데이터는 두 번 반영되었다.이건 코드 문제가 아니라,대부분 JobParameter 설계 부재 때문이다. Spring Batch에서 JobParameter는“이번 실행이 어떤 데이터 범위를 처리하는가”를 명확히 구분해주는 기준점이다.그리고 그 설계가 재처리 가능한…

Spring Batch 리커버리 구조 설계 — JobExecution과 StepExecution의 관계

Spring Batch는 단순히 배치를 실행하는 프레임워크가 아니다.운영 환경에서는 배치가 실패하더라도,그 실패 상태를 정확히 기록하고 복구 가능한 형태로 남기는 것이 핵심이다. 그 중심에는 두 개의 개념이 있다.JobExecution 과 StepExecution. 이 둘의 관계를 정확히 이해해야만운영 배치를 제대로 복구하고,“재처리 가능한 시스템”을 설계할 수…

운영 배치 장애 대응 전략 — 재처리와 롤백 설계

운영 환경에서 배치 작업은“하루의 마지막 프로세스이자, 다음 날의 시작점”이다. 그만큼 안정성이 중요하다.하지만 시스템이 아무리 견고해도실패하지 않는 배치는 없다. 진짜 중요한 건 실패가 아니라,**“실패 이후 어떻게 복구할 것인가”**다. 1. 장애의 본질 — 데이터 정합성의 붕괴 배치 장애는 대부분 데이터 불일치에서 시작된다.…

로그는 진실을 말한다 — 운영 환경 디버깅의 기술

운영 서버에서 장애가 발생했을 때,가장 먼저 확인해야 할 건 코드가 아니라 로그(log) 다. 디버깅이란 결국“시스템이 지금 무슨 이야기를 하고 있는지”를 읽어내는 과정이다.문제는, 대부분의 개발자들이 그 이야기를너무 늦게 들으려 한다는 것이다. 1. 로그는 코드보다 먼저 읽어야 한다 장애가 났을 때 많은…

나는 왜 VS Code를 메인 에디터로 쓰지 않는가

나는 VS Code를 사랑하지만, 주력 도구로는 쓰지 않는다 VS Code는 훌륭한 에디터다.가볍고, 빠르고, 확장성도 좋다.사실 나도 프론트엔드나 간단한 스크립트 작업엔 항상 VS Code를 연다. 그런데 이상하게,진짜로 ‘깊게 일하는 순간’엔 나는 다른 도구를 쓴다.그 이유는 단순히 기능이 아니라, 작업의 리듬 때문이다.…