
2025.3.20 목요일의 공부기록
Prisma는 TypeScript 및 Node.js에서 SQL 데이터베이스와 상호작용할 수 있는 ORM(Object-Relational Mapping) 라이브러리이다.
MySQL, PostgreSQL, SQLite, MongoDB 등을 지원하며 타입 안전한 쿼리 작성이 가능하다.
터미널에서 아래 명령어를 실행하여 Prisma를 설치하고 초기화한다.
npm install prisma --save-dev
npx prisma init
✅
prisma디렉터리와schema.prisma파일이 생성된다.
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql" // postgresql, mysql, sqlite, mongodb 등 선택 가능
url = env("DATABASE_URL")
}
.env 파일에서 데이터베이스 연결 정보를 설정한다.
DATABASE_URL="postgresql://user:password@localhost:5432/mydb"
prisma/schema.prisma 파일에 데이터 모델을 추가한다.
model User {
id String @id @default(uuid()) // UUID 기본키 자동 생성
name String
email String @unique // 이메일 중복 금지
password String
createdAt DateTime @default(now()) // 생성 날짜 자동 입력
}
데이터 모델을 DB에 반영하기 위해 마이그레이션을 실행한다.
npx prisma migrate dev --name init
✅ 마이그레이션 후
prisma/migrations폴더에 마이그레이션 파일이 생성된다.
Prisma Client를 생성해 데이터베이스와 상호작용한다.
npx prisma generate
lib/prisma.ts에 Prisma Client 설정하기import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();
export default prisma;
import prisma from "@/lib/prisma";
async function createUser() {
const user = await prisma.user.create({
data: {
name: "John Doe",
email: "john@example.com",
password: "hashed_password",
},
});
console.log(user);
}
createUser();
async function getUsers() {
const users = await prisma.user.findMany();
console.log(users);
}
getUsers();
Prisma Studio는 데이터베이스를 GUI로 쉽게 관리할 수 있게 도와준다.
npx prisma studio
✅ 브라우저가 열리며 GUI 기반 데이터 관리가 가능한다.
pages/api/users.ts
import type { NextApiRequest, NextApiResponse } from "next";
import prisma from "@/lib/prisma";
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
if (req.method === "GET") {
const users = await prisma.user.findMany();
res.status(200).json(users);
}
}
| 단계 | 명령어 | 설명 |
|---|---|---|
| Prisma 설치 | npm install prisma --save-dev | Prisma 설치 |
| Prisma 초기화 | npx prisma init | 초기 설정 |
| 마이그레이션 실행 | npx prisma migrate dev --name init | DB 반영 |
| Prisma Client 생성 | npx prisma generate | 타입스크립트 클라이언트 생성 |
| Prisma Studio 실행 | npx prisma studio | GUI 도구 |
더 자세한 내용은 Prisma 공식 문서에서 확인하자