[이제와서 시작하는 Next.js 마스터하기 #14] React Compiler로 자동 최적화
[이제와서 시작하는 Next.js 마스터하기 #14] React Compiler로 자동 최적화
“useMemo? useCallback? 이제 필요 없습니다!” - React Compiler가 자동으로 최적화합니다!
🎯 이 글에서 배울 내용
- React Compiler가 무엇인지
- 자동 메모이제이션의 원리
- 성능 향상 측정 방법
- 마이그레이션 가이드
예상 소요 시간: 30분 난이도: 중급
🎨 React Compiler란?
컴파일 타임에 자동으로 최적화하는 도구
Before (수동 최적화)
1
2
3
4
5
6
7
8
9
10
11
const ExpensiveComponent = ({ data }) => {
const computed = useMemo(() => {
return heavyCalculation(data);
}, [data]);
const handleClick = useCallback(() => {
console.log('clicked');
}, []);
return <div onClick={handleClick}>{computed}</div>;
};
After (React Compiler)
1
2
3
4
5
6
7
8
9
const ExpensiveComponent = ({ data }) => {
const computed = heavyCalculation(data); // 자동 메모이제이션!
const handleClick = () => {
console.log('clicked');
}; // 자동 메모이제이션!
return <div onClick={handleClick}>{computed}</div>;
};
🚀 활성화 방법
1
2
3
4
5
6
// next.config.js
module.exports = {
experimental: {
reactCompiler: true,
},
};
📊 성능 측정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
'use client';
import { useState } from 'react';
export default function PerformanceTest() {
const [count, setCount] = useState(0);
// 무거운 계산
const expensiveValue = (() => {
console.log('Calculating...');
let result = 0;
for (let i = 0; i < 1000000; i++) {
result += i;
}
return result;
})();
return (
<div>
<p>Count: {count}</p>
<p>Expensive: {expensiveValue}</p>
<button onClick={() => setCount(count + 1)}>Increment</button>
</div>
);
}
React Compiler 없이: “Calculating…” 매번 출력 React Compiler 사용: “Calculating…” 한 번만 출력
🎯 오늘 배운 내용 정리
- React Compiler
- 자동 메모이제이션
- useMemo/useCallback 불필요
- 활성화
- next.config.js 설정
- Next.js 16에서 안정화
📚 시리즈 네비게이션
“최적화를 잊으세요. Compiler가 합니다!” 🎨
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.