[javascript] 리액트 프레임워크에서 코드 분할을 어떻게 처리하나요?
리액트 프레임워크에서 코드 분할은 애플리케이션의 성능을 향상시키기 위해 사용됩니다. 코드 분할은 큰 규모의 앱을 작은 조각으로 나누어 로딩 시간을 단축시킬 수 있습니다.
리액트에서 코드 분할을 처리하는 가장 일반적인 방법은 동적 import()
함수를 사용하는 것입니다. import()
함수를 사용하면 앱이 필요로 하는 모듈을 런타임에서 동적으로 로딩할 수 있습니다.
예를 들어, 다음과 같이 코드를 작성할 수 있습니다:
import React, { lazy, Suspense } from 'react';
const MyComponent = lazy(() => import('./MyComponent'));
function App() {
return (
<div>
<Suspense fallback={<div>Loading...</div>}>
<MyComponent />
</Suspense>
</div>
);
}
위의 코드에서 lazy()
함수는 동적으로 로딩할 컴포넌트를 감싸는 것을 위해 사용됩니다. 컴포넌트를 처음 렌더링할 때 해당 모듈을 로드하고, 필요한 시점에서 컴포넌트를 렌더링합니다. Suspense
컴포넌트는 로딩 중일 때 보여줄 컴포넌트를 지정할 수 있습니다.
이렇게 코드 분할을 사용하면 초기 로딩 시간을 줄이고, 필요한 모듈만 로드하여 메모리 사용량을 최적화할 수 있습니다.
추가로, 웹팩을 사용하는 경우 코드 분할을 보다 효율적으로 처리할 수 있는 여러 가지 플러그인과 설정 옵션을 사용할 수도 있습니다. 웹팩의 SplitChunksPlugin
을 사용하면 공통 의존성을 분리하여 번들 크기를 줄일 수 있습니다.
리액트 공식 문서와 웹팩 문서에서 자세한 내용과 예제를 확인할 수 있습니다.