타입스크립트를 사용하면 코드를 모듈화하여 관리할 수 있습니다. 모듈화된 코드는 네임스페이스 또는 모듈로 구성할 수 있습니다. 이 가이드에서는 타입스크립트에서 모듈과 네임스페이스를 작성하고 사용하는 방법을 소개합니다.
모듈(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 네임스페이스
모듈과 네임스페이스는 코드를 구성하고 관리하는 다른 방법을 제공합니다. 모듈은 파일 수준의 스코프를 제공하고, 네임스페이스는 전역 스코프에서 이름을 관리하는 방법으로 사용됩니다.
일반적으로 모듈은 파일 간의 의존성을 관리하는 데 사용되고, 네임스페이스는 전역 이름 충돌을 방지하기 위해 중첩된 이름을 관리하는 데 사용됩니다.
결론
타입스크립트에서 모듈과 네임스페이스를 사용하여 코드를 모듈화하고 이름 충돌을 방지할 수 있으며, 모듈 간의 의존성을 관리할 수 있습니다. 적절한 상황에 맞게 모듈과 네임스페이스를 사용하여 코드를 구성하는 것이 중요합니다.