데이터베이스 설계 및 세팅하기

웹 서비스에서 데이터를 저장하고 관리하려면 데이터베이스(DB)가 필요합니다.
우리는 PostgreSQL, Prisma, 그리고 Neon을 사용하여 무료로 강력한 DB 환경을 구축합니다.


1. 기술 스택 개요

우리가 사용할 데이터베이스 스택은 다음과 같습니다:

  • Next.js: 프론트엔드와 백엔드를 함께 다루는 풀스택 프레임워크
  • PostgreSQL: 세계에서 가장 신뢰받는 오픈소스 관계형 데이터베이스
  • Prisma: 코드로 DB를 조작하는 ORM(Object-Relational Mapping) 도구
  • Neon: Netlify와 연동되는 무료 클라우드 PostgreSQL 서비스

2. PostgreSQL이란?

PostgreSQL(포스트그레스)은 30년 이상의 역사를 가진 오픈소스 관계형 데이터베이스입니다.
대기업부터 스타트업까지 전 세계적으로 널리 사용되며, 안정성과 확장성이 뛰어납니다.

  • 관계형 DB: 테이블 형태로 데이터를 저장하고, 테이블 간 관계를 정의할 수 있습니다.
  • SQL 지원: 표준 SQL 문법으로 데이터를 조회, 삽입, 수정, 삭제합니다.
  • 확장성: JSON, 배열, 지리 데이터 등 다양한 데이터 타입을 지원합니다.

💡 왜 PostgreSQL인가?: MySQL보다 기능이 풍부하고, 복잡한 쿼리와 대용량 데이터 처리에 강합니다. Prisma와의 궁합도 최고입니다.

💻 로컬 vs 클라우드: PostgreSQL은 로컬에 직접 설치해서 테스트해도 되고, Netlify의 Neon과 연결해서 클라우드 환경에서 실행해도 됩니다.
개인적으로는 로컬에 설치해서 사용하는 편입니다. 개발 중에는 빠르고, 배포할 때만 Neon으로 전환하면 됩니다.

3. Prisma란?

Prisma는 Node.js와 TypeScript 환경에서 사용하는 차세대 ORM입니다.
SQL을 직접 작성하지 않고도 JavaScript/TypeScript 코드로 데이터베이스를 조작할 수 있습니다.

Prisma의 핵심 기능

  • Prisma Schema: 데이터 모델을 코드로 정의합니다.
  • Prisma Client: 자동 생성된 타입 안전한 쿼리 빌더입니다.
  • Prisma Migrate: 스키마 변경을 자동으로 DB에 반영합니다.
Prisma

▲ mysql, php 등 프로그램 없이도 prisma 를 이용해 db 접근 및 작업이 가능합니다.

💡 강력한 장점: 로컬 환경에 MySQL이나 PHP(phpMyAdmin) 등 별도의 프로그램이 깔려 있지 않아도, Prisma만 있다면 실제 DB에 접속하고 데이터 확인 및 수정 작업을 완벽하게 수행할 수 있습니다.

💡 장점: SQL을 몰라도 직관적인 JavaScript 코드로 DB를 다룰 수 있습니다. 타입 안전성 덕분에 오류도 줄어듭니다.

4. Neon (무료 클라우드 PostgreSQL)

Neon은 서버리스 PostgreSQL 서비스로, Netlify와 공식 통합되어 있습니다.
무료 플랜으로 소규모 프로젝트를 충분히 운영할 수 있습니다.

Step 1: Neon 계정 생성

  1. Neon.tech에 접속하여 GitHub 또는 이메일로 가입합니다.
  2. 새 프로젝트를 생성합니다.
  3. 생성된 프로젝트에서 Connection String을 복사합니다.

Step 2: 환경 변수 설정

프로젝트 루트에 .env 파일을 생성하고 Connection String을 붙여넣습니다:

# .env
DATABASE_URL="postgresql://user:password@host/database?sslmode=require"

Step 3: Prisma 설치 및 초기화

# Prisma 설치
npm install prisma @prisma/client

# Prisma 초기화
npx prisma init

# 스키마 작성 후 DB에 반영
npx prisma db push

# Prisma Client 생성
npx prisma generate

Step 4: Netlify 배포 시 환경 변수 설정

Netlify 대시보드 → Site settings → Environment variables에서
DATABASE_URL을 추가하고 Neon Connection String을 입력합니다.

💡 Tip: Neon 무료 플랜은 0.5GB 스토리지와 100 컴퓨트 시간을 제공합니다. 개인 프로젝트나 MVP에 충분합니다.

5. 안티그래비티에게 맡기기

위의 과정이 복잡하게 느껴지더라도 걱정하지 마세요.
안티그래비티 프롬프트에 다음과 같이 요청하면 자동으로 세팅해줍니다:

"PostgreSQL + Prisma 세팅해줘. 
Neon 연결할 거야. DATABASE_URL은 .env에 있어.
User, Post 모델 만들어줘."

완료: 이제 Next.js 프로젝트에서 Prisma를 통해 PostgreSQL 데이터베이스를 자유롭게 사용할 수 있습니다!

6. 시연 영상

아래 영상에서 실제로 프로젝트를 처음 만들고, DB 스키마를 설계하고, Neon과 연동해 구현하는 전체 과정을 확인하세요.

▲ 프로젝트 생성부터 DB 스키마 설계, Neon 연동까지

방향키로 이동