애플리케이션 설계자가 동시성 문제를 다룰 때 밟는 작업 순서를 정리합니다. 공유 상태를 없앨 수 있는지부터 확인하고, 없앨 수 없으면 범위를 좁히고, 남은 것에 원자성 경계와 잠금을 씌우고, 프로세스 밖으로 나가면 트랜잭션과 멱등성으로 지키고, 마지막에 테스트로 확인합니다. 개념 구분이나 인프라 비교가 아니라 코드를 쓰는 사람의 결정 순서에 초점을 둡니다.
테스트 피라미드와 테스팅 트로피 중 무엇이 맞는지 고르는 대신, 그 논쟁을 실제 축으로 분해해 팀이 자기 비율을 스스로 정하는 방법을 정리합니다. 단위의 정의, 비용 함수, 목 사용 범위, 커버리지 숫자, 결함 분포 데이터, 느리고 깨지는 테스트의 운영 규칙까지 결정 기준 중심으로 다룹니다.
PostgreSQL 18을 기준으로 캐시를 데이터베이스 쪽에서부터 올라가며 정리합니다. shared_buffers와 운영체제 캐시라는 이미 존재하는 캐시 계층, 머티리얼라이즈드 뷰라는 계산 캐시, 그 위에 외부 캐시를 얹을지 판단하는 기준, 그리고 캐시 도입의 진짜 난제인 무효화의 네 가지 실패 모드와 쓰기 경로 순서 문제, 캐시 스탬피드 방어까지 다룹니다.