TypeScript 네임스페이스 작업

TypeScript 네임스페이스는 단일 글로벌 범위 내에서 코드를 구성하고 관리하는 방법을 제공합니다. 네임스페이스는 관련 코드를 그룹화하고, 이름 충돌을 방지하고, 코드 유지 관리를 개선하는 데 도움이 됩니다. 이 가이드는 예제를 통해 TypeScript 네임스페이스를 만들고 사용하는 기본 사항을 다룹니다.

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

네임스페이스는 TypeScript에서 코드를 캡슐화하는 방법입니다. 이를 통해 관련 함수, 클래스 및 변수를 단일 논리적 단위로 그룹화할 수 있으며, 이는 대규모 프로젝트에서 이름 충돌을 피하고 코드 구성을 개선하는 데 유용할 수 있습니다.

네임스페이스 생성

네임스페이스를 만들려면 namespace 키워드를 사용하고 그 뒤에 이름과 코드 블록을 추가합니다. 네임스페이스 블록 내부에서 해당 네임스페이스에 속해야 하는 함수, 클래스 또는 변수를 정의합니다.

// mathUtils.ts

namespace MathUtils {
  export function add(a: number, b: number): number {
    return a + b;
  }

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

이 예에서 MathUtils 네임스페이스에는 addsubtract이라는 두 개의 함수가 포함되어 있으며, 둘 다 네임스페이스 외부에서 사용하기 위해 내보내집니다.

네임스페이스 사용

네임스페이스 내에서 코드를 사용하려면 네임스페이스 이름 앞에 접두사를 붙이고 점과 멤버 이름을 붙입니다. 네임스페이스가 사용 중인 범위에서 사용 가능한지 확인합니다.

// app.ts

/// <reference path="mathUtils.ts" /> 

const sum = MathUtils.add(5, 3);
const difference = MathUtils.subtract(5, 3);

console.log(`Sum: ${sum}`);
console.log(`Difference: ${difference}`);

이 예에서 MathUtils 네임스페이스는 삼중 슬래시 지시어 '<reference path="mathUtils.ts" />'를 사용하여 참조되며, 이를 통해 app.ts 파일에 있는 해당 함수에 액세스할 수 있습니다.

중첩된 네임스페이스

네임스페이스는 다른 네임스페이스 내에 중첩될 수 있으며, 이는 코드를 더욱 구성하는 데 도움이 됩니다. 중첩된 네임스페이스는 네임스페이스 이름을 점으로 연결하여 액세스합니다.

// shapes.ts

namespace Shapes {
  export namespace Circle {
    export function area(radius: number): number {
      return Math.PI * radius * radius;
    }
  }

  export namespace Square {
    export function area(side: number): number {
      return side * side;
    }
  }
}

이 예에서 Shapes 네임스페이스에는 두 개의 중첩된 네임스페이스인 CircleSquare이 포함되어 있으며, 각각 고유한 area 함수가 있습니다.

중첩된 네임스페이스 사용

중첩된 네임스페이스의 멤버에 액세스하려면 점 표기법을 사용하여 네임스페이스 이름을 연결합니다.

// app.ts

/// <reference path="shapes.ts" /> 

const circleArea = Shapes.Circle.area(5);
const squareArea = Shapes.Square.area(4);

console.log(`Circle Area: ${circleArea}`);
console.log(`Square Area: ${squareArea}`);

이 예에서 CircleSquare 네임스페이스는 Shapes 네임스페이스를 통해 액세스되며, 중첩된 네임스페이스를 어떻게 활용할 수 있는지 보여줍니다.

결론

TypeScript 네임스페이스는 코드를 구성하고 관리하는 강력한 도구입니다. 네임스페이스를 사용하면 코드를 논리적으로 그룹화하여 이름 충돌 위험을 줄이고 유지 관리성을 개선할 수 있습니다. 중첩된 네임스페이스를 포함하여 네임스페이스를 만들고 사용하는 방법을 이해하는 것은 효과적인 TypeScript 개발에 필수적입니다.