TypeScript클래스와 모듈

모듈과 import/export

파일 단위 모듈 경계를 import/export로 분리하고, 타입과 값이 함께 오가는 구조를 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

ts
// math.ts
export function add(a: number, b: number) {
  return a + b;
}

// main.ts
import { add } from "./math";

설명

  • TypeScript는 JavaScript의 모듈 시스템을 그대로 따르며, 파일 간 의존성을 importexport로 명시합니다.
  • 모듈은 전역 오염을 줄이고, 파일 단위 경계를 분명히 하며, 빌드 도구와 정적 분석이 이해하기 쉬운 구조를 만듭니다.
  • TypeScript에서는 값 import뿐 아니라 타입 import도 구분해 사용할 수 있어, 런타임 번들에 불필요한 흔적을 줄이는 데 도움이 됩니다.
  • 모듈 설정은 코드 문법만으로 끝나지 않고, module, moduleResolution, 실행 환경(Node, 브라우저, 번들러)와도 연결됩니다.
  • 그래서 import/export를 이해할 때는 문법뿐 아니라 "내 코드가 어디서 어떻게 실행되는가"까지 같이 봐야 합니다.

짧은 예제

ts
// user.ts
export interface User {
  id: number;
  name: string;
}

// app.ts
import type { User } from "./user";

빠른 정리

문법의미
export다른 파일에서 가져갈 수 있게 공개
import다른 모듈의 값을 사용
import type타입 정보만 가져옴
모듈 장점경계 분리, 재사용, 정적 분석
함께 봐야 할 것tsconfig의 module 관련 설정

주의할 점

모듈 오류는 문법보다 설정 문제인 경우가 많습니다. 코드만 보고 이상이 없어 보여도, modulemoduleResolution이 실행 환경과 맞지 않으면 import 문제가 쉽게 생깁니다.

참고 링크

1 sources