Skip to content

Databases

  • Published on
    600년 된 회계 기법이 왜 현대 결제 시스템의 심장인지 이야기합니다. 차변=대변, 변경 불가능한 append-only 기록, 계정과 잔액, "그냥 잔액 컬럼 하나 두면 안 되나?"에 대한 답, 대사(reconciliation), TigerBeetle 같은 전용 원장, 그리고 동시성 아래에서의 정합성까지 — 돈을 절대 잃지 않는 시스템을 설계하는 법.
  • Published on
    ACID가 실제로 무엇을 보장하는지부터, 네 가지 격리 수준(read uncommitted → serializable), 각 수준이 허용하는 이상 현상(dirty·non-repeatable·phantom read, write skew), MVCC와 잠금·낙관적 동시성, SELECT FOR UPDATE, 그리고 PostgreSQL과 MySQL의 기본값 차이까지. 트랜잭션이 왜 어렵고 무엇을 지켜 주는지 실전 관점에서 정리합니다.
  • Published on
    "셋 중 둘을 고른다"는 흔한 설명은 틀렸습니다. CAP의 세 글자가 각각 무엇을 뜻하는지, 왜 실제로는 파티션이 났을 때만 C와 A 사이에서 선택하는지, PACELC이 왜 더 완전한 그림인지, 그리고 Dynamo와 Spanner 같은 실제 시스템이 어디에 서 있는지를 손짓 없이 짚습니다.
  • Published on
    지구상에서 가장 많이 배포된 데이터베이스는 오라클도, 포스트그레스도 아닌 SQLite입니다. 여러분의 폰, 브라우저, 심지어 비행기 안에도 있습니다. 서버 없는 단일 파일 설계, 클라이언트-서버 DB를 이길 때, WAL 모드, 인메모리 DB로 테스트하기, WASM으로 브라우저에서 돌리기, litestream으로 내구성 확보까지 정리합니다.