[typescript] 타입스크립트와 Babel을 사용한 서버 사이드 렌더링 설정 방법
서버 사이드 렌더링(SSR)은 웹 애플리케이션의 초기 로딩 성능을 향상시키고 SEO(검색 엔진 최적화)를 개선하는 데 도움을 줍니다. 이 글에서는 타입스크립트 및 Babel을 이용하여 서버 사이드 렌더링 설정하는 방법에 대해 알아보겠습니다.
1. 프로젝트 초기화 및 의존성 설치
먼저, 타입스크립트 프로젝트를 초기화하고 필요한 패키지를 설치합니다.
mkdir ssr-app
cd ssr-app
npm init -y
npm install express react react-dom @types/node @types/react @types/react-dom typescript babel-cli babel-preset-env babel-preset-react
2. Babel 및 타입스크립트 설정
프로젝트 루트 디렉토리에 .babelrc
파일을 생성하고 다음과 같이 설정합니다.
{
"presets": ["env", "react"]
}
그리고 tsconfig.json
파일을 생성하여 타입스크립트 설정을 구성합니다.
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"jsx": "react",
"outDir": "./dist",
"strict": true
}
}
3. Express 서버 구성
서버 코드는 app.tsx
파일에 작성합니다.
import express from 'express';
import React from 'react';
import { renderToString } from 'react-dom/server';
import App from './App';
const server = express();
server.get('/', (_, res) => {
const html = renderToString(<App />);
res.send(`
<html>
<head><title>SSR App</title></head>
<body>
<div id="app">${html}</div>
<script src="bundle.js"></script>
</body>
</html>
`);
});
server.listen(3000, () => {
console.log('Server is listening on port 3000');
});
4. 빌드 및 실행
마지막으로, package.json
파일에 빌드 및 실행 스크립트를 추가합니다.
{
"scripts": {
"build": "tsc && babel server.js -o dist/server.js",
"start": "node dist/server.js"
}
}
이제 npm run build
로 프로젝트를 빌드하고, npm start
로 서버를 실행할 수 있습니다.
이제 타입스크립트와 Babel을 사용하여 서버 사이드 렌더링을 구성하는 방법에 대해 알아보았습니다. 이를 활용하여 웹 애플리케이션의 초기 로딩 성능을 최적화할 수 있습니다.
참고 문헌: