๋ฌธ์ ์ํฉ
- ํ๋ก์ ํธ ๋น๋ ์๊ฐ์ด 1๋ถ 30์ด๋ฅผ ์ด๊ณผ
- CI/CD ํ์ดํ๋ผ์ธ์์ ๋ณ๋ชฉ ๋ฐ์
์์ธ ๋ถ์
๋น๋ ๋ก๊ทธ ํ์ธ ๊ฒฐ๊ณผ
info - Disabled SWC as replacement for Babel because of custom Babel configuration ".babelrc"
์ฃผ์ ๋ฌธ์ ์ :
- .babelrc ํ์ผ๋ก ์ธํ SWC ๋นํ์ฑํ
- 738MB ํฌ๊ธฐ์ node_modules
- 1MB ์ด์์ ๋์ฉ๋ ๋ฒ๋ค
- 200๊ฐ ์ด์ ํ์ด์ง์ SSR ์ค์
ํด๊ฒฐ ๊ณผ์
1. SWC ์ปดํ์ผ๋ฌ ํ์ฑํ
rm -f .babelrc
// next.config.js
const nextConfig = {
// SWC ๊ฐ์ ํ์ฑํ
swcMinify: true,
// ๋น๋ ์ต์ ํ
experimental: {
forceSwcTransforms: true,
},
// ์ปดํ์ผ๋ฌ ์ต์ ํ
compiler: {
removeConsole: process.env.NODE_ENV === "production",
},
};
2. JSX ๋ฌธ๋ฒ ์ค๋ฅ ์์
- SWC ์ ํ ํ ๋ฌธ๋ฒ ์ค๋ฅ ๋ฐ๊ฒฌํ์ฌ ์์
// ์์ ์
<Box style={{ margin: "0px 20px" }}>-></Box>
// ์์ ํ
<Box style={{ margin: "0px 20px" }}>→</Box>
3. ๋ฒ๋ค ์ต์ ํ
- ์นํฉ ์ฒญํฌ ๋ถํ ์ค์
webpack: (config, { dev }) => {
if (!dev) {
config.optimization = {
...config.optimization,
splitChunks: {
chunks: 'all',
cacheGroups: {
vendor: {
test: /[\\\\\\\\/]node_modules[\\\\\\\\/]/,
name: 'vendors',
priority: 10,
},
mui: {
test: /[\\\\\\\\/]node_modules[\\\\\\\\/]@material-ui[\\\\\\\\/]/,
name: 'mui',
priority: 20,
},
},
},
};
}
}
ETC. ์ถ๊ฐ ๊ฐ์ ์ฌํญ
- ๋ฒ๋ค ๋ถ์ ๋๊ตฌ ์ถ๊ฐ
npm install --save-dev @next/bundle-analyzer
์ง์์ ๋ชจ๋ํฐ๋ง์ ์ํ npm run analyze ๋ช ๋ น์ด ์ง์.
์์ฝ
1. **SWC ์ปดํ์ผ๋ฌ ํ์ฑํ**
- .babelrc ํ์ผ ์ ๊ฑฐ
- next.config.js์ forceSwcTransforms ์ ์ฉ
- JSX ๋ฌธ๋ฒ ์ค๋ฅ ์์
2. **๋ฒ๋ค ์ต์ ํ**
- vendor/mui ์ฒญํฌ ๋ถ๋ฆฌ
- ํ๋ก๋์
console.log ์ ๊ฑฐ
- ์ฝ๋ ์คํ๋ฆฌํ
๊ฐ์
๊ฒฐ๊ณผ
๊ฐ์ ์
- local build (์ฝ 4๋ถ ์์)

- github action ๋ด build (์ฝ 6๋ถ ์์)

๊ฐ์ ํ
- local build (์ฝ 1๋ถ30์ด ์์)

- github action ๋ด build (์ฝ 3๋ถ ์์)

๋ถ์
| ํญ๋ชฉ | ๊ฐ์ ์ | ๊ฐ์ ํ | ๊ฐ์ ๋น์จ |
| ์ด ๋น๋ ์๊ฐ | 235.81์ด | 80.32์ด | -66% (2.9๋ฐฐ ๋น ๋ฆ) |
| User Time | 31.41์ด | 18.13์ด | -42% ๊ฐ์ |
| CPU ์ฌ์ฉ๋ฅ | 241% | 254% | +5% ์ฆ๊ฐ |
| ์ด CPU ์๊ฐ | 110.62์ด | 38.63์ด | -65% ๊ฐ์ |
| ์ปดํ์ผ๋ฌ | Babel | SWC | - |
| ๋ฒ๋ค ๋ถ์ | ๋ฏธ์ง์ | ์ง์ | - |
'Front-end' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Express ์ปค์คํ ์๋ฒ๋ฅผ Next.js API Routes๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ (0) | 2026.02.01 |
|---|---|
| Monorepo ๋์ ๊ธฐ: ํ๋ก ํธ์๋ ๋ง์ด๊ทธ๋ ์ด์ ์ค๊ณ ์ ๋ฆฌ (0) | 2025.08.17 |
| Next.js ์ด๊ธฐ ๋ ๋๋ง ์ ๋ค๊ตญ์ด ๋ฌธ๊ตฌ๊ฐ ๋น์ด ๋ณด์ด๋ ๋ฌธ์ ํด๊ฒฐํ๊ธฐ (1) | 2025.06.15 |
| useState์ ๋น๋๊ธฐ์ฑ (0) | 2025.04.13 |
| React key prop๊ณผ ์ํ ์ด๊ธฐํ (0) | 2025.02.23 |