데이터베이스를 기반으로 애플리케이션을 구축할 때 마주하는 복잡성을 해결하기 위해 새로운 타입스크립트(TypeScript) API 프레임워크인 Typegres 0.3이 공개되었습니다. 이 프레임워크는 개발자가 PostgreSQL(포스트그레스) 데이터베이스를 타입스크립트 클래스로 정의하고, 이를 통해 데이터 모델의 경계를 설정한 후, 안전하게 RPC(원격 프로시저 호출) API로 노출할 수 있도록 돕습니다. 이는 특히 대규모 데이터베이스 애플리케이션 개발 시 스키마 변경에 따른 클라이언트 코드의 파급 효과를 최소화하는 데 중점을 둡니다.
Typegres는 세 가지 핵심 단계로 작동합니다. 첫째, 데이터베이스 테이블을 타입스크립트 클래스로 래핑하여 안정적인 공개 인터페이스를 만듭니다. 이를 통해 내부 스키마를 리팩토링하더라도 클라이언트가 사용하는 API는 그대로 유지될 수 있습니다. 둘째, 이 클래스에 메서드를 추가하여 데이터 경계와 허용된 작업을 정의합니다. 관계형 데이터베이스의 테이블에 객체 지향 프로그래밍의 캡슐화(encapsulation) 개념을 적용하여, 특정 데이터를 가져오거나 업데이트하는 방식을 엄격하게 제어할 수 있습니다. 셋째, Cap'n Web RPC를 통해 이 인터페이스를 클라이언트에 노출하여, 클라이언트가 정의된 경계 내에서 필요한 쿼리를 직접 구성하고 실행할 수 있도록 합니다. 이는 GraphQL(그래프큐엘)이나 REST(레스트) API와 달리, 클라이언트가 서버에 새로운 엔드포인트(endpoint)를 요청하지 않고도 다양한 쿼리를 유연하게 작성할 수 있다는 장점이 있습니다.
Typegres는 기존의 Hasura(하수라)나 PostgREST(포스트그레스트) 같은 API 프레임워크와는 다르게 스키마와 인터페이스의 결합도를 낮춰 안전한 스키마 진화를 가능하게 합니다. 또한, Prisma(프리즈마)나 Drizzle(드리즐) 같은 ORM(객체 관계 매핑) 도구들이 주로 로컬 개발 환경에 초점을 맞추는 것과 달리, Typegres는 데이터베이스를 RPC를 통해 외부에 노출하는 API 레이어로서의 역할을 강조합니다. 이는 복잡한 데이터 모델을 가진 애플리케이션을 구축하는 스타트업이나 개발팀에게 데이터베이스 관리의 복잡성을 줄이고, 개발 생산성을 높이는 새로운 접근 방식을 제공할 수 있습니다. 현재 Typegres는 1.0 버전 이전으로, 프로덕션 환경에는 아직 권장되지 않지만, 개발자들은 Playground에서 직접 체험해 볼 수 있습니다.