Drizzle - ORM

Hunter Joe·2025년 2월 12일
0

중요!

아래 본문은 참고자료를 chat gpt를 통해 번역 + 정리한 글 입니다.
보다 정확한 정보는 공식문서와 참고자료 링크를 통해 확인부탁드립니다.

Drizzle vs Prisma: 2024년 최고의 TypeScript ORM 선택 가이드

웹 개발자로서 SQL 데이터베이스를 다룬다면, TypeScript ORM 도구에 대해 들어본 적이 있을 것입니다. TypeScript ORM 도구는 TypeScript를 사용하여 SQL 쿼리를 타입 안전하고 표현력 있게 작성할 수 있도록 도와주는 라이브러리입니다. 이를 활용하면 코드의 가독성이 향상되고, 오류를 방지하며, 개발 생산성을 높일 수 있습니다.

하지만 2024년에는 어떤 TypeScript ORM을 선택하는 것이 가장 좋을까요? 현재 가장 인기 있는 ORM으로 Drizzle ORMPrisma ORM이 있습니다. 두 도구 모두 강력하고 현대적인 ORM이지만, 설계 방식, 기능, 성능 등에서 차이가 있어 프로젝트에 따라 더 적합한 도구가 달라질 수 있습니다.

이 글에서는 Drizzle과 Prisma를 기능, 성능, 호환성 측면에서 비교하고, 간단함, 유연성, 미래 전망까지 평가하여 어떤 ORM이 2024년에 더 빠르고 간단하며 유연한지를 분석해보겠습니다.


Drizzle vs Prisma 비교: 기능, 성능, 호환성

1. 기능 비교

Drizzle과 Prisma는 모두 다음과 같은 기능을 제공합니다.

  • 다양한 데이터베이스 및 플랫폼 지원
    PostgreSQL, MySQL, SQLite 등을 지원하며, Node.js 및 Deno 환경에서 실행할 수 있습니다. (Prisma는 현재 Deno를 지원하지 않지만, 향후 지원할 예정)

  • Zod 통합 지원
    TypeScript 스키마 검증 라이브러리인 Zod와 통합되어 타입 안전성과 데이터 검증 기능을 제공합니다.

  • 체이닝(Chaining) 방식의 쿼리 빌더 제공
    select, where, join, orderBy, limit, offset 등의 메서드를 사용하여 가독성이 좋은 쿼리를 작성할 수 있습니다.

  • 다양한 쿼리 타입 지원
    Raw Query, 파라미터 쿼리, Prepared Statements, 트랜잭션, 배치 작업 등을 지원하여 유연한 데이터 조회가 가능합니다.

그러나 Drizzle과 Prisma는 다음과 같은 차이점이 있습니다.

Drizzle ORMPrisma ORM
타입 시스템스키마에서 타입을 추론하여 SQL과 유사한 TypeScript API 제공스키마 기반으로 TypeScript API를 자동 생성
JOIN 쿼리 방식서브쿼리를 사용하여 관련 데이터를 한 번의 쿼리로 가져옴추가 쿼리를 실행하여 관련 데이터를 가져옴
훅(Hook) 및 이벤트 지원beforeCreate, afterUpdate 등의 훅 및 onQueryStart, onQueryError 등의 이벤트 지원현재 지원하지 않음 (향후 추가 예정)

2. 성능 비교

Drizzle과 Prisma는 모두 성능 최적화를 지원하지만, 환경에 따라 성능 차이가 발생할 수 있습니다.

번들 크기 및 메모리 사용량 비교

서버리스 환경(AWS Lambda, Cloud Functions 등)에서는 ORM의 번들 크기와 메모리 사용량이 성능에 영향을 줄 수 있습니다. Drizzle이 Prisma보다 더 가벼운 구조를 가지고 있어 서버리스 환경에서 유리할 수 있습니다.

Drizzle ORMPrisma ORM
번들 크기1.5MB6.5MB
메모리 사용량약 30MB약 80MB

쿼리 속도 비교

  • 단순 쿼리(단일 행 조회/삽입): Drizzle과 Prisma의 성능이 거의 비슷함
  • 복잡한 쿼리(다중 행 및 관계형 데이터 조회/삽입): Drizzle이 더 빠른 성능을 보임

이 결과는 Drizzle이 JOIN 및 복잡한 쿼리에서 더 높은 성능을 제공한다는 점을 보여줍니다.


3. 호환성 비교

Drizzle ORMPrisma ORM
지원 플랫폼Node.js, DenoNode.js (Deno 지원 예정)
지원 데이터베이스PostgreSQL, MySQL, SQLitePostgreSQL, MySQL, SQLite, SQL Server, MongoDB, CockroachDB
다른 도구와의 통합Zod 통합Zod, Next.js, NestJS, Apollo Server, Jest, Pino 등과 통합

Prisma는 지원하는 데이터베이스와 연동 가능한 프레임워크가 더 많아 확장성과 호환성이 뛰어납니다.
반면, Drizzle은 Deno 환경에서도 실행 가능하다는 장점이 있습니다.


Drizzle vs Prisma 평가: 단순성, 유연성, 미래 전망

1. 단순성

  • Drizzle: SQL과 유사한 직관적인 문법을 사용하여 학습 곡선이 낮음
  • Prisma: 추상화된 API를 제공하지만, SQL을 잘 모르는 개발자에게는 오히려 편할 수 있음

📌 SQL 경험이 많은 개발자라면 Drizzle이 더 쉬울 가능성이 큼
📌 문서화 측면에서는 Prisma가 더 풍부한 자료를 제공하여 학습에 유리함


2. 유연성

  • Drizzle: SQL과 유사한 문법을 제공하며, 훅과 이벤트를 지원하여 커스텀 동작 구현 가능
  • Prisma: 쿼리 빌더가 추상화되어 있어 세밀한 SQL 조작이 어려울 수 있음

📌 복잡한 SQL 조작이 필요한 프로젝트라면 Drizzle이 유리함
📌 다양한 프레임워크와의 통합이 중요하다면 Prisma가 더 적합함


3. 미래 전망

Drizzle ORMPrisma ORM
성장 속도신생 ORM이지만 빠르게 발전 중성숙한 ORM으로 지속적인 개선 진행 중
로드맵더 많은 데이터베이스 및 기능 추가 예정Deno 지원, 데이터 액세스 플랫폼으로 발전 예정
커뮤니티상대적으로 작지만 활발한 참여대규모 개발자 커뮤니티와 강력한 지원

📌 Prisma는 이미 많은 기업에서 사용하고 있으며, 장기적인 안정성이 높음
📌 Drizzle은 최신 기술을 반영하여 경량성과 성능 면에서 빠르게 발전 중


결론: 어떤 ORM을 선택해야 할까?

Drizzle을 선택해야 하는 경우

  • SQL 친숙도가 높아 SQL-like 문법이 편리한 경우
  • 서버리스 환경에서 가벼운 ORM이 필요한 경우
  • 세밀한 SQL 튜닝과 쿼리 최적화가 중요한 경우
  • ORM의 후킹 기능을 활용하여 커스텀 동작을 구현해야 하는 경우

Prisma를 선택해야 하는 경우

  • 직관적인 API와 강력한 문서화를 원하는 경우
  • 다양한 프레임워크 및 데이터베이스와의 통합이 중요한 경우
  • 추상화된 ORM을 활용하여 생산성을 극대화하고 싶은 경우
  • 장기적인 프로젝트에서 안정성을 고려하는 경우

내 결론


이번 프로젝트에서 진행(배포)까지 할 예정이기 때문에 굳이 무거운 Prisma보다는 Drizzle을 사용할 예정
그리고 PostgreSQL + Zod 사용할거라서 호환성 좋고 타입 안정성 좋은 Drizzle이 적합하다고 생각함

참고자료

https://www.techloset.com/blog/typescript-orm-tools-drizzle-vs-prisma-2023

profile
Async FE 취업 준비중.. Await .. (취업완료 대기중) ..

0개의 댓글