← bruni.world
BRUNI · FIELD NOTES

트래픽이 오른 날
터지는 것들

개발 환경에서는 멀쩡했는데, 트래픽이 오른 날 무너져요. 코드는 한 줄도 안 바뀌었는데요. 그런 순간만 85개 모았어요.

85편183쪽PDF · A5DB · 백엔드
교과서 목차는 없어요. "인덱스란 무엇인가" 같은 건 검색하면 나오니까요. 이 책에는 코드에 버그가 없는데 사고가 나는 것, 상식적인 설정이 모여 장애가 되는 것만 담았어요.

한 편은 이렇게 생겼어요

85편이 전부 같은 7단 구성이에요. 읽다가 덮어도 어디까지 봤는지 알 수 있어요.

  1. 현상 — 실제로 겪는 장면
  2. 원리 — 왜 그렇게 되는가
  3. 코드 — 문제 코드와 고친 코드
  4. 실전 — 현장 수치, 더 나쁜 경우, 놓치기 쉬운 것
  5. 처방 — 무엇을 어떻게 바꾸나
  6. 점검 — 지금 우리 시스템을 확인하는 쿼리·명령
  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 를 처음 배우는 분께는 안 맞아요. 기초 개념은 안 다루고 바로 사고 현장으로 들어가거든요.

19,000원15,000원
런칭가 · PDF 즉시 발송
판매 준비 중이에요

다른 책

하루 한 점 — 명화 40점과 그 뒷이야기45쪽

퍼블릭 도메인 명화 40점을 한 점씩, 그림 한 면과 뒷이야기로 담았어요. 개발과는 상관없는 책이에요. 9,900원 · 준비 중