[nodejs] Prisma를 사용한 데이터베이스 연동

Prisma는 Node.js 애플리케이션에서 강력한 데이터베이스 연동을 제공하는 도구입니다. Prisma를 사용하면 ORM(Object-Relational Mapping)을 통해 데이터베이스 스키마에 접근할 수 있고, JavaScript 또는 TypeScript로 쿼리를 작성할 수 있습니다.

이번 튜토리얼에서는 Prisma를 사용하여 데이터베이스를 연결하고 간단한 쿼리를 실행하는 방법을 살펴보겠습니다.

Prisma 설치

먼저, 프로젝트 디렉토리에서 Prisma CLI를 사용하여 Prisma를 설치합니다. 아래 명령어로 Prisma CLI를 설치합니다.

npm install @prisma/cli --save-dev

데이터 모델 정의

다음 단계는 데이터 모델을 정의하는 것입니다. schema.prisma 파일을 생성하고 데이터 모델을 정의합니다.

// schema.prisma

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

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

위의 예시는 PostgreSQL 데이터베이스에 User 모델을 정의하는 예시입니다.

Prisma 클라이언트 생성

이제 Prisma 클라이언트를 생성하고 사용할 수 있도록 schema.prisma 파일을 기반으로 Prisma 클라이언트를 생성합니다.

npx prisma generate

위 명령어를 실행하면 Prisma 클라이언트가 자동으로 생성됩니다.

데이터베이스 연결 및 쿼리 실행

Prisma를 사용하여 데이터베이스에 연결하고 간단한 쿼리를 실행해보겠습니다.

// index.js

const { PrismaClient } = require('@prisma/client');

const prisma = new PrismaClient();

async function main() {
  // 새로운 유저 생성
  const newUser = await prisma.user.create({
    data: {
      name: 'John Doe',
      email: 'john@example.com',
    },
  });

  // 생성된 모든 유저 가져오기
  const allUsers = await prisma.user.findMany();
  console.log(allUsers);

  // 특정 유저 가져오기
  const user = await prisma.user.findUnique({
    where: {
      id: newUser.id,
    },
  });
  console.log(user);
}

main()
  .catch((e) => {
    throw e;
  })
  .finally(async () => {
    await prisma.$disconnect();
  });

위의 예시 코드에서 PrismaClient를 생성하고, user 모델을 사용하여 데이터를 생성하고 조회하는 방법을 보여줍니다.

이렇게 Prisma를 사용하여 데이터베이스 연동을 할 수 있습니다. Prisma는 탄력적이고 강력한 데이터베이스 연동 도구로, Node.js 애플리케이션에서 데이터베이스와의 상호작용을 쉽게 할 수 있도록 도와줍니다.

더 자세한 내용은 Prisma 공식 문서를 참조하세요.