카테고리 없음
2024-06-16 TIL ( Prisma )
suwon
2024. 6. 17. 19:04
이번 팀 심화프로젝트에서 Prisma를 사용하려고 합니다.
그러기 위해서는 Prisma의 장단점이나, 대체 Prisma를 사용하는 이유가 무엇인가?
사용하는이유
1. 근본적으로 ORM과 다른 작동방식
기존의 ORM은 DB의 테이블과 코드 내의 클래스를 매핑하여 사용하는 반면, Prisma는 schema.prisma 파일에서 생성한 model이 유일한 source of truth이기 때문에 Data Mapper 패턴에서 메모리상의 객체와 DB의 결합이 풀리고 데이터 전송을 Data Mapper가 전담하게 된다.
이 과정에서 Entity class, Mapper class 두 개의 클래스가 관여하게 된다
- Entity class: Application의 메모리상에 존재하는 객체로 DB와는 연관이 없다
- Mapper class: DB-메모리상의 객체 사이에서 쿼리를 생성하고 데이터를 전송한다
Prisma는 다른 ORM들과 달리 DB와 model 사이에 mismatch가 없고 동기화 문제로 부터 자유로우며 개발자는 SQL이 아닌 데이터와 프로그램에 더 집중할 수 있도록 해준다.
사용법에서 사실 획기적인 차이는 느껴지지 않는다. Prisma와 기존의 ORM의 가장 큰 차이는 사용법보다는 개념적인 부분과 작동 방식에 있는 듯 하다. 단순히 사용만 해보면 차이를 잘 체감하지 못할 수 있으나 DB와 Application의 연동의 주체가 Application이 되고 매핑된 테이블의 칼럼을 찾아가는 방식이 아닌 데이터의 Application이 가지는 방식이라는 차이가 설계에 있어서 매우 중요한 요소가 될 것 같다