← bruni.world
BRUNI · FIELD NOTES
트래픽이 오른 날
터지는 것들
개발 환경에서는 멀쩡했는데, 트래픽이 오른 날 무너져요.
코드는 한 줄도 안 바뀌었는데요. 그런 순간만 85개 모았어요.
85편183쪽PDF · A5DB · 백엔드
교과서 목차는 없어요. "인덱스란 무엇인가" 같은 건 검색하면 나오니까요.
이 책에는 코드에 버그가 없는데 사고가 나는 것, 상식적인 설정이 모여
장애가 되는 것만 담았어요.
한 편은 이렇게 생겼어요
85편이 전부 같은 7단 구성이에요. 읽다가 덮어도 어디까지 봤는지 알 수 있어요.
- 현상 — 실제로 겪는 장면
- 원리 — 왜 그렇게 되는가
- 코드 — 문제 코드와 고친 코드
- 실전 — 현장 수치, 더 나쁜 경우, 놓치기 쉬운 것
- 처방 — 무엇을 어떻게 바꾸나
- 점검 — 지금 우리 시스템을 확인하는 쿼리·명령
- 핵심 한 줄
맛보기
긴 트랜잭션 하나가 DB 전체를 부풀린다
현상 — 디스크 사용량이 계속 늘어요. 데이터는 안 늘었는데
테이블 크기만 커지고, autovacuum 은 도는데 아무것도 회수하지 못해요.
실전 — 실제 사례에서 6시간짜리 유휴 트랜잭션 하나가
100만 행 테이블을 50GB 로 부풀린 적이 있어요. 49GB 가 지울 수 없는 죽은 행이었죠.
그리고 스냅샷은 DB 전역이라 모든 테이블이 함께 부풀어요.
# 기본값은 둘 다 0 (무제한)
idle_in_transaction_session_timeout = '5min'
statement_timeout = '30s'
핵심 — 열어 둔 트랜잭션 하나가 청소부의 손을 묶어요.
차례
1부 데이터베이스 — 기초 체력19편
1부 — 트랜잭션12편
1부 — 인덱스와 쿼리 플랜12편
2부 백엔드 — 기본기18편
2부 — 트래픽12편
2부 — 관측과 배포12편
이런 분께
서비스가 커지는 중인 백엔드 개발자, 장애 대응을 맡게 된 주니어,
면접에서 "실제로 겪은 장애"를 묻는 자리를 준비하는 분.
반대로 DB 를 처음 배우는 분께는 안 맞아요.
기초 개념은 안 다루고 바로 사고 현장으로 들어가거든요.
다른 책
하루 한 점 — 명화 40점과 그 뒷이야기45쪽
퍼블릭 도메인 명화 40점을 한 점씩,
그림 한 면과 뒷이야기로 담았어요. 개발과는 상관없는 책이에요.
9,900원 · 준비 중