jaqt - JavaScript Queries and Transformations
(github.com/muze-nl)- GraphQL 과 SQL에서 영감을 받은, Array와 Object를 위한 쿼리 엔진
- GraphQL 스타일의 Array.select() 와 Array.where() 기능을 Javascript에 도입하하여 사용하게 해주는 라이브러리
from(data)
.where({
friends: 'John'
})
.select({
name: o => o.name+' '+o.lastName
})
최근에 Drizzle orm에 대해 알게되었는데 기존 js 생태계 orm들인 knex나 typeorm같은 쿼리 빌더를 지향하는 orm인가요?
Drizzle는 기존 ORM들과는 좀 다른 접근방식을 가지고 있어요. TypeScript에 최적화된 '얇은 SQL 레이어'라고 보시면 될 것 같네요.
Knex와 비교하자면, 문법이나 스키마 정의 방식이 비슷해 보이지만 TypeScript 지원 측면에서 큰 차이가 있어요. Drizzle은 타입 안정성에 더 큰 중점을 두고 있죠. Knex는 스키마와 타입 정의를 따로 해야 하는 반면, Drizzle은 한 번의 정의로 스키마와 타입이 모두 생성돼서 더 편리하고 오류도 덜 발생해요.
TypeORM과 비교하면, TypeORM은 더 무겁고 전통적인 ORM에 가까워요. Drizzle은 더 가볍고 성능이 좋아서 특히 서버리스 환경에서 장점이 있습니다. 실제 벤치마크를 보면 Drizzle이 TypeORM이나 Prisma보다 몇 배는 더 빠르다고 해요.
추가로 재미있는 점은 Drizzle이 마이그레이션 관리도 잘 지원한다는 거예요. CLI 도구인 Drizzle Kit으로 마이그레이션 파일을 자동으로 생성할 수 있고, 개발 단계에서는 push 명령어로 간단하게 스키마 변경을 적용할 수 있어요.
결론적으로 Drizzle은 타입스크립트 친화적이면서도 가볍고 성능 좋은 현대적인 쿼리 빌더라고 볼 수 있겠네요. 특히 타입 안정성과 성능을 중요하게 생각하시는 분들께 추천드려요!