Begin below

Follow the 

ScrollRead below.

About

Engineering notes in a quiet archive.

Notes, incidents, and working records stay connected without exposing personal traces. Motion adds context; the writing stays easy to reach.

View archive
01Open

Start with the newest post.

Recent writing appears first. Older entries stay easy to reopen without adding noise.

02Trace

Follow the context.

Dates, tags, and nearby posts stay visible, so the archive remains usable as it grows.

03Return

Come back without searching.

The layout stays compact enough to scan, then opens the full entry when needed.

Recent

Recent posts.

Drag the row, pick a post, or open the full archive.

Archive
Post

크레딧 차감 실패를 락 설정 문제로만 보지 않은 이유

AI Agent 병렬 실행 중 같은 조직의 크레딧 차감 요청이 한꺼번에 몰리며 실패한 사례를 다룹니다. timeout을 늘리는 대신, 기록은 요청별로 남기고 락 앞에 서는 요청 수만 줄인 이유를 적었습니다.

Redis
Post

보안 스캔을 사용자 응답 경로에서 분리한 이유

외부 도구 호출 응답의 DLP 스캔을 동기 응답 경로에서 분리하고, 실패 이벤트를 감사 추적과 재처리 대상으로 남긴 과정을 정리합니다.

Backend
Post

토큰 검증보다 먼저 정한 Gateway 인증 경계

인증 판단을 Gateway와 Redis 세션 중심으로 옮기며 토큰 갱신, 쿠키 처리, 권한 상태 불일치를 어떻게 분리해 확인했는지 정리합니다.

Backend
Post

unlock은 왜 락 소유자를 확인해야 하는가

소유자 검증 없는 락 해제가 임계 구역을 어떻게 무너뜨렸는지, 그리고 Redis 전체가 아니라 분산 락 경로만 Redisson으로 전환한 이유를 정리합니다.

Redis
Post

대용량 Export는 언제 성공했다고 말할 수 있을까

ZIP 손상처럼 보이던 증상을 response lifecycle, cursor paging, lookup 재사용 기준으로 분리해 정리합니다.

Backend
Post

인덱스를 타도 느린 쿼리는 왜 느린가

인덱스가 있다는 사실보다, 결국 몇 번의 추가 읽기와 몇 건의 재확인을 만드는지가 더 중요하다는 점을 설명합니다.

MySQL

Routes

Read next.

Full archive.