Elysia: Bun을 위한 인체 공학적 웹 프레임워크

Express 프레임워크가 Node.js 생태계에서 대표 웹 프레임워크를 담당하고 있다면 Elysia는 Bun 생태계에서 비슷한 역할과 인지도를 갖고 있는 하고 있는 웹 프레임워크입니다.


물론 간단한 웹 서버를 개발할 때는 Bun에서 제공하는 HTTP 서버만으로도 충분할 때가 많지만, Elysia는 웹 서버 개발에 필요한 왠만한 기능이 모두 내장되어 있어서 단순한 서버 개발 뿐만 아니라 복잡한 서버 개발까지 사용할 수 있는 확장성이 띄어난 웹 프레임워크입니다.


타입스크립트를 바로 실행하는 Bun과 마찬가지로 Elysia도 타입스크립트에 매우 친화적인 API를 제공하면서도 개발자가 피곤하게 타입스크립트를 많이 작성하지 않도록 매우 인체 공학적으로 설계가 되어 있습니다. 다시 말해서, 다른 웹 프레임워크처럼 개발자에게 번거로운 타이핑(typing)을 강요하지 않고, 강력한 타입 추론을 통해서 코드 편집기에서 훌륭한 자동 완성(autocomplete)과 정적 타입 체킹을 제공합니다. 그래서 Elysia를 쓰면 마치 순수한(Vanilla) 자바스크립트를 쓰는 듯한 산뜻한 개발자 경험을 하면서도, 버그가 적은 견고한 서버 애플리케이션을 작성할 수 있습니다.


아래 예제 코드를 보시면 Elysia의 API가 얼마나 아름답고 직관적인지 실감이 나실 겁니다. 딱히 Elysia를 배우시지 않으신 분도 코드만 보면 대강 웹 서버가 어떻게 동작하는지 감을 잡을 수 있을 정도니까요.


import { Elysia } from "elysia";

new Elysia()
  .get("/", "Hello World")
  .get("/image", Bun.file("mika.webp"))
  .get("/stream", function* () {
    yield "Hello";
    yield "World";
  })
  .ws("/realtime", {
    message(ws, message) {
      ws.send("got:" + message);
    },
  })
  .listen(3000);


Elysia는 개발자 경험 뿐만 아니라 성능 측면에서도 기존 웹 프레임워크를 압도하는 모습을 보여줍니다. 벤치마크 결과를 보면 Elysia는 초당 Express보다 무려 21배, Fastify보다 6배 많은 요청을 처리하는 것으로 알려져 있습니다. 지나친 단순화이지만 Node.js에서 Express 익스프레스 서버 인스턴스로 처리할 수 있는 트래픽을, Bun에서는 1개의 Elysia 서버 인스턴스로 처리할 수 있다는 말입니다. 단순히 런타임과 프레임워크를 바꿔서 이 정도의 성능 향상을 이룰 수 있다니, Bun과 Elysia는 정말 매력적인 조합이 아닐 수 없습니다.


Bun이 Node.js를 잇는 차세대 자바스크립트 런타임으로 급 부상하면서, Bun을 위해서 탄생한 웹 프레임워크인 Elysia도 큰 관심을 받고 있습니다. 이번 포스팅에서는 Elysia의 주요 특징과 사용법, 그리고 Elysia가 다른 웹 프레임워크와 어떻게 차별화되는지에 대해서 살펴보겠습니다.


📝 포스팅: https://www.daleseo.com/elysia/


혹시 Bun에 대해서 생소하신 분들께는 아래 게시물을 추천드리고 싶습니다.


📕 Bun: 귀엽지만 강력한 새로운 자바스크립트 런타임: https://careerly.co.kr/comments/92202

📗 Bun v1.1 출시 소식: https://careerly.co.kr/comments/102544

📘 헬로 Bun 출간 소식: 귀엽지만 강력한 새로운 자바스크립트 런타임: https://careerly.co.kr/comments/111998

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 10월 16일 오후 10:33

댓글 0