Vercel을 활용한 자바스크립트 애플리케이션의 캐싱 및 프리렌더링 구현하기

최근 웹 애플리케이션의 성능 향상을 위해 캐싱과 프리렌더링 기술을 적용하는 것이 중요한 과제가 되었습니다. 이번 글에서는 Vercel을 통해 자바스크립트 애플리케이션의 캐싱과 프리렌더링을 구현하는 방법을 알아보겠습니다.

캐싱(Caching)

캐싱은 이전에 요청된 데이터를 저장해 두었다가 동일한 요청이 발생할 경우에 저장된 데이터를 반환하는 방식입니다. 이를 통해 웹 애플리케이션의 응답 속도를 향상시킬 수 있습니다. Vercel에서는 캐싱을 위해 vercel.json 파일을 사용합니다.

{
  "headers": [
    {
      "source": "**/*.js",
      "headers": [
        {
          "key": "Cache-Control",
          "value": "public, max-age=3600"
        }
      ]
    }
  ]
}

위의 예시에서는 모든 JavaScript 파일(**/*.js)에 대해 캐싱을 적용하고 있습니다. Cache-Control 헤더를 추가하여 파일을 공용으로 캐싱하고 최대 1시간(max-age=3600) 동안 유지되도록 설정하였습니다.

프리렌더링(Prerendering)

프리렌더링은 사용자가 요청하기 전에 미리 페이지를 렌더링하여 정적인 HTML 파일로 제공하는 방식입니다. 이를 통해 웹 애플리케이션의 초기 로딩 속도를 크게 개선할 수 있습니다. Vercel에서는 Next.js를 사용하여 프리렌더링을 구현할 수 있습니다.

// pages/index.js
import React from 'react';
import axios from 'axios';

const Home = ({ data }) => {
  return (
    <div>
      <h1>Hello, World!</h1>
      <p>{data}</p>
    </div>
  );
};

export const getStaticProps = async () => {
  const response = await axios.get('https://api.example.com/data');
  const data = response.data;

  return {
    props: {
      data
    }
  };
};

export default Home;

위의 예시 코드는 Next.js에서 프리렌더링을 구현하는 방법을 보여줍니다. getStaticProps 함수를 이용하여 서버 측에서 데이터를 미리 가져오고, 해당 데이터를 템플릿에 전달하여 정적인 HTML 파일로 생성됩니다. 이후 Vercel에 배포하면 정적인 HTML 파일이 제공됩니다.

결론

Vercel은 자바스크립트 애플리케이션의 캐싱과 프리렌더링을 손쉽게 구현할 수 있는 도구입니다. 캐싱과 프리렌더링을 통해 웹 애플리케이션의 성능을 최적화하고 사용자 경험을 높일 수 있습니다.

해시태그: #Vercel #자바스크립트