서버

[Node.js] ORM

키또카또 2026. 4. 8. 16:30

ORM이란? Object-Relational Mapping (객체 관계 매핑)으로, 객체 지향 프로그래밍 언어의 객체와 관계형 데이터베이스의 테이블을 자동으로 매핑하는 기술이다. = 객체지향 언어로 관계형 데이터베이스를 추상화하여 다룰 수 있게 해 주는 도구이다.

 

사용해볼 ORM은 Prisma이다.

 

- Prisma의 특징

  • 정적 타입 기반 모델
  • 타입 자동 생성
  • 자동완성 완벽 지원
  • Rust 기반 엔진으로 빠른 쿼리 처리

 

pnpnm i @prisma/client prisma

pnpm exec prisma init

 

prisma를 다운 받고, 명령어를 실행하면 prisma/schema.prisma 파일이 생성된다.

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

// Get a free hosted Postgres database in seconds: `npx create-db`

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

datasource db {
  provider = "mysql"
  url = env("DATABASE_URL)

}

모델을 추가해 준다.

 

Schema.prisma 파일을 수정한 뒤에는 pnpm exec prisma generate 를 실행해 줘야 한다.

( Schema.prisma는 설계도 역할, pnpm exec prisma generate 는 설계도를 바탕으로 Prisma Client를 조립하는 과정 )

 

 

Prisma Client 인스턴스가 하는 일 - 

커넥션 풀을 한 번 생성해 다른 코드 전체에서 공유하여 사용한다. (싱글톤 패턴)

export const prisma = new PrismaClient();

이를 db.config.js 파일에 추가하면 PrismaClient가 생성된 것이다.

 

Prisma 메소드 예시

await prisma.user.findFirst({ where: { id:10 } });

findFirts() - where 절에 들어가는 조건문에 해당하는 데이터 하나를 찾는다. 데이터를 찾지 못한다면 null을 반환한다.

await prisma.user.create({
  data: {
	  name: "하치",
	  email: "test@gmail.com",
	  interest:"영화"
	}
});

데이터 생성 시에는 create() 메소드를 이용한다.

 

Migrate 해보기

Prisma는 자동 마이그레이션 시스템인 Prisma Migrate를 제공한다.

  • 자동 마이그레이션 관리 - DB 변경 사항 코드로 정의하고 자동 적용
  • 버전 관리 지원 - migrations 디렉토리로 마이그레이션의 히스토리 추적 가능
  • 안전한 변경 - 데이터 손실 없이 스키마

두가지 migrate 도구를 제공한다

npm exec prisma migrate dev - 개발 과정에서 실행하는 도구

npm exec prisma migrate deploy -  운영 환경에 데이터베이스 변경 사항을 적용

 

pnpm exec prisma migrate dev

마이그레이션에 성공하면 디렉토리와 함께 파일이 생긴 것을 확인할 수 있다.

'서버' 카테고리의 다른 글

[Node] 미들웨어  (0) 2026.04.08
[Node.js] API 만들기  (0) 2026.04.08
[Node.js] 스터디 4주차. Javascript  (0) 2026.04.01
[DB] 스터디 3주차 데이터베이스 기초  (0) 2026.03.25
[Node.js] 스터디 2주. Prisma 와 Middleware  (0) 2026.03.19