[nodejs] SSR과 서버 사이드 캐싱

이번 블로그에서는 Node.js를 사용하여 서버 사이드 렌더링(SSR) 및 서버 사이드 캐싱에 대해 알아보겠습니다. SSR은 클라이언트 측 렌더링보다 검색 엔진 최적화 및 초기 로딩 시간을 개선하는 데 도움이 됩니다. 또한, 서버 사이드 캐싱은 동일한 데이터에 대한 반복적 요청을 줄여 서버 응답 시간을 단축할 수 있습니다.

SSR이란?

SSR은 서버 측에서 웹 페이지를 렌더링하여 클라이언트로 전달하는 기술입니다. 이를 통해 검색 엔진 최적화(SEO)를 개선하고 초기 로딩 시간을 단축할 수 있습니다. 클라이언트 측 렌더링과 비교했을 때 SSR은 초기 로딩 시간을 줄여 사용자 경험을 향상시킬 수 있습니다.

// 예제: Node.js를 사용한 SSR
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  const html = renderToString(App); // App은 렌더링할 컴포넌트
  res.send(html);
});

app.listen(3000, () => {
  console.log('Server started on http://localhost:3000');
});

서버 사이드 캐싱이란?

서버 사이드 캐싱은 서버에서 받은 응답을 캐시하여 동일한 요청에 대해 이전에 처리된 응답을 반환하는 기술입니다. 이를 통해 다시 계산할 필요가 없기 때문에 서버 응답 시간을 줄일 수 있습니다.

// 예제: Node.js를 사용한 서버 사이드 캐싱
const cache = {};

app.get('/data', (req, res) => {
  const key = req.query.key;
  if (cache[key]) {
    res.send(cache[key]);
  } else {
    const data = fetchDataFromDatabase(key);
    cache[key] = data;
    res.send(data);
  }
});

SSR과 서버 사이드 캐싱의 혼합 사용

SSR과 서버 사이드 캐싱을 혼합하여 사용할 수 있습니다. SSR로 렌더링된 페이지를 캐싱함으로써 동일한 페이지 요청에 대한 서버 응답 시간을 최적화할 수 있습니다.

// 예제: SSR과 서버 사이드 캐싱의 혼합 사용
app.get('/', (req, res) => {
  const html = cache['homepage'] || renderToString(Homepage);
  cache['homepage'] = html;
  res.send(html);
});

SSR과 서버 사이드 캐싱은 서버 응답 시간을 단축하고 사용자 경험을 개선하는 데 도움이 됩니다. Node.js를 사용하면 간단하게 이러한 기술들을 구현할 수 있습니다.

이상으로 Node.js를 사용한 SSR과 서버 사이드 캐싱에 대해 알아보았습니다. 감사합니다.

참고: Node.js 공식 문서