"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 고성능 Node.js 정적 파일 제공 — Rust 사용

고성능 Node.js 정적 파일 제공 — Rust 사용

2024-11-04에 게시됨
검색:388

몇 달 전 우리는 TypeScript/Node.js용 오픈 소스 백엔드 프레임워크인 Encore.ts를 출시했습니다.

이미 많은 프레임워크가 있으므로 우리는 우리가 내린 특이한 디자인 결정 중 일부와 이것이 성능 및 개발자 경험 개선으로 이어지는 방법을 공유하고 싶습니다.

고성능을 위해 Rust를 사용하여 Node.js에서 정적 파일 제공

Encore.ts에는 정적 자산(예: 이미지, HTML 및 CSS 파일, JavaScript 파일) 제공을 위한 지원 기능이 내장되어 있습니다.

정적 웹사이트나 정적 파일로 미리 컴파일된 단일 페이지 애플리케이션(SPA)을 제공하려는 경우에 유용합니다.

정적 파일을 정의할 때 파일은 Encore.ts Rust Runtime에서 직접 제공됩니다.

즉, 파일을 제공하기 위해 JavaScript 코드가 실행되지 않아 Node.js 런타임이 비즈니스 로직 실행에 집중할 수 있게 됩니다.

High performance Node.js static file serving — using Rust

이를 통해 정적 파일 제공 속도가 크게 향상될 뿐만 아니라 API 엔드포인트의 대기 시간도 개선됩니다.

우리는 최근 Express.js 기반 Node 애플리케이션보다 9배 빠른 속도를 보여주는 벤치마크를 발표했습니다.

문서에서 자세히 알아보기

Encore.ts로 정적 파일을 제공하는 방법을 보여주는 앱 예시

코드 예시

Encore.ts에서 정적 파일을 제공하는 것은 API 끝점을 정의하는 것과 유사하게 작동하지만 일반 API 함수 대신 api.static 함수를 사용합니다.

import { api } from "encore.dev/api";

export const assets = api.static(
  { expose: true, path: "/frontend/*path", dir: "./assets" },
);

이렇게 하면 /frontend 경로 접두사 아래의 ./assets 디렉터리에 있는 모든 파일이 제공됩니다.

Encore는 디렉터리 루트에 index.html 파일을 자동으로 제공합니다. 위의 경우, URL /frontend를 요청하면 ./assets/index.html 파일이 제공되고, /frontend/hello는 ./assets/hello 또는 ./assets/hello/index.html 파일이 제공됩니다( 존재하는 것).

마무리

Encore.ts는 Node.js와 함께 Rust 기반 런타임을 사용하여 TypeScript 애플리케이션의 성능을 향상시킬 수 있습니다.

프로젝트에 성능이 중요한 경우 Encore.ts를 사용해 보는 것이 좋습니다.

그리고 모두 오픈 소스이므로 코드를 확인하고 GitHub에 기여할 수 있습니다.

릴리스 선언문 이 글은 https://dev.to/encore/high-performance-nodejs-static-file-serving-using-rust-420m?1에서 복제됩니다.1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다. 그것
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3