나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2025-12-24 04:11:49

Prisma

1. 개요2. 역사3. 특징4. 구성 요소
4.1. Prisma Schema4.2. Prisma Client4.3. Prisma Migrate
5. 지원 데이터베이스6. 장점7. 단점8. 생태계9. 다른 ORM과의 비교10. 같이 보기

1. 개요

JavaScriptTypeScript 환경에서 사용하는 ORM(Object–Relational Mapping) 라이브러리이다. 정식 명칭은 Prisma ORM.

선언적인 스키마 파일을 기반으로 데이터베이스와 애플리케이션 코드를 연결하는 방식으로, 전통적인 Sequelize, TypeORM 등과 비교했을 때 뛰어난 타입 안전성(Type Safety)개발자 경험(Developer Experience)으로 주목받고 있다.

2. 역사

Prisma는 원래 2016년 Graphcool이라는 이름으로 시작한 GraphQL 백엔드 서비스에서 파생되었다. 이후 GraphQL 서버 기능은 제거되고, 데이터베이스 접근 계층에 집중하는 방향으로 전환하여 2018년 Prisma로 이름을 변경했다.

2020년 Prisma 2가 정식으로 출시되면서, Node.js 진영의 대표적인 ORM으로 자리잡았다.

2025년 11월 18일 7.0버전이 출시되었다.#

3. 특징

Prisma의 가장 큰 특징은 선언적 스키마 언어(Prisma Schema Language)자동 코드 생성이다.

4. 구성 요소

Prisma는 다음 3개의 주요 구성 요소로 이루어진다.

4.1. Prisma Schema

데이터 모델, DB 연결 정보, 생성 옵션 등을 선언하는 파일이다.
보통 프로젝트 루트의 prisma/schema.prisma 위치에 둔다.

#!syntax javascript
prisma
datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

generator client {
  provider = "prisma-client-js"
}

model User {
  id    Int     @id @default(autoincrement())
  name  String
  email String  @unique
}

4.2. Prisma Client

위 스키마를 바탕으로 자동 생성되는 타입 안전한 DB 클라이언트이다.
#!syntax javascript
import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

const users = await prisma.user.findMany({
  where: { name: '홍길동' }
})

4.3. Prisma Migrate

스키마 변경을 추적하고 데이터베이스에 반영하는 마이그레이션 도구이다.
#!syntax javascript
# 개발 환경용 마이그레이션
npx prisma migrate dev

# 프로덕션 반영
npx prisma migrate deploy

각 변경 사항은 prisma/migrations 폴더에 SQL 파일로 저장되어, 팀 단위로 버전 관리가 가능하다.

5. 지원 데이터베이스

Prisma가 지원하는 DBMS는 2025년 기준 다음과 같다.

6. 장점

선언적 스키마 → 코드 자동 생성으로 개발 속도가 빠름

TypeScript 기반 타입 안전성 제공

IDE 자동완성, 에러 검출 등 개발자 경험 우수

DB 마이그레이션 기능 내장

기존 DB 구조도 introspection으로 가져올 수 있음

NestJS, Next.js, Express 등과 잘 통합됨

7. 단점

일부 고급 SQL 기능(Stored Procedure, Window Function 등)은 직접 SQL을 작성해야 한다.

매우 복잡한 쿼리는 Prisma만으로 표현하기 어렵다.

런타임에 Node.js 환경이 필요하다.

NoSQL DB 지원은 MongoDB 외에는 제한적이다.

TypeORM이나 Sequelize 대비 생태계가 비교적 신생이었으나, 최근 빠르게 성장 중이다.

8. 생태계

Prisma는 아래와 같은 생태계를 중심으로 발전하고 있다.

또한 Prisma는 오픈소스이며, GitHub에서 활발히 개발되고 있다.
Prisma GitHub 저장소

9. 다른 ORM과의 비교

구분 Prisma TypeORM Sequelize
언어/타겟 TypeScript 중심 TS/JS JS 중심
코드 생성 방식 스키마(Prisma Schema) 기반 자동 생성 데코레이터 기반 엔티티 정의 모델 정의/초기화 코드 중심
타입 안전성 ★★★★★ (강력한 TS 타입 추론) ★★★★☆ ★★☆☆☆
마이그레이션 내장(Prisma Migrate) 내장/외부 도구 병행 내장(기본 기능)
복잡 쿼리 대응 필요 시 원시 SQL 병행 권장 필요 시 원시 SQL 병행 자유도 높으나 수동 튜닝 비중 큼
학습 난이도 낮음(선언적 스키마) 중간 낮음
지원 DB PostgreSQL·MySQL·MariaDB·SQLite·MSSQL·MongoDB 주요 RDB 다수 주요 RDB 다수
생태계/문서화 최근 급성장·문서/가이드 풍부 안정적 커뮤니티·예제 다수 역사 길고 예제 많음(레거시 관성 있음)

10. 같이 보기