Express.js는 Node.js 애플리케이션 구축에 가장 널리 사용되는 프레임워크 중 하나입니다. 가벼운 특성으로 인해 속도가 빨라지지만 앱이 성장함에 따라 성능 병목 현상이 발생할 수 있습니다. 이 블로그에서는 속도와 확장성을 위해 Express.js 앱을 최적화하는 5가지 실용적인 팁을 공유하겠습니다.
미들웨어는 Express.js 앱의 중추이지만 불필요하거나 제대로 구현되지 않은 미들웨어는 작업 속도를 저하시킬 수 있습니다.
필요한 미들웨어만 로드: 필요하지 않은 경로에는 전역 미들웨어를 사용하지 마세요.
예: JSON 페이로드가 필요한 경로에만 body-parser를 적용합니다.
const express = require('express'); const app = express(); const bodyParser = require('body-parser'); // Use body-parser only for specific routes app.post('/api/data', bodyParser.json(), (req, res) => { res.send('Data received'); });
캐싱을 사용하면 데이터베이스 쿼리나 API 호출을 반복할 필요성이 줄어듭니다. Redis 또는 HTTP 캐싱 헤더와 같은 도구는 응답 시간을 크게 향상시킬 수 있습니다.
Redis의 예:
const redis = require('redis'); const client = redis.createClient(); const app = require('express')(); app.get('/api/resource', (req, res) => { const cacheKey = 'resource'; client.get(cacheKey, (err, cachedData) => { if (cachedData) { res.send(JSON.parse(cachedData)); } else { const data = fetchDataFromDatabase(); // Simulated DB call client.setex(cacheKey, 3600, JSON.stringify(data)); // Cache for 1 hour res.send(data); } }); });
HTTP 캐싱:
app.use((req, res, next) => { res.set('Cache-Control', 'public, max-age=3600'); // Cache for 1 hour next(); });
페이로드가 크면 응답 시간이 느려질 수 있습니다. Gzip 압축을 활성화하면 페이로드 크기를 줄이고 속도를 향상시킬 수 있습니다.
const compression = require('compression'); const express = require('express'); const app = express(); app.use(compression()); // Compress all routes
이 간단한 추가로 응답 크기를 최대 70%까지 줄일 수 있습니다!
느린 데이터베이스 쿼리가 앱 성능 저하의 주요 원인인 경우가 많습니다.
팁:
const User = require('./models/User'); // Instead of fetching all users app.get('/users', async (req, res) => { const users = await User.find().limit(20).skip(0); // Use pagination res.send(users); });
HTTP/2는 멀티플렉싱 및 헤더 압축을 허용하여 정적 자산의 대기 시간을 줄여줍니다. 이를 CDN과 결합하면 사용자에게 더 가까운 정적 자산을 캐싱하여 제공 속도가 더욱 빨라집니다.
Express를 사용한 HTTP/2 설정:
const http2 = require('http2'); const fs = require('fs'); const express = require('express'); const app = express(); const options = { key: fs.readFileSync('./ssl/key.pem'), cert: fs.readFileSync('./ssl/cert.pem'), }; http2.createSecureServer(options, app).listen(8443, () => { console.log('HTTP/2 server running on port 8443'); });
미들웨어를 효율적으로 관리하고, 캐싱하고, 응답을 압축하고, 데이터베이스 쿼리를 최적화하면 성능을 크게 향상시킬 수 있습니다. 다음 팁을 구현하여 앱이 엄청나게 빠르게 작동하도록 하세요!
이 블로그가 도움이 되었다면 ❤️ 아이콘을 누르고 저를 팔로우하여 더 많은 JavaScript 팁과 요령을 확인하세요!
위 내용은 빛처럼 빠른 성능을 위해 Express.js 앱을 강화하는 최고의 IP의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!