타입스크립트(TypeScript) 기반의 새로운 백엔드 프레임워크 '푸제르(Fougere)'가 알파 버전으로 공개되어 개발자들의 주목을 받고 있습니다. 푸제르는 비즈니스 로직을 애플리케이션의 핵심으로 삼아, 한 번의 정의로 유효성 검사(validation), REST 및 GraphQL API, 그리고 데이터베이스 테이블 스키마까지 자동으로 파생시키는 혁신적인 접근 방식을 제안합니다. 이는 개발자가 반복적인 작업을 줄이고 핵심 비즈니스 로직에 집중할 수 있도록 돕습니다.
푸제르의 가장 큰 특징은 '도메인 우선(Domain-first)' 개발 철학입니다. 개발자는 '엔티티(entity)' 클래스를 통해 비즈니스 객체를 선언하며, 여기에는 데이터 타입, 유효성 규칙, 관계 등이 포함됩니다. 예를 들어, 'Post' 엔티티를 정의하면 제목(title)의 최소/최대 길이, 본문(body)의 선택 여부, 작성자(authorId) 참조, 생성일(createdAt) 및 상태(status) 같은 필드들이 한 곳에서 관리됩니다. 이 선언으로부터 SQL 테이블, 유효성 검사기, GraphQL 타입, 폼 계약(form contract) 등이 자동으로 생성되므로, 각 요소들이 서로 불일치할 가능성을 원천적으로 차단합니다. 또한, 'readOnly'와 같은 속성을 통해 클라이언트가 특정 필드를 직접 수정할 수 없도록 강제하여 보안을 강화하고 비즈니스 규칙을 명확히 합니다.
푸제르는 코드 생성(codegen) 단계나 별도의 워처(watcher) 없이 선언 자체가 아티팩트(artefact)가 되는 방식을 채택합니다. 이는 개발 프로세스를 간소화하고, 변경 사항이 발생했을 때 관련된 모든 요소가 자동으로 업데이트되도록 합니다. 특히, 이 프레임워크는 대규모 언어모델(LLM)인 클로드(Claude)의 도움을 받아 개발되었다는 점이 흥미롭습니다. 개발자는 푸제르를 기존 애플리케이션에 부분적으로 통합하여 특정 도메인에 대한 유효성 검사 기능만 활용하거나, 전체 백엔드 프레임워크로 독립적으로 사용할 수 있습니다. 또한, '프론드(Frond)'라는 개념을 통해 애플리케이션을 여러 도메인으로 분리하고, 각 도메인이 독립적인 프로세스나 다른 언어(예: Rust)로 실행될 수 있도록 지원하여 마이크로서비스 아키텍처 구현에도 용이합니다.
이러한 푸제르의 등장은 백엔드 개발 생산성을 획기적으로 향상시킬 잠재력을 가지고 있습니다. 비즈니스 로직을 중심으로 모든 것을 파생시키는 방식은 개발자가 반복적인 보일러플레이트(boilerplate) 코드를 작성하는 시간을 줄여주고, 일관성 있는 시스템을 구축하는 데 기여합니다. 특히, AI의 도움을 받아 프레임워크를 개발했다는 점은 미래 소프트웨어 개발 방식에 대한 새로운 가능성을 제시합니다. 개발자는 푸제르를 통해 더 적은 노력으로 견고하고 확장 가능한 백엔드 시스템을 구축할 수 있을 것으로 기대됩니다.