Part I. Database Branching 개념과 지형
코드는 오래전부터 branch를 만들어 실험하고, 검토가 끝나면 머지하는 방식으로 다뤘습니다. 데이터베이스는 그렇지 못했습니다. 운영 데이터의 복사본 하나를 만드는 데 몇 시간이 걸리고, 복사본마다 원본과 같은 저장 공간이 필요했기 때문입니다. Database branching은 이러한 비대칭을 없애려는 시도입니다. 구현 방식은 두 갈래로 나뉩니다. 하나는 데이터를 복사하지 않고 공유하는 방식입니다. 쓰기가 발생한 부분만 분리하는 copy-on-write로 데이터까지 포함한 branch를 만듭니다. 다른 하나는 schema만 일치시킨 독립 환경을 branch라고 부르는 방식입니다. 이 방식은 변경 검토 워크플로우에 집중합니다. 이 노트의 중심인 Neon은 전자에 속합니다.
이 Part는 Neon을 자세히 살펴보기 전에 필요한 배경을 정리합니다. 먼저 branching이 어떤 비용 문제를 해결하는지 살펴봅니다. 기존 방식인 pg_dump, 스냅샷 복원, 공유 스테이징과 무엇이 다른지도 확인합니다. 이어서 copy-on-write가 작동하는 계층에 따라 제품 계보를 나눕니다. 파일시스템 스냅샷에서 시작해 스토리지 볼륨, 데이터베이스 page 버전, 논리 구조 공유로 이어지는 흐름입니다. 마지막으로 2026년 현재 branching을 제공하는 제품들을 한 표로 비교하고, 어떤 기준으로 골라야 하는지 정리합니다.
Neon 아키텍처 자체는 Part II에서, 직접 실행해 보는 절차는 Part III에서 다룹니다. 이 Part는 두 Part를 읽을 때 "왜 이렇게 설계했는가"를 판단할 기준을 마련합니다.