자바(Java) 기반 프레임워크 개발자가 타입스크립트(TypeScript) 환경에서 복잡한 SQL 쿼리 작성의 어려움을 해결하기 위해 'SQLBraid'라는 새로운 라이브러리를 공개했습니다. 기존 ORM(객체 관계 매핑)이나 쿼리 빌더가 복잡한 동적 SQL(Dynamic SQL)을 다루는 데 한계가 있다는 문제의식에서 출발했으며, SQL을 있는 그대로 사용하면서도 타입 안정성과 개발 편의성을 제공하는 것을 목표로 합니다.
SQLBraid는 마이바티스(MyBatis)와 유사하게 태그드 템플릿(Tagged Template) 리터럴을 활용해 SQL 쿼리를 작성하며, 동적 SQL 처리를 위한 예약어(예: /*@braid if*/)를 지원합니다. 이를 통해 CTE(Common Table Expression), EXISTS 절, 복잡한 함수 호출 등 일반적인 쿼리 빌더로는 한 번에 생성하기 어려운 복잡한 쿼리도 하나의 SQL 문으로 작성할 수 있습니다. 또한, PostgreSQL, MySQL, Oracle 등 주요 관계형 데이터베이스와 다양한 노드(Node.js) 계열 드라이버를 지원하며, 드라이버별 인터페이스 및 트랜잭션 관리 추상화를 통해 개발자가 여러 데이터베이스 환경에서 일관된 방식으로 작업할 수 있도록 돕습니다.
이 라이브러리는 SQL-퍼스트(SQL-first) 접근 방식을 선호하는 개발자들에게 특히 유용할 것으로 보입니다. ORM이 데이터베이스별 차이를 추상화하고, 쿼리 빌더가 타입 안전성을 제공하는 반면, SQLBraid는 데이터베이스의 모든 기능을 100% 활용하면서도 타입 안전하게 쿼리를 작성할 수 있는 '스윗스팟'을 노립니다. 이는 복잡한 비즈니스 로직이 SQL에 많이 포함되는 엔터프라이즈 환경이나, 데이터베이스 성능 최적화가 중요한 프로젝트에서 개발 생산성과 유지보수성을 동시에 향상시킬 수 있는 대안이 될 수 있습니다.