Node.js

[TIL] ORM 과 Prisma

무녀누 2024. 5. 24. 17:14

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