C# 네임스페이스란?
네임스페이스(namespace)는 한 그룹의 이름을 다른 이름들과 분리하여 관리할 수 있도록 해주는 C#의 핵심 기능입니다. 대규모 프로젝트에서 클래스, 구조체, 인터페이스 등의 이름 충돌을 방지하고 코드를 체계적으로 구성하는 데 필수적인 역할을 합니다.
C#에서 네임스페이스 정의는 namespace 키워드로 시작하며, 그 뒤에 네임스페이스 이름을 붙여 선언합니다.
namespace namespace_name {
// 코드 선언부
}네임스페이스 사용 예제
다음 예제는 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();
}
}
위 코드에서 first_space와 second_space라는 두 네임스페이스에는 동일한 이름의 클래스(namespace_cl)가 존재합니다. 하지만 소속된 네임스페이스가 다르기 때문에 이름 충돌 없이 함께 사용할 수 있습니다. 클래스에 접근할 때는 first_space.namespace_cl처럼 네임스페이스 이름을 접두사로 붙여 어느 클래스를 참조하는지 명확히 지정합니다.
실행 결과
Inside first_space
Inside second_space
using 키워드로 더 간편하게
매번 네임스페이스 이름을 전부 작성하는 것이 번거롭다면, 파일 상단에 using 지시문을 추가하여 네임스페이스 접두사를 생략할 수 있습니다.
using first_space;
// 이후 코드에서
namespace_cl fc = new namespace_cl(); // 접두사 생략 가능
이처럼 네임스페이스와 using 키워드를 적절히 활용하면 코드의 가독성과 유지보수성을 크게 높일 수 있습니다.