$ ls tags/ / concurrency
#concurrency
4 posts
backend· 시리즈
락 없이 안 겹치는 인보이스 채번
INV-2026-00001 같은 채번은 유일·연속이어야 한다. 동시 발급 둘이 같은 번호를 받으면 회계 사고다. SELECT MAX+1도 비관적 락도 아닌, 단일 upsert로 직렬화하는 LAST_INSERT_ID 원자 카운터.
2026.06.01 2 min read backend · mysql · concurrency · typeorm
backend
실 DB에서만 드러나는 버그들
mock 유닛 테스트가 전부 초록인데 운영에서 동시 요청에 잔액이 음수가 됐다. 락도 트랜잭션 격리도 원자성도 mock엔 없다. 돈과 무결성이 걸린 코드는 mock green을 통과로 인정하지 않기로 했다.
2026.05.20 2 min read backend · testing · concurrency · integration-test · mysql
backend· 시리즈
비관적 락이 못 막은 write skew
pessimistic_write 락을 걸어둔 연차 차감에서 동시 신청 2건이 모두 승인돼 잔액이 음수가 됐다. 검증이 락 밖이면, 락은 lost update를 막아도 write skew를 막지 못한다.
2026.05.18 3 min read concurrency · database · pessimistic-lock · write-skew · testing
backend
연차 잔액을 컬럼 하나로 들지 않은 이유
연차 잔액을 balance 컬럼 하나로 들면 '며칠 남았나'는 알아도 '왜 그 숫자인가'는 모른다. 노무 분쟁과 감사가 걸린 숫자라, 회계 장부처럼 append-only 원장으로 모델링했다.
2026.05.15 3 min read database · typeorm · ledger · audit · concurrency