시작하기

처음 오셨다면

시작하기

가진 시간에 맞춰 읽을 글을 골라 두었습니다. 15분이면 무엇을, 한 시간이면 어디까지 읽으면 되는지 정리했습니다.

3분

이 블로그가 무엇을 하는 곳인지 한 편으로 보기

1편
  1. 무너지는 Spring 서버 1 - CPU는 놀고 있는데 API가 느리다: 업스트림 하나가 무관한 엔드포인트를 죽이는 과정을 thread dump 세 장으로 읽기 업스트림 하나가 느려지면 그것을 호출하지도 않는 엔드포인트가 먼저 죽는다는 것을 thread dump 세 장으로 보인 글입니다. 재현하고, 재고, 고치고, 같은 조건에서 다시 재는 이 블로그의 기본형입니다. 무너지는 Spring 서버를 재현하고 고치기 · 1편 · 23분다음 글
15분

추론을 측정으로 바꾸는 세 가지 방식 보기

3편
  1. ParityPay로 검증하는 결제 정합성 2 - 잠금을 필요 이상으로 오래 쥐고 있었다: 추론을 측정으로 바꾼 기록 같은 지갑 경합의 원인을 추론이 아니라 측정으로 좁혔습니다. 잠금 보유 17ms 중 DB가 실제로 일한 시간은 2.31ms였고, 나머지는 애플리케이션을 기다린 시간이었습니다. ParityPay로 검증하는 결제 정합성 · 2편 · 23분다음 글
  2. 격리 수준의 이상 현상을 직접 만들기 - 같은 REPEATABLE READ에서 PostgreSQL은 중단시키고 MySQL은 조용히 덮어썼다 같은 이름의 격리 수준에서 PostgreSQL은 중단시키고 MySQL은 조용히 덮어씁니다. 문서로는 같아 보이는 것이 20회 반복 측정에서 갈립니다. 17분다음 글
  3. ParityPay로 검증하는 결제 정합성 4 - 실험 27종이 찾아낸 결함 12건: 문서와 코드를 읽어서 나온 것은 하나도 없었다 실험 27종이 찾은 결함 12건 중 6건은 설계 문서에 "대비되어 있다"고 적혀 있던 것이었습니다. 문서와 코드를 읽어서 나온 것은 하나도 없었습니다. ParityPay로 검증하는 결제 정합성 · 4편 · 26분다음 글
한 시간

하나의 시스템을 처음부터 끝까지 따라가기

1편
  1. ParityPay로 검증하는 결제 정합성 결제·원장 백엔드를 만들며 불변조건을 문장으로 쓰고, 중복 요청·동시 차감·응답 유실·프로세스 재시작 아래에서 그것이 지켜지는지 실험으로 확인한 기록입니다. 열 편이 순서대로 이어집니다. 12개 글 · 304분다음 글

찾는 것이 분명하다면

어떤 글을 읽게 되나

  1. 01 재현 무너지는 조건을 만든다
  2. 02 계측 thread dump와 백분위로 읽는다
  3. 03 조치 원인 하나를 고친다
  4. 04 재측정 같은 조건에서 다시 잰다