Spring Batch의 구조 - 청크, 파티셔닝, 재시작과 메타데이터 Notes 배치를 직접 만들면 결국 같은 것들을 다시 만들게 된다. 어디까지 했는지 기억하기, 실패한 지점부터 다시 하기, 몇 건씩 끊어서 커밋하기, 병렬로 돌리기. Spring Batch는 이 넷을 규격화한 프레임워크이고, 구조를 알면 “왜 이 설정이 있는가”가 설명된다. Job, Step, 그리고 메타데이터 Job은 여러 Step의 나열이고, 실행 이... 2026/04/29 Spring
뱅크샐러드 「게임을 만들 때 데이터 정합성을 유지하는 법 (feat. 낙관적 락)」 리뷰 — 같은 WHERE version 조건인데, 충돌한 요청을 어떻게 하는가에서 갈리는 두 설계 Tech Blog Review 원문: 뱅크샐러드가 게임을 만들 때 데이터 정합성을 유지하는 법 (feat. 낙관적 락) — 뱅크샐러드 기술 블로그, 배지원(금융쇼핑 PA 백엔드), 2026-01-16 이후 parity-pay 2편에서 잔액 차감을 WHERE available_amount >= :amount AND version = :v인 단일 UPDATE로 하기로 했고, 1... 2026/04/27 Banksalad 빅테크 기술 블로그 리뷰 30편
SLASH 23 리뷰 - 프로파일러로 시스템 성능 향상시키기: Pinpoint, 힙 덤프, jemalloc, async-profiler, strace, 그리고 커널 버전 Conference 발표 SLASH 23 연사 이항령 (토스 Server Platform Team Leader) 자료 발표 영상 · SLASH 23 서버 플랫폼 팀 리더가 팀에서 쓰는 프로파일러 여섯 가지(P... 2026/04/26 Toss 토스 커뮤니티 백엔드 발표 리뷰 30편
가상 스레드의 내부 - 스케줄러와 캐리어, 핀닝, 그리고 쓰지 않아야 할 때 Notes 가상 스레드를 “스레드를 무한히 만들 수 있게 해주는 것”으로 이해하면, 켜자마자 좋아질 것 같지만 그렇지 않은 경우를 만난다. 무엇이 바뀌고 무엇이 그대로인지는 구현을 봐야 갈린다. 무엇이 달라지는가 플랫폼 스레드는 OS 스레드와 1:1이다. 스택이 보통 1MB 잡히고, 생성과 컨텍스트 스위칭이 커널 일이다. 그래서 수천 개를 만들면 메모리와... 2026/04/23 Java
SLASH 23 리뷰 - 연결되면 비로소 보이는 것들: Pinpoint 코루틴 플러그인을 만들기 위해 코루틴 바이트코드를 읽다 Conference 발표 SLASH 23 연사 구태진 (토스 Server Platform Team, Server Developer) 자료 발표 영상 · SLASH 23 토스는 APM으로 Pinpoint를, 비... 2026/04/22 Toss 토스 커뮤니티 백엔드 발표 리뷰 29편
LINE 「기획서 없이 내재화하기: 검증 로직으로 동일함을 증명하다」 리뷰 — 블랙박스는 입력과 출력만 정의하면 통계로 같음을 증명할 수 있다 Tech Blog Review 원문: 기획서 없이 내재화하기: 검증 로직으로 동일함을 증명하다 — LY Corporation Tech Blog, 장효택(LINE Plus Global E-Commerce), 2026-03-20 한 줄 요약 외부 시스템에 의존하던 모듈을 내재화하는데 기획서도 없고 기존 코드도 볼 수 없는 블랙박스였다. “우리가 만든 것이 기존과 정말 같은가”에... 2026/04/22 LINE 빅테크 기술 블로그 리뷰 29편
Redis 단일 스레드가 멈추는 순간 - SCAN이 3.7배 오래 걸리면서 아무도 막지 않고, 120ms 멈춤이 p99에 안 잡히는 이유 실무 사례 Notes Redis 단일 스레드가 멈추는 순간이라는 제목으로 쓸 내용을 redis-lite-java 시리즈에서 구현 관점으로 다룬 적이 있다. 이 글은 그것을 실제 서버에서 재 본 기록이다. Redis는 명령을 한 스레드의 이벤트 루프에서 차례로 실행한다. Redis 문서는 그 결과를 이렇게 적는다. “A consequence of being single t... 2026/04/20 Redis
전달 보장 - at-most-once, at-least-once, exactly-once가 각각 무엇을 약속하는가 Notes “Kafka는 exactly-once를 지원한다”는 문장이 오해를 만든다. 지원하는 것은 맞고, 그 보장의 범위가 생각보다 좁은 것도 맞다. 세 가지 보장이 각각 어디서 어디까지를 약속하는지 경계를 그어 두면, 언제 트랜잭션을 켜고 언제 멱등 소비자를 만들지가 정해진다. 세 가지가 나뉘는 지점은 재시도다 메시지 하나가 프로듀서에서 컨슈머까지 가... 2026/04/18 Infrastructure
SLASH 23 리뷰 - 토스는 Gateway 이렇게 씁니다: 목적별 게이트웨이, 패스포트, 요청 서명 검증, YAML 라우트와 게이트웨이 봇 Conference 발표 SLASH 23 연사 최준우, 오종훈, 김성현 (토스 Server Platform Team, Server Developer) 자료 발표 영상 · SLASH 23 SLASH 21 서버 ... 2026/04/18 Toss 토스 커뮤니티 백엔드 발표 리뷰 28편
시간과 순서 - 물리 시계의 한계, 논리 시계, 하이브리드 시계 Notes 로그를 타임스탬프로 정렬했는데 결과가 원인보다 먼저 찍혀 있다. 두 서버의 시각이 몇 밀리초 다르면 흔히 일어나는 일이고, NTP를 맞췄어도 사라지지 않는다. 분산 시스템에서 “언제”와 “순서”는 다른 문제이고, 순서가 필요할 때 시계를 쓰면 틀린다. 물리 시계가 주지 않는 것 서버의 시계는 두 종류다. 벽시계(wall clock). Syst... 2026/04/13 Architecture