네임스페이스(namespace)는 한 집합의 이름을 다른 이름들과 분리하여 관리할 수 있도록 설계된 기능입니다. 이를 통해 클래스, 함수, 변수 등의 이름이 서로 충돌하지 않도록 할 수 있습니다.
네임스페이스 정의 문법
네임스페이스 정의는 namespace 키워드로 시작하며, 그 뒤에 네임스페이스 이름을 작성합니다. 기본 문법은 다음과 같습니다.
namespace namespace_name {
// 코드 선언
}C# 네임스페이스 사용 예제
다음 예제는 C#에서 두 개의 서로 다른 네임스페이스를 정의하고 활용하는 방법을 보여줍니다. 각 네임스페이스에는 동일한 이름의 클래스가 존재하지만, 네임스페이스로 구분되기 때문에 충돌 없이 함께 사용할 수 있습니다.
using System;
namespace first_space {
class namespace_cl {
public void func() {
Console.WriteLine("Inside first_space");
}
}
}
namespace second_space {
class namespace_cl {
public void func() {
Console.WriteLine("Inside second_space");
}
}
}
class TestClass {
static void Main(string[] args) {
first_space.namespace_cl fc = new first_space.namespace_cl();
second_space.namespace_cl sc = new second_space.namespace_cl();
fc.func();
sc.func();
Console.ReadKey();
}
}실행 결과
Inside first_space Inside second_space
핵심 정리
위 예제에서 볼 수 있듯이, first_space와 second_space라는 두 개의 네임스페이스에는 같은 이름의 클래스 namespace_cl이 존재합니다. 하지만 네임스페이스를 통해 각각 구분되기 때문에 first_space.namespace_cl, second_space.namespace_cl 형태로 충돌 없이 호출할 수 있습니다.
또한 using 키워드를 활용하면 매번 네임스페이스 전체 경로를 입력하지 않고도 해당 네임스페이스에 포함된 클래스를 간편하게 사용할 수 있습니다. 대규모 프로젝트에서 코드의 구조화와 이름 충돌 방지를 위해 네임스페이스는 필수적인 요소입니다.