100초 안에 Elysia
Source: Dev.to
Overview
ElysiaJS는 Bun 런타임에서 실행되는 고성능, 정적 타입 웹 프레임워크입니다. Express보다 훨씬 빠른 것으로 알려져 있으며, 원시 속도를 유지하면서 개발자 친화적인 API를 제공하는 것을 목표로 합니다.
Features
- Speed – Bun의 Just‑In‑Time 컴파일러를 활용해 마이크로초 수준의 시작 시간을 제공합니다.
- Type safety – TypeBox를 사용해 런타임 성능 저하나 방대한 보일러플레이트 없이 엔드‑투‑엔드 타입 안전성을 제공합니다.
- Fluent API – 체이닝 가능한 문법(
.get(),.post()등)으로 라우트를 정의하며, 반환되는 일반 객체는 자동으로 JSON으로 직렬화됩니다. - Schema validation –
t변수를 통해 스키마 객체를 첨부하여 런타임에 들어오는 데이터를 검증하고, IDE 자동 완성을 위한 TypeScript 타입을 추론합니다. - Eden Treaty – 프론트엔드가 백엔드 타입 정의를 직접 가져올 수 있게 하여, 클라이언트 측 API 호출에 대한 완전한 자동 완성을 제공합니다.
- Minimal decorators – NestJS와 달리 Elysia는 라우트를 정의하기 위해 복잡한 데코레이터 사용을 요구하지 않습니다.
Getting Started
-
Install Bun (아직 설치하지 않았다면).
-
Create a TypeScript file (예:
app.ts). -
Initialize the app:
import { Elysia, t } from "elysia"; const app = new Elysia(); -
Define a route using the fluent API:
app.get("/", () => { return { message: "Hello, Elysia!" }; }); -
Add schema validation (선택 사항이지만 권장):
app.get( "/user/:id", { params: t.Object({ id: t.String(), }), }, ({ params }) => { // `params.id`는 문자열임이 보장됩니다 return { userId: params.id }; } ); -
Run the server:
bun run app.ts서버가 마이크로초 안에 시작되어 요청을 처리할 준비가 됩니다.
Summary
ElysiaJS는 Bun의 속도와 견고한 타입 안전성, 간결한 체이닝 API를 결합하여 Express나 NestJS와 같은 전통적인 Node.js 프레임워크에 대한 매력적인 대안을 제공합니다. 내장된 스키마 검증과 Eden Treaty는 백엔드와 프론트엔드 타입 정의를 동기화함으로써 풀스택 개발을 더욱 효율적으로 만들어 줍니다.