핵심 요약
Neon의 copy-on-write 스토리지로 운영 DB(700GB)를 PR마다 5초 안에 브랜칭. 마이그레이션·시드·쿼리를 진짜 데이터로 검증하고 PR 머지 시 자동 정리. 데이터 사고 0건, 리뷰 품질 체감 크게 향상.
1. 어떻게 빠른가
Neon은 storage가 페이지 단위 copy-on-write. 브랜치 시점에는 메타데이터만 복사, 실제 페이지는 쓰기 시점에 분기. 700GB 브랜치 생성 3.4s, 비용은 변경된 페이지만.
2. GitHub Actions 통합
- uses: neondatabase/create-branch-action@v5
with:
project_id: \${{ secrets.NEON_PROJECT_ID }}
branch_name: pr-\${{ github.event.number }}
api_key: \${{ secrets.NEON_API_KEY }}
- run: npx prisma migrate deploy
- run: npm run test:integration
PR 열림 → 브랜치 생성 → 마이그레이션 적용 → 테스트. close 시 브랜치 자동 삭제.
3. preview 환경
각 PR이 자체 DB URL을 갖는다. Vercel·Render preview deploy와 결합해 사용자가 PR 링크로 실데이터 미리보기. 디자이너·PO와 협업 품질이 다른 차원.
4. 마스킹
실데이터 직접 노출 위험. PR 브랜치 생성 직후 별도 마스킹 SQL 자동 실행: 이메일 → 해시, 개인정보 → 더미. pg_audit 결과로 마스킹 누락 모니터링.
5. 비용 통제
- 비활성 브랜치는 자동 suspend(설정 가능)
- 오래된 브랜치 자동 삭제 cron
- compute 단위 시간당 과금이라 사용 안 하는 시간 거의 0
6. 운영 — main 브랜치 보호
main(=prod)은 PITR 7일·자동 백업. PR 브랜치는 PITR 미사용. 비용·운영 모두 깔끔.
7. 함정
- 스키마 변경이 메타데이터 카피라 매우 크면 브랜치 생성 지연
- 익명화 누락 시 GDPR 위반 가능 — 마스킹 강제
- Connection 수 — 각 PR 브랜치가 별도 연결, pooler 필수
자주 묻는 질문
Q. 자체 Postgres에서 비슷한 효과? ZFS snapshot 또는 PostgreSQL 17의 pg_basebackup으로 가능하지만 자동화 부담 큼. Neon은 그 부분을 SaaS로.

댓글 0