본문 바로가기
내일배움 정리/JS 문법 공부

프리마(정리하기)

by GREEN나무 2024. 12. 5.
728x90

프리마(Prisma)는 JavaScript 및 TypeScript 애플리케이션에서 데이터베이스와 상호작용하는 강력한 ORM(Object-Relational Mapping) 도구입니다. 프리마를 JavaScript에서 사용하는 기본적인 코드 작성 과정을 아래와 같이 설명할게요.


1. Prisma 설치

먼저 프로젝트에서 Prisma를 설치해야 합니다.

npm install prisma --save-dev
npm install @prisma/client

2. Prisma 초기화

Prisma를 초기화하면 prisma/schema.prisma 파일이 생성됩니다.

npx prisma init

이 명령은 prisma 디렉토리와 함께 기본 구성 파일을 만듭니다. schema.prisma에서 데이터베이스를 설정할 수 있습니다.

예를 들어, SQLite를 사용할 경우:

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

datasource db {
  provider = "sqlite"
  url      = "file:./dev.db"
}

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

3. Prisma Client 생성

스키마 변경사항을 반영하려면 Prisma Client를 생성해야 합니다.

npx prisma generate

4. 마이그레이션 적용

마이그레이션을 통해 데이터베이스에 테이블 구조를 반영합니다.

npx prisma migrate dev --name init

5. Prisma Client 사용

Prisma Client를 사용해 데이터베이스와 상호작용합니다.

예제: 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.doe@example.com',
    },
  });
  console.log('Created user:', newUser);

  // 사용자 목록 가져오기
  const allUsers = await prisma.user.findMany();
  console.log('All users:', allUsers);
}

main()
  .catch((e) => {
    console.error(e);
    process.exit(1);
  })
  .finally(async () => {
    await prisma.$disconnect();
  });

6. Prisma Client 쿼리 사용 예제

1) 데이터 삽입

await prisma.user.create({
  data: {
    name: 'Alice',
    email: 'alice@example.com',
  },
});

2) 데이터 조회

const users = await prisma.user.findMany();
console.log(users);

3) 데이터 업데이트

await prisma.user.update({
  where: { email: 'alice@example.com' },
  data: { name: 'Alice Wonderland' },
});

4) 데이터 삭제

await prisma.user.delete({
  where: { email: 'alice@example.com' },
});

이 과정을 통해 JavaScript 애플리케이션에서 Prisma를 효과적으로 사용할 수 있습니다. 필요에 따라 Prisma 스키마와 쿼리를 확장해 보세요!


Q1. Prisma와 TypeScript를 함께 사용할 때 어떤 장점이 있을까요?

Q2. Prisma Client에서 트랜잭션 처리 방식은 어떻게 구현할 수 있을까요?

Q3. Prisma와 함께 사용할 수 있는 다른 데이터베이스는 어떤 것이 있는지 알아보고, 프로젝트에 적합한 데이터베이스를 선택해보세요.