고급 TypeScript - 모듈과 네임스페이스: 네임스페이스의 사용

모듈과 네임스페이스: 네임스페이스의 사용

TypeScript에서 모듈과 네임스페이스는 코드의 구조화와 재사용성을 높이는 중요한 개념입니다. 이 두 가지는 서로 다른 방식으로 코드를 조직하고 관리할 수 있게 해줍니다.

1. 모듈 시스템

모듈은 독립적인 코드 블록으로, 특정 기능이나 객체를 캡슐화하여 외부와의 의존성을 줄여주는 역할을 합니다. TypeScript에서는 ES6 모듈 시스템을 기반으로 하며, importexport 키워드를 사용하여 다른 파일 간에 코드를 공유합니다.

예제:

// math.ts 파일
export function add(x: number, y: number): number {
    return x + y;
}

export function subtract(x: number, y: number): number {
    return x - y;
}

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

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

위 예제에서 math.ts 파일은 두 개의 함수를 정의하고 이를 export합니다. 그리고 app.ts에서 이 함수들을 import하여 사용할 수 있습니다.

2. 네임스페이스의 사용

네임스페이스는 관련된 코드 조각들을 그룹화하는 방법입니다. 주로 전역 범위를 오염시키지 않고 여러 관련 기능을 묶어 사용하는 데 유용합니다. TypeScript에서는 namespace 키워드를 사용하여 정의할 수 있습니다.

예제:

namespace Geometry {
    export class Circle {
        constructor(public radius: number) {}

        area(): number {
            return Math.PI * this.radius ** 2;
        }
    }

    export class Square {
        constructor(public sideLength: number) {}

        area(): number {
            return this.sideLength ** 2;
        }
    }
}

// 사용 예시:
const circle = new Geometry.Circle(10);
console.log(circle.area()); // 원의 면적 출력

const square = new Geometry.Square(4);
console.log(square.area()); // 정사각형의 면적 출력

위 예제에서는 Geometry라는 네임스페이스 안에 두 개의 클래스를 정의했습니다. 각 클래스는 해당 도형에 대한 면적을 계산하는 메서드를 가지고 있으며, 이를 통해 관련된 클래스를 함께 묶어 관리할 수 있습니다.

결론

모듈과 네임스페이스 모두 TypeScript에서 코드를 더 잘 조직하고 유지보수하기 위해 사용하는 방법입니다.

  • 모듈은 독립적으로 작성된 코드 조각들이며,
  • 네임스페이스는 관련된 기능들을 하나로 묶어서 관리하는 방법입니다.

이러한 구조화를 통해 개발자는 보다 깔끔하고 이해하기 쉬운 코드를 작성할 수 있으며 대규모 애플리케이션에서도 효과적으로 작업할 수 있습니다.

Subscribe to shimdh.log

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe