Prisma

ayboori·2024년 11월 26일

Nest.js

목록 보기
2/11

ORM

https://f-lab.kr/insight/understanding-orm

객체와 관계형 데이터베이스의 데이터 (테이블)를 매핑하는 것
SQL 쿼리 없이 데이터를 데이터베이스에 저장, 관리 가능

  • 성능이 중요한 애플리케이션에서는 수동으로 작성한 쿼리보다 비효율적일 수 있다.
  • 복잡한 쿼리, 최적화가 필요할 경우 직접 장성하는 것이 효과적일 수 있다.
  • 객체 모델 - 데이터베이스 모델 간의 불일치 문제를 고려해야 한다.

JPA

https://victorydntmd.tistory.com/195
https://innovation123.tistory.com/173

자바 ORM 기술에 대한 API 표준 명세
ORM을 사용하기 위한 인터페이스를 모아둔 것
자바에서는 JPA가 ORM의 역할을 한다.

지금까지 사용했던 것은 JPA의 구현체 중 하나인 Hibernate의 기능을 개발자가 사용하기 편하도록 모듈화한 Spring Data JPA

Prisma

https://velog.io/@yhko1992/prisma-란-무엇인가

ORM으로, 객체를 schema로 정의한다음 그 객체와 내가 선택한 데이터 베이스를 연결시켜주는 매개체

NodeJS 프로젝트에 설치

https://velog.io/@dnjsdn96/Prisma-설치하기

  1. Prisma 의존성 추가
  2. dotenv 의존성 추가 (dbConnection 설정 시 db 서버의 url을 숨기기 위한 과정)
  3. prisma 초기화 >> schema.prisma 파일 생성
  4. dotenv 파일 생성
  5. schema.prisma 작성

    프로그램에 맞는 DBMS에 맞게 변경
    url은 dotenv에서 작성한 변수명 사용 혹은 dotenv 사용하지 않을 시 데이터베이스의 url 설정

.env 파일을 활용하여 DATABASE_URL 사용하지 않아도 된다.

+) 이미 사용 중인 DB의 테이블을 사용해야 할 경우 DB에서 스키마를 가져와 schema를 작성할 수 있다.

data 다루기

https://velog.io/@jinybear/TIL-4.-prisma-설치-및-node.js와-연동
https://supersfel.tistory.com/entry/프리즈마-prisma-사용
https://www.prisma.io/docs/orm/reference/prisma-client-reference

prisma client 의존성 추가

migrate

https://velog.io/@wndbsgkr/Prisma에서-마이그레이션-수행하는-방법feat.-NestJS

Prisma Schema, DB Schema를 동일하게 가져가는 작업을 수행할 수 있도록 돕는다.

  1. prisma.schema 파일을 수정하여 모델을 수정한다.
  2. 마이그레이션 파일 (기존 DB의 Schema, Prisma Schema를 비교하여 변경 사항을 DB에 적용할 수 있게 작성된 파일) 생성, 마이그레이션 진행

    npx prisma migrate dev

Alter문 등이 수행되어 데이터 업데이트가 진행된다.
바로 적용하고 싶지 않다면 명령어를 아래와 같이 작성한다.

npx prisma migrate dev --create-only --name '생성할 마이그레이션 파일 이름'

  1. 생성된 마이그레이션 파일 확인
    prisma/migrations

기존 작성된 데이터를 수정해야 하는 경우가 있을 경우 SQL을 추가로 작성한다.

  1. 마이그레이션 파일 DB에 적용

    npx prisma migrate dev

쿼리 성능 분석

Prisma Studio

데이터베이스 탐색, 데이터 수정, 모델 구조 파악

쿼리 로그 확인

nest start --debug --watch

쿼리 성능 분석

메모리 사용량

++) 전체적으로 잘 정리된 글

https://www.elancer.co.kr/blog/detail/294

profile
프로 개발자가 되기 위해 뚜벅뚜벅.. 뚜벅초

0개의 댓글