Hello, World!
세상과 소통하는 개발자의 이야기
Design. 수민 / cc. 경희

[ Common ] 배럴 파일(barrel file) 패턴이란?

2025-08-19

폴더 내 모듈을 한 번에 관리하는 효율적인 export 전략

index.ts 또는 index.js 파일을 활용해서 여러 모듈을 한 곳에서 export하는 코드를 자주 보게 됩니다.  이것이 바로 배럴 파일(barrel file) 패턴입니다.


1. 배럴 파일이란?

**배럴 파일(Barrel File)**은 폴더 내 여러 모듈(컴포넌트, 함수 등)을 하나의 파일에서 모아서 export하는 방식입니다. 주로 폴더의 index.ts 또는 index.js 파일이 배럴 역할을 합니다.


2. 왜 필요한가?

  • import 경로가 간결해집니다.
  • 컴포넌트/함수 추가/삭제 시 유지보수가 쉬워집니다.
  • 트리 쉐이킹 등 번들 최적화에 유리합니다.
  • 팀 프로젝트에서 코드 일관성을 높여줍니다.
  • 자동완성, 타입 지원 등 개발 효율을 높여줍니다.

3. 코드 예시

일반적인 import 방식

import SidebarLeft from "./components/SidebarLeft";
import SidebarRight from "./components/SidebarRight";
import TopComponent from "./components/TopComponent";

배럴 파일 패턴 적용

// src/components/index.ts
export { default as SidebarLeft } from "./SidebarLeft";
export { default as SidebarRight } from "./SidebarRight";
export { default as TopComponent } from "./TopComponent";

사용할 때는 아래처럼 더 간단해집니다.

import { SidebarLeft, SidebarRight, TopComponent } from "./components";

4. 실제 프로젝트 적용 방법

  1. 각 폴더에 index.ts (또는 index.js) 파일을 만듭니다.
  2. 해당 폴더의 컴포넌트, 함수, 모듈을 모두 export합니다.
  3. import 시에는 폴더만 지정하면 됩니다.

5. 장점 요약

  • import가 간편해진다.
  • 유지보수와 확장이 편리해진다.
  • 프로젝트 구조가 더 명확해진다.
  • 실무와 오픈소스 대부분에서 표준적으로 사용되는 방식이다.

6. 언제 쓰면 좋은가?

  • 컴포넌트가 많은 React 프로젝트
  • 유틸리티 함수가 많은 Node 프로젝트
  • 타입 정의가 많은 TypeScript 프로젝트
  • 여러 모듈을 묶어서 배포하는 라이브러리 제작 시

마무리

배럴 파일 패턴은 작은 프로젝트에서는 크게 필요하지 않을 수 있지만, 규모가 커질수록 코드 관리와 생산성을 크게 높여줍니다. React, Node, TypeScript 환경에서 꼭 한 번 적용해보시길 추천합니다!