"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > express-fast-json-stringify를 사용하여 Express.js에서 JSON 직렬화 성능 향상

express-fast-json-stringify를 사용하여 Express.js에서 JSON 직렬화 성능 향상

2024년 11월 17일에 게시됨
검색:529

Enhancing JSON Serialization Performance in Express.js with express-fast-json-stringify

JSON 직렬화는 웹 개발, 특히 Node.js 및 Express.js로 구축된 애플리케이션의 경우 중요한 작업입니다. Node.js의 기본 JSON 직렬화(JSON.stringify())는 간단하고 편리하지만, 특히 부하가 심한 경우 성능 병목 현상이 발생할 수 있습니다. 이 기사에서는 fast-json-stringify를 활용하여 Express 애플리케이션에서 JSON 직렬화 성능을 크게 향상시키는 사용자 정의 미들웨어 패키지인 express-fast-json-stringify를 소개합니다.

fast-json-stringify란 무엇입니까?

fast-json-stringify는 Fastify 팀에서 개발한 JSON 직렬화 라이브러리입니다. JSON 스키마 정의를 분석하고 고도로 최적화된 직렬화 기능으로 컴파일하여 JSON 변환 속도를 향상시킵니다. 이는 기본 JSON.stringify()보다 훨씬 빠르며 특히 고성능 애플리케이션에 유용합니다.

express-fast-json-stringify 소개

express-fast-json-stringify는 fast-json-stringify의 성능 이점을 Express.js 애플리케이션에 제공하는 npm 패키지입니다. 이 패키지를 통합하면 더 빠른 JSON 직렬화를 달성하여 애플리케이션의 전반적인 성능을 향상시킬 수 있습니다.

설치

먼저 express-fast-json-stringify 패키지를 설치합니다:

npm install express-fast-json-stringify

JSON 스키마 생성

JSON 응답의 구조를 지정하는 스키마 개체를 정의합니다. 이 스키마는 fast-json-stringify에서 직렬화 프로세스를 최적화하는 데 사용됩니다.

import { Schema } from 'express-fast-json-stringify';

const schema: Schema = {
  title: 'Example Schema',
  type: 'object',
  properties: {
    firstName: { type: 'string' },
    lastName: { type: 'string' },
    age: {
      description: 'Age in years',
      type: 'integer',
    },
  },
};

미들웨어 적용

Express 경로에서 fastJsonSchema 미들웨어를 사용하여 스키마 개체를 인수로 전달합니다. 그러면 해당 경로에 대해 최적화된 JSON 직렬화가 설정됩니다.

import express, { Request, Response, NextFunction } from 'express';
import { fastJsonSchema, Schema } from 'express-fast-json-stringify';

const app = express();

const exampleSchema: Schema = {
  title: 'Example Schema',
  type: 'object',
  properties: {
    firstName: { type: 'string' },
    lastName: { type: 'string' },
    age: { type: 'integer' },
  },
};

app.get('/', fastJsonSchema(exampleSchema), (req: Request, res: Response, next: NextFunction) => {

});

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

JSON 응답 보내기

기본 res.json() 메서드를 사용하는 대신 미들웨어에서 제공하는 res.fastJson() 메서드를 사용하여 JSON 응답을 보냅니다. 이는 fast-json-stringify의 속도 이점을 활용합니다.

import { fastJsonSchema, Schema } from 'express-fast-json-stringify';

const schema: Schema = {
  title: 'Example Schema',
  type: 'object',
  properties: {
    firstName: { type: 'string' },
    lastName: { type: 'string' },
    age: {
      description: 'Age in years',
      type: 'integer',
    },
  },
};

app.get('/', fastJsonSchema(schema), (req, res, next) => {
  try {
    const data = {
      firstName: 'Simone',
      lastName: 'Nigro',
      age: 40,
    };
    res.fastJson(data);
  } catch (error) {
    next(error);
  }
});

성능상의 이점

express-fast-json-stringify를 사용하면 여러 가지 성능상의 이점을 얻을 수 있습니다.

  1. 속도 향상: fast-json-stringify는 특히 복잡한 JSON 개체의 경우 JSON.stringify()보다 훨씬 빠르게 JSON 데이터를 직렬화할 수 있습니다.
  2. CPU 사용량 감소: 직렬화 속도가 빨라지면 처리에 소요되는 CPU 시간이 줄어들어 서버가 더 많은 동시 요청을 처리할 수 있습니다.
  3. 일관성 및 유효성 검사: JSON 스키마를 정의하면 직렬화된 데이터가 사전 정의된 구조를 준수하는지 확인하여 데이터 일관성을 향상하고 오류 가능성을 줄일 수 있습니다.

결론

express-fast-json-stringify를 Express.js 애플리케이션에 통합하면 특히 JSON 직렬화가 병목 현상을 일으키는 시나리오에서 상당한 성능 향상을 제공할 수 있습니다. fast-json-stringify의 강력한 기능을 활용하면 더 빠른 응답 시간을 달성하고 더 높은 로드를 처리하여 애플리케이션을 더 효율적이고 확장 가능하게 만들 수 있습니다.

express-fast-json-stringify 사용을 시작하려면 이 문서에 설명된 단계를 따르고 Express 애플리케이션에서 더 빠른 JSON 직렬화의 이점을 누려보세요. 라이브 데모를 보려면 StackBlitz 데모를 확인하세요.

릴리스 선언문 이 기사는 https://dev.to/nigrosimone/enhancing-json-serialization-performance-in-expressjs-with-express-fast-json-stringify-64g?1에서 복제됩니다. 침해가 있는 경우, Study_golang에 문의하세요. @163.com 삭제
최신 튜토리얼 더>

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

Copyright© 2022 湘ICP备2022001581号-3