Bun-sqlgen: ORM 없이 Bun을 위한 타입 안전한 raw SQL

Bun-sqlgen: ORM 없이 Bun을 위한 타입 안전한 raw SQL

Bun-sqlgen 개요

Bun-sqlgen은 Bun 런타임을 위한 타입 안전한 raw SQL을 제공하도록 설계된 도구입니다. 개발자가 전체 Object-Relational Mapper (ORM)의 오버헤드와 추상화 계층을 피하면서 결과 집합이 올바르게 타입 지정되도록 보장하며 raw SQL 쿼리를 실행할 수 있게 해줍니다.

주요 기능 및 목표

Bun-sqlgen의 주요 목표는 raw SQL과 TypeScript 자체의 타입 안전성 사이의 간극을 메우는 것입니다. 개발자가 작성한 것과 동일한 SQL 쿼리를 기반으로 타입을 생성하여, 입력 매개변수와 출력 행이 SQL 데이터베이스 스키마에 따라 올바르게 타입 지정되도록 보장합니다.

작동 방식

Bun-sqlgen은 raw SQL 쿼리로부터 TypeScript 타입을 생성하는 메커니즘을 제공합니다. SQL을 분석하여, 도구는 해당 쿼리의 결과 집합을 나타내는 상응하는 TypeScript 인터페이스 또는 타입을 생성합니다. 이 접근 방식은 개발자가 복잡한 조인(join), 윈도우 함수(window functions), 그리고 특정 데이터베이스 엔진의 고유한 기능과 같은 raw SQL의 모든 강력한 기능을 유지하면서도, ORM이 제공하는 것과 동일한 수준의 타입 안전성을 얻을 수 있게 합니다.

ORM과의 비교

전통적인 ORM과 달리, Bun-sqlgen은 완전한 추상화 계층이 아닙니다. 정의된 모델에서 객체와 테이블 간의 관계를 관리하지 않습니다. 대신, SQL 쿼리 자체의 출력에 집중합니다. 이를 통해 개발자가 동일한 수준의 타입 안전성과 도구가 생성하는 SQL에 대한 제어 수준 사이에서 하나를 선택해야만 하는 일반적인 트레이드오프를 제거합니다.

프로젝트 상태 및 가용성

Bun-sqlgen은 GitHub에서 오픈 소스 프로젝트로 제공됩니다. 개발자는 전체 ORM을 채택하지 않고도 Bun 런타임 환경에 이를 통합하여 타입 안전한 데이터베이스 상호작용을 구현할 수 있습니다.

Sources