
index.js 파일로 import를 간결하게 관리하는 방법프로젝트를 진행하던 중, index.js 파일을 사용하여 import를 간결하게 정리하는 방법을 알게 되었다. React 프로젝트에서는 컴포넌트, 유틸리티 함수, 상수, 스타일 등을 폴더별로 관리하는 경우가 많다. 이때 index.js 파일을 사용하여 여러 파일을 한 곳에 모아 export하면 코드의 유지보수성과 가독성이 높아진다. 이번 글에서는 index.js 파일을 통해 여러 기능을 효율적으로 묶어 관리하고, 가져오는 방법을 설명한다.
index.js 파일을 사용하는 이유각 폴더에 index.js 파일을 두고 해당 폴더의 파일들을 import/export하면 다음과 같은 이점이 있다.
index.js만 수정하면 되므로 유지보수가 더 쉬워진다.index.js에 묶는 예제예를 들어, ColorRecommend이라는 폴더가 있고, 이 안에 컴포넌트, 유틸 함수, 상수, 스타일 파일이 있다고 가정한다.
src
├── components
│ ├── ColorRecommend
│ │ ├── ColorInfoModal.jsx
│ │ ├── ColorPalette.jsx
│ │ ├── MainColorInfo.jsx
│ │ ├── colorUtils.js
│ │ ├── colorConstants.js
│ │ ├── colorStyles.js
│ │ └── index.js
이제 index.js 파일을 통해 각 파일을 import하고, 필요에 따라 export하는 방법을 알아보겠다.
index.js에서 각 파일 import먼저, 각 파일에서 필요한 요소를 index.js에서 import한다.
// src/components/ColorRecommend/index.js
// 컴포넌트 import
import ColorInfoModal from './ColorInfoModal';
import ColorPalette from './ColorPalette';
import MainColorInfo from './MainColorInfo';
// 유틸 함수 import
import { calculateShade, getColorName } from './colorUtils';
// 상수 import
import { PRIMARY_COLOR, SECONDARY_COLOR } from './colorConstants';
// 스타일 import
import { colorBoxStyle, textStyle } from './colorStyles';
이제 index.js에서 import한 요소들을 한 번에 export하여 다른 곳에서 쉽게 가져올 수 있도록 한다.
// src/components/ColorRecommend/index.js
export {
// 컴포넌트
ColorInfoModal,
ColorPalette,
MainColorInfo,
// 유틸 함수
calculateShade,
getColorName,
// 상수
PRIMARY_COLOR,
SECONDARY_COLOR,
// 스타일
colorBoxStyle,
textStyle,
};
이렇게 하면 ColorRecommend 폴더 내 모든 요소를 한 번에 가져올 수 있다.
index.js 파일로 import 하기index.js로 모든 파일을 묶었기 때문에, 다른 파일에서는 ColorRecommend 폴더 경로만으로 필요한 요소들을 import할 수 있다. 예를 들어 App.js에서는 다음과 같이 import할 수 있다:
// src/App.js
import {
ColorInfoModal,
ColorPalette,
MainColorInfo,
calculateShade,
getColorName,
PRIMARY_COLOR,
colorBoxStyle,
} from '@components/ColorRecommend';
이처럼 각 파일을 개별적으로 import하지 않아도 되고, ColorRecommend 폴더 경로만으로 모든 필요한 파일을 가져올 수 있어 코드가 훨씬 간결해진다. 또한 프로젝트의 구조도 더 명확해진다.
index.js에서 여러 기능을 export할 때, 각 기능별로 그룹화하면 가독성과 구조가 더 깔끔해진다. 이번에는 index.js 파일에서 객체로 export하여 기능을 그룹화해보자.
// src/components/ColorRecommend/index.js
// 컴포넌트 묶기
export const components = {
ColorInfoModal,
ColorPalette,
MainColorInfo,
};
// 유틸 함수 묶기
export const utils = {
calculateShade,
getColorName,
};
// 상수 묶기
export const constants = {
PRIMARY_COLOR,
SECONDARY_COLOR,
};
// 스타일 묶기
export const styles = {
colorBoxStyle,
textStyle,
};
이제 다른 파일에서 components, utils, constants, styles 객체로 구분하여 가져올 수 있다. 이를 통해 코드가 훨씬 더 깔끔하게 구성된다.
// src/App.js
import {
components,
utils,
constants,
styles,
} from '@components/ColorRecommend';
// 예시로 사용하기
const { ColorInfoModal } = components;
const { calculateShade } = utils;
const { PRIMARY_COLOR } = constants;
const { colorBoxStyle } = styles;
index.js 파일을 활용하면 컴포넌트뿐만 아니라 유틸 함수, 상수, 스타일 등 다양한 기능을 체계적으로 묶어 관리할 수 있다. 코드 구조가 더 명확해지고, 필요한 기능들을 효율적으로 가져올 수 있어 유지보수성과 가독성에서 큰 장점이 있다.
프로젝트가 커질수록 index.js 파일을 통해 파일을 관리하면 훨씬 효율적인 코드 작성이 가능하다. 
