Prisma란?
ORM(Object Relational Mapping)으로 써
객체와 데이터베이스의 관계를 연결해주는 도구이다.
Prisma와 같은 ORM은 관계형 데이터베이스를 사용할 수 있다.
전에 배웠던 Mongoose는 ODM으로써 객체를 Document와 연결하는 것으로
ORM과 차이가 나타난다
mongoose는 mongoDB밖에 사용을 못하지만
Prisma는 여러 관계형 데이터베이스를 사용할 수 있다
기존 mongoose에서 스키마 설정으로 콜렉션에 속성을 설정했다면
Prisma는 Model로 테이블의 속성을 설정할 수 있다.
ORM의 장단점
장점 1번째 프로덕션에서 사용하는 데이터베이스가 언제 바뀔지 알 수 없다
기존에 MySQL을 사용했는데 어떠한 이유로 Oracle이나 다른 RDBM으로 변경할 때
ORM의 속성으로 데이터베이스를 구성했다면 자유롭게 DB를 변경할 수 있다.
2번째 데이터베이스에서 사용하는 DB또는 Table 속성이 변경되었을 때 빠르게 수정이 가능하다
ORM을 사용한다면 테이블을 나타내는 Prisma의 model을 수정하기만 하면 수많은 API에서
Raw Query를 수정하지 않아도 쉽게 DB를 수정할 수 있다.
단점
JOIN과 UNION 연산자를 동시에 사용하는 복잡한 쿼리를 작성할 경우
SQL보다 ORM을 더 깊게 이해해야하는 배보다 배꼽이 큰 상황이 발생할 수 있다.
또 서브쿼리를 포함하는 복잡한 쿼리를 작성하거나 ORM의 SQL로 변환해 주는
시간조차 아까운 극한의 성능을 요구하는 쿼리가 필요한다면 ORM보다
Row Query를 사용하는 것이 더 낫다.
'Node.js' 카테고리의 다른 글
put과 patch의 차이 (0) | 2024.05.31 |
---|---|
트랜잭션 (0) | 2024.05.29 |
JWT (0) | 2024.05.27 |
[TIL] 관계형 데이터베이스와 비관계형 데이터베이스 (0) | 2024.05.20 |
[TIL] 미들웨어 Middleware 개념 (0) | 2024.05.14 |