Neon은 PostgreSQL을 완전 관리형 서버리스 형태로 제공하는 클라우드 데이터베이스 서비스다. 2022년 오픈소스로 출발해 2024년 Databricks에 인수됐으며, 2026년 현재는 요금 구조가 대폭 개선돼 소규모~중규모 프로덕션에서도 합리적인 선택지가 됐다.
기존 RDS나 Supabase와 가장 다른 점은 저장 레이어와 컴퓨트 레이어가 완전히 분리돼 있다는 것이다. 덕분에 사용하지 않을 때는 컴퓨트가 0으로 줄고, 스토리지는 유지된다. 쿼리가 들어오면 밀리초 단위로 컴퓨트가 다시 뜬다.
Neon Serverless Postgres 완벽 가이드 — 브랜칭, Drizzle 통합, 2026 요금 총정리
PostgreSQL을 서버리스로 실행하는 Neon DB 실전 가이드. 데이터베이스 브랜칭, Scale-to-Zero, 2026년 80% 요금 인하, Next.js + Drizzle ORM 연동, GitHub Actions PR 환경 자동화까지 정리.
Neon은 PostgreSQL을 서버리스로 실행하는 클라우드 데이터베이스다. 데이터베이스 브랜칭, Scale-to-Zero, 초당 과금 구조로 사이드 프로젝트부터 프로덕션까지 유연하게 운영할 수 있다. 2026년 대폭 인하된 요금과 Drizzle ORM 공식 통합으로 Next.js 풀스택 개발자 사이에서 빠르게 확산되고 있다.
이 글이 필요한 사람: Next.js + TypeScript 스택에서 Postgres DB 비용을 줄이고 싶은 개발자, 사이드 프로젝트에 프리 티어 DB가 필요한 개발자, 스테이징 환경을 브랜치처럼 격리해 쓰고 싶은 팀.
이 글이 필요한 사람: Next.js + TypeScript 스택에서 Postgres DB 비용을 줄이고 싶은 개발자, 사이드 프로젝트에 프리 티어 DB가 필요한 개발자, 스테이징 환경을 브랜치처럼 격리해 쓰고 싶은 팀.
Neon이란 무엇인가
핵심 기능 3가지 — 브랜칭, Scale-to-Zero, 즉각 복원
1. 데이터베이스 브랜칭
Git 브랜치처럼 DB 인스턴스를 순식간에 복사할 수 있다. 1초 미만에 완전히 격리된 Postgres 인스턴스가 만들어지고, Copy-on-Write 방식이라 부모 브랜치 데이터를 실제로 복제하지 않아 스토리지 비용이 거의 없다.
실무에서는 이렇게 쓴다:
-
-
-
2. Scale-to-Zero
5분간 쿼리가 없으면 컴퓨트가 자동으로 0으로 줄고, 쿼리가 들어오면 약 0.5~2초 내에 재시작된다. 사이드 프로젝트나 스테이징 환경처럼 간헐적으로 사용하는 경우 비용이 거의 0에 수렴한다.
3. 즉각 포인트-인-타임 복원
과거 특정 시점의 DB 상태로 즉시 롤백할 수 있다. 실수로 데이터를 날렸을 때 새 브랜치를 복원 시점으로 만들어 데이터를 확인하고 복구하는 워크플로우가 가능하다.
Git 브랜치처럼 DB 인스턴스를 순식간에 복사할 수 있다. 1초 미만에 완전히 격리된 Postgres 인스턴스가 만들어지고, Copy-on-Write 방식이라 부모 브랜치 데이터를 실제로 복제하지 않아 스토리지 비용이 거의 없다.
실무에서는 이렇게 쓴다:
-
main 브랜치: 프로덕션 DB-
staging 브랜치: 스테이징 환경 (프로덕션 데이터 미러)-
feature/user-auth 브랜치: PR 단위 격리 테스트2. Scale-to-Zero
5분간 쿼리가 없으면 컴퓨트가 자동으로 0으로 줄고, 쿼리가 들어오면 약 0.5~2초 내에 재시작된다. 사이드 프로젝트나 스테이징 환경처럼 간헐적으로 사용하는 경우 비용이 거의 0에 수렴한다.
3. 즉각 포인트-인-타임 복원
과거 특정 시점의 DB 상태로 즉시 롤백할 수 있다. 실수로 데이터를 날렸을 때 새 브랜치를 복원 시점으로 만들어 데이터를 확인하고 복구하는 워크플로우가 가능하다.

2026 요금 구조와 무료 티어 활용
2026년 Databricks 인수 이후 Neon은 요금을 대폭 내렸다. 핵심 변화는 다음과 같다.
무료 티어로 실제로 뭘 할 수 있나?
월 100 CU-hours는 작은 사이드 프로젝트 1~2개를 운영하기에 충분하다. Scale-to-Zero 덕에 트래픽이 없는 시간에는 컴퓨트가 꺼지므로, 하루 몇 시간만 사용하는 프로젝트라면 무료 범위를 벗어나지 않는 경우가 많다.
프리 티어 브랜치 제한은 10개. 스테이징 + 개발 + 몇 개 PR 브랜치를 동시에 운영하는 데 충분하다.
유료 플랜(Scale, $19/월부터)은 99.95% SLA, 읽기 전용 복제, 더 많은 컴퓨트 크기, 히스토리 보관 기간 연장 등이 추가된다.
월 100 CU-hours는 작은 사이드 프로젝트 1~2개를 운영하기에 충분하다. Scale-to-Zero 덕에 트래픽이 없는 시간에는 컴퓨트가 꺼지므로, 하루 몇 시간만 사용하는 프로젝트라면 무료 범위를 벗어나지 않는 경우가 많다.
프리 티어 브랜치 제한은 10개. 스테이징 + 개발 + 몇 개 PR 브랜치를 동시에 운영하는 데 충분하다.
유료 플랜(Scale, $19/월부터)은 99.95% SLA, 읽기 전용 복제, 더 많은 컴퓨트 크기, 히스토리 보관 기간 연장 등이 추가된다.
Next.js + Drizzle ORM 연동 가이드
Neon은 Drizzle ORM의 공식 통합을 지원한다. Vercel 환경에서는 HTTP 드라이버를, 로컬 개발에서는 표준 PostgreSQL 드라이버를 각각 쓰는 패턴이 권장된다.
패키지 설치npm install drizzle-orm @neondatabase/serverless npm install -D drizzle-kit
db/index.ts — Neon HTTP 드라이버 설정 (Vercel/Edge)import { neon } from '@neondatabase/serverless'; import { drizzle } from 'drizzle-orm/neon-http'; import * as schema from './schema'; const sql = neon(process.env.DATABASE_URL!); export const db = drizzle(sql, { schema });
db/schema.ts — 스키마 예시import { pgTable, serial, text, timestamp } from 'drizzle-orm/pg-core'; export const users = pgTable('users', { id: serial('id').primaryKey(), email: text('email').notNull().unique(), name: text('name'), createdAt: timestamp('created_at').defaultNow() });
drizzle.config.tsimport type { Config } from 'drizzle-kit'; export default { schema: './db/schema.ts', out: './drizzle', dialect: 'postgresql', dbCredentials: { url: process.env.DATABASE_URL! } } satisfies Config;
마이그레이션 실행# 마이그레이션 파일 생성 npx drizzle-kit generate # Neon DB에 적용 npx drizzle-kit migrate
로컬 개발 팁: 로컬에서는
postgres 패키지와 drizzle-orm/node-postgres를 쓰고, Vercel 배포 시에만 @neondatabase/serverless로 교체하는 방식을 권장한다. DATABASE_URL 환경변수만 브랜치별로 달리 설정하면 된다.
브랜칭으로 PR 환경 자동화하기
Neon의 브랜칭 기능을 GitHub Actions와 연동하면 PR마다 격리된 DB 환경을 자동으로 생성하고 삭제할 수 있다.
.github/workflows/preview.yml — PR별 Neon 브랜치 자동 생성name: Preview DB Branch on: pull_request: types: [opened, synchronize, reopened] jobs: create-branch: runs-on: ubuntu-latest steps: - uses: neondatabase/create-branch-action@v5 id: create-branch with: project_id: ${{ secrets.NEON_PROJECT_ID }} api_key: ${{ secrets.NEON_API_KEY }} branch_name: preview/pr-${{ github.event.number }} - name: Comment PR with DB URL uses: actions/github-script@v7 with: script: | github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: 'Preview DB: `${{ steps.create-branch.outputs.db_url }}`' })
PR이 닫히면
neondatabase/delete-branch-action으로 브랜치를 자동 삭제한다. Vercel Preview 배포와 결합하면 프론트엔드 + 백엔드 + DB까지 PR 단위로 완전히 격리된 스테이징 환경이 만들어진다.Neon을 써야 할 때 / 말아야 할 때
Neon이 유리한 상황
- Next.js + Vercel 스택: HTTP 드라이버로 Edge Function에서도 지연 없이 쿼리 가능
- 사이드 프로젝트 / 초기 스타트업: Scale-to-Zero로 비용 최소화
- 멀티 환경 운영: 브랜칭으로 staging/preview/feature DB를 저렴하게 격리
- 팀 개발: 각 개발자가 독립 브랜치에서 스키마 변경 테스트
Neon이 불리한 상황
- 항상 켜져 있는 고트래픽 서비스: Scale-to-Zero가 불필요하고 콜드 스타트가 오히려 지연 요인
- 대용량 배치 작업: 수십 GB 데이터 처리는 RDS/Aurora가 더 최적화
- PostgreSQL 확장 기능 의존: PostGIS, pg_cron 등 일부 확장은 지원하지 않거나 제한적
- 자체 호스팅 필요: 데이터 주권 요건이 있는 엔터프라이즈는 Supabase 자체 호스팅 또는 직접 Postgres가 적합
- Next.js + Vercel 스택: HTTP 드라이버로 Edge Function에서도 지연 없이 쿼리 가능
- 사이드 프로젝트 / 초기 스타트업: Scale-to-Zero로 비용 최소화
- 멀티 환경 운영: 브랜칭으로 staging/preview/feature DB를 저렴하게 격리
- 팀 개발: 각 개발자가 독립 브랜치에서 스키마 변경 테스트
Neon이 불리한 상황
- 항상 켜져 있는 고트래픽 서비스: Scale-to-Zero가 불필요하고 콜드 스타트가 오히려 지연 요인
- 대용량 배치 작업: 수십 GB 데이터 처리는 RDS/Aurora가 더 최적화
- PostgreSQL 확장 기능 의존: PostGIS, pg_cron 등 일부 확장은 지원하지 않거나 제한적
- 자체 호스팅 필요: 데이터 주권 요건이 있는 엔터프라이즈는 Supabase 자체 호스팅 또는 직접 Postgres가 적합
콜드 스타트 주의: Scale-to-Zero 후 첫 쿼리는 0.5~2초가 걸린다. 프로덕션에서 이를 피하려면 컴퓨트 자동 중지를 끄거나(
suspend_timeout_seconds: 0), Scale 플랜에서 항상 켜두는 설정을 사용할 것.
Supabase, PlanetScale과 무엇이 다른가
Neon vs Supabase
Supabase는 Auth, Storage, Realtime 등 풀스택 BaaS 기능을 포함한다. 반면 Neon은 Postgres DB 자체에 집중한다. 기존 Next.js 앱에 DB만 붙이고 싶다면 Neon이 더 심플하다. 풀스택 BaaS가 필요하면 Supabase가 낫다.
브랜칭 기능은 Neon이 훨씬 앞선다. Supabase도 브랜칭을 지원하지만, Neon의 Copy-on-Write 방식에 비해 속도와 비용 효율이 떨어진다.
Neon vs PlanetScale
PlanetScale은 MySQL 기반이며 2024년 무료 티어를 완전히 없앴다. Postgres를 쓰고 싶거나 무료 티어가 필요한 경우 Neon이 현실적인 대안이다.
Neon vs Vercel Postgres
Vercel Postgres는 내부적으로 Neon을 사용한다. 직접 Neon 계정을 만들면 Vercel 마크업 없이 더 저렴하게 동일한 인프라를 쓸 수 있다.
Supabase는 Auth, Storage, Realtime 등 풀스택 BaaS 기능을 포함한다. 반면 Neon은 Postgres DB 자체에 집중한다. 기존 Next.js 앱에 DB만 붙이고 싶다면 Neon이 더 심플하다. 풀스택 BaaS가 필요하면 Supabase가 낫다.
브랜칭 기능은 Neon이 훨씬 앞선다. Supabase도 브랜칭을 지원하지만, Neon의 Copy-on-Write 방식에 비해 속도와 비용 효율이 떨어진다.
Neon vs PlanetScale
PlanetScale은 MySQL 기반이며 2024년 무료 티어를 완전히 없앴다. Postgres를 쓰고 싶거나 무료 티어가 필요한 경우 Neon이 현실적인 대안이다.
Neon vs Vercel Postgres
Vercel Postgres는 내부적으로 Neon을 사용한다. 직접 Neon 계정을 만들면 Vercel 마크업 없이 더 저렴하게 동일한 인프라를 쓸 수 있다.
NeonServerless PostgresPostgreSQLDrizzle ORMNext.js데이터베이스 브랜칭Scale-to-ZeroVercel서버리스Backend