타입스크립트(TypeScript)는 JavaScript의 확장된 기능을 제공하는 오픈 소스 프로그래밍 언어입니다. 타입스크립트에서 모듈(module)과 네임스페이스(namespace)는 코드를 구조화하는 데 중요한 역할을 합니다. 이번 블로그 글에서는 이 두 가지 개념을 사용하여 타입스크립트 프로젝트를 구조화하는 방법에 대해 알아보겠습니다.
목차
- 모듈
- 네임스페이스
- 타입스크립트 프로젝트 구조에 적용하기
- 결론
1. 모듈
모듈은 코드를 논리적으로 그룹화하여 재사용성을 높이는 데 사용됩니다. 타입스크립트에서는 모듈을 사용하여 변수, 함수, 클래스 등을 다른 파일에서 사용할 수 있도록 만들 수 있습니다. 모듈은 export
키워드를 사용하여 다른 파일에서 접근할 수 있는 요소를 정의하고, import
키워드를 사용하여 다른 파일에서 모듈을 가져올 수 있습니다.
// math 모듈
export function add(a: number, b: number): number {
return a + b;
}
export function subtract(a: number, b: number): number {
return a - b;
}
2. 네임스페이스
네임스페이스는 전역 범위에서 중첩된 이름을 생성하여 충돌을 방지하는 데 사용됩니다. 모듈과 비슷하게 코드를 구조화할 수 있지만, 모듈은 파일 수준에서 동작하는 반면, 네임스페이스는 전역 범위에서 동작합니다.
// geometry 네임스페이스
namespace Geometry {
export interface Point {
x: number;
y: number;
}
export function distance(a: Point, b: Point): number {
const dx = a.x - b.x;
const dy = a.y - b.y;
return Math.sqrt(dx * dx + dy * dy);
}
}
3. 타입스크립트 프로젝트 구조에 적용하기
타입스크립트 프로젝트에서는 모듈과 네임스페이스를 조합하여 코드를 구조화할 수 있습니다. 예를 들어, 다양한 기능을 갖는 모듈들을 사용하여 더 큰 범위의 네임스페이스를 구성할 수 있습니다.
// geometry 모듈
export interface Point {
x: number;
y: number;
}
// math 모듈
export function add(a: number, b: number): number {
return a + b;
}
// geometry 네임스페이스에 math 모듈을 추가
namespace Geometry {
export function distance(a: Point, b: Point): number {
const dx = a.x - b.x;
const dy = a.y - b.y;
return Math.sqrt(dx * dx + dy * dy);
}
}
4. 결론
모듈과 네임스페이스는 타입스크립트 프로젝트를 구조화하는 강력한 도구입니다. 적절히 활용하면 코드를 재사용하고 유지보수하기 쉽도록 만들 수 있습니다. 모듈과 네임스페이스의 사용은 프로젝트의 규모와 복잡성에 따라 다르므로, 각 상황에 맞게 적절히 활용하는 것이 중요합니다.
위에서 설명한 내용은 타입스크립트 프로젝트 구조를 만드는 데 모듈과 네임스페이스를 활용할 수 있는 방법에 대한 간단한 안내입니다. 이를 토대로 실제 프로젝트에서 이러한 개념을 적용해 보시기 바랍니다.