개발자들이 API 개발 과정에서 프런트엔드와 백엔드 간의 의존성을 줄이고 효율성을 높일 수 있는 새로운 도구 'Crudio'가 등장했습니다. Crudio는 OpenAPI 3.x 스펙(Specification)만 있으면 상태를 유지하고 스키마 유효성 검사까지 수행하는 목(Mock) 백엔드를 자동으로 생성해줍니다. 이를 통해 프런트엔드 개발자들은 실제 백엔드가 완성되기 전에도 실제와 유사하게 동작하는 환경에서 개발 및 테스트를 진행할 수 있게 됩니다.
Crudio의 핵심은 기존 목 서버들이 가진 한계를 극복했다는 점입니다. 예를 들어, Prism 같은 도구는 스펙 기반 목을 제공하지만 상태를 유지하지 못해 매번 동일한 응답만 반환합니다. 반면, json-server 같은 도구는 상태 유지가 가능하지만 스펙 기반이 아니어서 스키마 유효성 검사를 지원하지 않습니다. Crudio는 이 두 가지 장점을 모두 결합하여, OpenAPI 스펙에 정의된 CRUD(Create, Read, Update, Delete) 엔드포인트가 실제 백엔드처럼 동작하며 데이터가 호출 간에 지속(persisted)되고, 스키마에 맞지 않는 요청은 자동으로 거부됩니다. 예를 들어, `npx @enricodeleo/crudio ./openapi.yaml --seed 3` 명령 하나로 스펙에 따라 초기 데이터를 생성하고, 이후 POST 요청으로 데이터를 추가하면 해당 데이터가 저장되고 다음 GET 요청 시 반영되는 식입니다. 데이터는 별도의 데이터베이스 없이 JSON 파일로 저장됩니다.
이러한 Crudio의 등장은 프런트엔드 개발, 통합 테스트, API 프로토타이핑, 계약 검증 등 다양한 개발 단계에서 큰 의미를 가집니다. 개발 초기 단계부터 실제와 유사한 백엔드 환경을 구축함으로써, 프런트엔드 개발자는 백엔드 개발 완료를 기다릴 필요 없이 독립적으로 작업을 진행할 수 있습니다. 또한, 유효성 검사 기능을 통해 API 계약(contract)이 제대로 지켜지는지 쉽게 확인할 수 있어, 개발 과정에서 발생할 수 있는 오류를 줄이고 전반적인 개발 생산성을 향상시킬 수 있습니다. 다만, Crudio는 실제 프로덕션 백엔드나 부하 테스트, 복잡한 비즈니스 로직이 필요한 경우에는 적합하지 않으며, 어디까지나 개발 및 테스트를 위한 목적으로 활용되어야 합니다.