[typescript] 타입스크립트 모듈과 네임스페이스 작성 및 사용 가이드

타입스크립트를 사용하면 코드를 모듈화하여 관리할 수 있습니다. 모듈화된 코드는 네임스페이스 또는 모듈로 구성할 수 있습니다. 이 가이드에서는 타입스크립트에서 모듈과 네임스페이스를 작성하고 사용하는 방법을 소개합니다.

모듈(Module)이란?

모듈은 코드를 논리적인 단위로 분리하여 재사용 및 유지보수성을 높이는 데 도움이 되는 기능입니다. 타입스크립트에서 모듈은 파일 수준의 스코프를 제공합니다.

타입스크립트에서는 export 키워드를 사용하여 모듈에서 공개할 항목을 지정합니다. 다른 파일에서 모듈을 사용할 때는 import 키워드를 사용하여 해당 모듈을 가져올 수 있습니다.

모듈 작성하기

아래는 간단한 모듈의 예시입니다.

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

export function subtract(a: number, b: number): number {
  return a - b;
}

모듈 사용하기

다른 파일에서 math 모듈을 사용하는 예시입니다.

// app.ts 파일
import { add, subtract } from './math';

console.log(add(3, 2)); // 5
console.log(subtract(3, 2)); // 1

네임스페이스(Namespace)란?

네임스페이스는 전역 스코프에서 중첩된 이름을 관리하기 위한 방법으로 사용됩니다. 타입스크립트에서 네임스페이스는 namespace 키워드를 사용하여 정의하며, 모듈과 달리 파일 수준의 스코프를 제공하지 않습니다.

네임스페이스 작성하기

네임스페이스를 사용하여 math 모듈을 작성한 예시입니다.

// mathNamespace.ts 네임스페이스
namespace MathNamespace {
  export function add(a: number, b: number): number {
    return a + b;
  }

  export function subtract(a: number, b: number): number {
    return a - b;
  }
}

네임스페이스 사용하기

네임스페이스를 사용하는 예시입니다.

// app.ts 파일
/// <reference path="mathNamespace.ts" />
const result = MathNamespace.add(3, 2);
console.log(result); // 5

모듈 vs 네임스페이스

모듈과 네임스페이스는 코드를 구성하고 관리하는 다른 방법을 제공합니다. 모듈은 파일 수준의 스코프를 제공하고, 네임스페이스는 전역 스코프에서 이름을 관리하는 방법으로 사용됩니다.

일반적으로 모듈은 파일 간의 의존성을 관리하는 데 사용되고, 네임스페이스는 전역 이름 충돌을 방지하기 위해 중첩된 이름을 관리하는 데 사용됩니다.

결론

타입스크립트에서 모듈과 네임스페이스를 사용하여 코드를 모듈화하고 이름 충돌을 방지할 수 있으며, 모듈 간의 의존성을 관리할 수 있습니다. 적절한 상황에 맞게 모듈과 네임스페이스를 사용하여 코드를 구성하는 것이 중요합니다.