CDN · Cache
CDN - 사용자 가까이 둔다
서버를 아무리 늘려도 거리는 안 줄어든다. 사본을 사용자 근처에 두는 층이 무엇을 해결하고, 공유 캐시라서 무엇이 위험한지 본다.
부하를 견디는 법 6편
Scaling · Architecture
수직이냐 수평이냐
서버를 키우는 것과 늘리는 것은 난이도가 다르다. 늘리는 쪽이 어려운 이유는 서버가 아니라 서버가 들고 있는 상태에 있다.
부하를 견디는 법 4편
Cache · Redis
캐시가 프로세스 밖으로 나가면
서버마다 캐시가 달라지는 문제를 공용 캐시로 푼다. 대신 네트워크·직렬화·단일 장애점·스탬피드라는 계산서가 새로 온다.
부하를 견디는 법 3편
Cache · Performance
캐시 - 같은 답을 두 번 만들지 않는다
한 번 만든 결과를 들고 있다가 다시 준다. 쉬운 이야기라서 위험한데, 진짜 알맹이는 무엇에는 캐시를 붙이면 안 되는가다.
부하를 견디는 법 2편
Performance · Scaling
무엇이 먼저 무너지나
부하가 늘면 전부가 고르게 느려지는 게 아니라 가장 좁은 한 곳이 먼저 막힌다. 도구를 고르기 전에 그 자리를 찾는 이야기.
부하를 견디는 법 1편
HTTP · Web
캐시 - 안 보내는 게 가장 빠르다
배포했는데 사용자 화면이 안 바뀐다. 그 사고에서 출발해 Cache-Control·ETag·조건부 요청이 무엇을 정하는지 본다.
HTTP는 어떻게 오가나 4편
HTTP · Web
연결을 매번 새로 맺지 않는다
요청을 보내려면 먼저 연결부터 맺어야 한다. 그 준비 비용을 줄이려는 시도가 HTTP 버전을 올려온 이유다.
HTTP는 어떻게 오가나 3편
Database · Storage
B-tree와 LSM-tree - 읽기와 쓰기 중 무엇을 팔 것인가
8바이트를 바꾸려고 8KB를 다시 쓴다. 그게 싫으면 뒤집으면 되는데, 그러면 읽기가 대가를 낸다.
데이터베이스 공통 개념 13편
Database · Performance
실행 계획 - 세 가지만 보면 된다
EXPLAIN 출력이 외계어처럼 보일 때. 트리를 어느 방향으로 읽고, 어디서 범인을 찾는가.
데이터베이스 공통 개념 8편
Database · Join
조인 알고리즘 - DB는 세 가지 방법 중 하나를 고른다
중첩 반복·해시·정렬 병합이 각각 언제 이기는지, 그리고 조인이 갑자기 느려지는 진짜 이유.
데이터베이스 공통 개념 7편
Database · Index
인덱스 - 왜 빠르고, 왜 만들어도 안 타는가
B-tree가 이진트리가 아닌 이유부터, 인덱스를 만들어놓고도 풀스캔이 도는 다섯 가지 경우까지.
데이터베이스 공통 개념 6편