100%를 한번에 바꾸는건 어려워도 1%를 100번 바꾸는건 쉽다.

생각정리 자세히보기

개발/Node.js (NestJS)

[Node.js] Prisma VS MikroORM VS Drizzle

dc-choi 2024. 11. 8. 15:02
반응형

prisma에 대해서 어느정도 학습을 해보면서 약간 아쉬운 점들이 많았습니다. 그래서 Node.js 진영의 다른 ORM은 어떻게 하고있을까? 그 궁금함에 세 ORM을 비교하며 학습해보기로 하였습니다.

 

3가지 ORM의 특징

특성 Prisma MikroORM Drizzle ORM
사용 편의성 매우 직관적이고 설정이 간단하며, 빠르게 학습할 수 있음. 관계 설정 및 모델링이 초기 구성이 Prisma에 비해 다소 복잡할 수 있음. API가 간단하고, 최소한의 설정으로 사용할 수 있도록 하여 사용자가 직접 필요한 부분을 확장
마이그레이션 관리 강력한 마이그레이션 관리 지원함. 마이그레이션 변경 사항 추적 및 자동화가 쉬움. Migration 기능이 내장되어 있으나, Prisma에 비해 설정과 관리가 복잡할 수 있음. 마이그레이션 관리 기능이 내장되어 있지 않음.
쿼리 빌딩 기본적인 CRUD 작업에 최적화되어 있으며, 자동 생성된 SQL을 사용하지만, 복잡한 쿼리에서 최적화가 어려울 수 있음. SQL 쿼리를 직접 최적화하고 커스터마이징할 수 있는 유연성이 높음. 복잡한 관계 설정에서 강점. 쿼리 빌더를 제공하지만, 기본적으로 가벼운 쿼리 작업에 적합하고 복잡한 쿼리나 관계 설정은 별도의 커스터마이징이 필요.
타입 안전성 TypeScript와의 호환성이 뛰어나고, 자동으로 타입 안전을 제공. 마찬가지. 마찬가지.
성능 다른 ORM에 비해 성능은 떨어짐. 복잡한 쿼리나 데이터 모델링에서 성능을 높이는 최적화 기능을 제공. 경량화 ORM이라서 성능이 우수
유연성 복잡한 비즈니스 로직이나 쿼리에 대해서는 유연성이 부족할 수 있음. 복잡한 비즈니스 로직 처리에 유리하며 복잡한 데이터 모델링에 강점이 있음. 경량화된 구조로 유연성을 제공
커뮤니티/지원 다양한 튜토리얼과 지원 자료가 많으며 커뮤니티가 매우 활발하고, 문서화가 잘 되어 있음. 커뮤니티가 있지만 Prisma보다는 상대적으로 작은 편이고 문서화가 잘 되어 있으나, 일부 복잡한 기능에 대해 지원이 부족할 수 있음. 상대적으로 커뮤니티와 문서가 적은 편. 지원 자료가 부족하고, 사용자가 직접 해결해야 하는 경우가 많음.

 

결론

Prisma

장점: 사용 편의성, 성능, 타입 안전성에 강점, 마이그레이션과 문서화가 매우 잘 되어 있어 빠른 개발이 가능

단점: 복잡한 관계 모델링이나 쿼리 커스터마이징에 제약, 고급 SQL 최적화에 대한 세밀한 제어가 부족

 

MikroORM

장점: 매우 유연하고, 복잡한 데이터 모델링 및 SQL 최적화에 유리, 다양한 DB 지원, 성능 최적화가 뛰어남

단점: 설정과 초기 구성이 다소 복잡하고, 문서화와 커뮤니티 지원이 부족할 수 있음

 

Drizzle ORM

장점: 매우 간단하고 가벼운 ORM이며 기본적인 CRUD 작업에 적합하고, 확장성이 뛰어남

단점: 기능이 제한적이고, 복잡한 관계 설정이나 고급 기능에 대한 지원이 부족, 지원되는 DB가 한정적

반응형