0Pricing
TypeScript Academy · 강의

네임스페이스와 모듈: 현대적인 사용법

네임스페이스보다 모듈이 선호되는 이유를 이해합니다.

네임스페이스와 모듈: 현대적인 사용법은(는) CoddyKit의 무료 TypeScript Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 TypeScript Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

TypeScript에는 원래 코드를 구성하기 위한 네임스페이스(이전에는 '내부 모듈'이라고 함)가 있었습니다. 현대의 TypeScript에서는 대신 ES 모듈을 사용합니다. 이 레슨에서는 각각을 언제 사용하는 것이 적절한지 설명합니다.

네임스페이스란 무엇인가요

네임스페이스는 `namespace` 키워드를 사용해 이름이 지정된 범위 아래에 관련 코드를 그룹화하는 TypeScript만의 방식입니다.
namespace Geometry {
  export interface Point { x: number; y: number; }
  export function distance(a: Point, b: Point): number {
    return Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);
  }
}

네임스페이스 멤버에 접근하기

점 표기법을 사용해 네임스페이스 이름을 통해 네임스페이스 멤버에 접근합니다.
const p1: Geometry.Point = { x: 0, y: 0 };
const p2: Geometry.Point = { x: 3, y: 4 };
const d = Geometry.distance(p1, p2); // 5

중첩 네임스페이스

네임스페이스는 중첩할 수 있습니다.
namespace App {
  export namespace Models {
    export interface User { name: string; }
  }
}
const u: App.Models.User = { name: 'Alice' };

네임스페이스 병합

네임스페이스는 선언 병합을 지원합니다. 이름이 같은 두 네임스페이스 선언이 하나로 병합됩니다.
namespace Validation {
  export function validate(s: string): boolean { return s.length > 0; }
}
namespace Validation {
  export function sanitize(s: string): string { return s.trim(); }
}

모듈을 선호하는 이유

ES 모듈은 JavaScript 표준입니다. 모든 번들러에서 지원되고, 트리 셰이킹이 효율적으로 적용되며, 최신 브라우저와 Node.js에서 기본적으로 작동합니다.

네임스페이스에 대응하는 모듈

현대의 TypeScript에서는 네임스페이스가 단순히 파일이 됩니다. 공개할 항목은 내보내고 나머지는 비공개로 유지합니다.
// geometry.ts
export interface Point { x: number; y: number; }
export function distance(a: Point, b: Point): number {
  return Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);
}

선언 파일에서 네임스페이스가 여전히 사용되는 이유

네임스페이스는 전역 라이브러리(예: DOM 타입, Node.js 타입)의 .d.ts 선언 파일에서 여전히 널리 사용됩니다. 전역 범위를 확장하기 때문입니다.
// node.d.ts
declare namespace NodeJS {
  interface ProcessEnv { NODE_ENV?: 'development' | 'production'; }
}

삼중 슬래시 참조(레거시)

ES 모듈이 나오기 전에는 삼중 슬래시 지시문으로 다른 파일을 참조했습니다. 오늘날에는 tsconfig의 include와 모듈 가져오기가 이를 대신합니다.
/// <reference types="node" />
/// <reference path="./other.d.ts" />

네임스페이스를 여전히 사용하는 경우

다음과 같은 경우 네임스페이스를 사용합니다: (1) 전역 타입을 선언하는 선언 파일에서, (2) 라이브러리의 기존 전역 네임스페이스를 확장할 때.

네임스페이스에서 모듈로 마이그레이션하기

`namespace Foo {}`를 모듈 파일로 바꿉니다. `/// `를 가져오기로 바꿉니다. TypeScript 팀에서 이 마이그레이션 경로를 문서화했습니다.

빠른 확인

현대의 TypeScript에서 네임스페이스를 대체하는 방법으로 권장되는 것은 무엇인가요?

요약

네임스페이스는 이름이 지정된 범위 아래에 코드를 구성하지만, 현대의 TypeScript에서는 레거시 방식입니다. 애플리케이션 코드에는 ES 모듈(import/export)을 사용합니다. 전역 타입을 확장하는 선언 파일에서는 네임스페이스가 여전히 유용합니다.

자주 묻는 질문

“네임스페이스와 모듈: 현대적인 사용법” 강의는 무료인가요?

네 — “네임스페이스와 모듈: 현대적인 사용법” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 TypeScript Academy 강의 전체를 잠금 해제할 수 있습니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“네임스페이스와 모듈: 현대적인 사용법”에서 뭘 배우나요?

네임스페이스보다 모듈이 선호되는 이유를 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 TypeScript Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

TypeScript Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 TypeScript Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“네임스페이스와 모듈: 현대적인 사용법” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 TypeScript Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 TypeScript Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. ES 모듈 문법: import 및 export
  2. 재내보내기 및 배럴 파일
  3. 형식 전용 가져오기 및 내보내기
  4. 네임스페이스와 모듈: 현대적인 사용법
← TypeScript Academy(으)로 돌아가기