33.1 네임스페이스
네임스페이스는 프로그램 규모가 커질 때 클래스 이름이 충돌하는 것을 방지하도록 클래스를 모아서 관리하는 개념입니다. 현실 세계에서 인터넷 도메인 주소를 사용하여 웹 사이트를 구분하듯, 네임스페이스를 달리하여 이름이 동일한 클래스를 하나의 프로젝트에서 사용할 수 있게 할 수 있습니다.
▲ 그림 33-1 네임스페이스로 클래스를 묶어 관리
닷넷에는 수많은 클래스가 있습니다. 이러한 클래스들은 의미가 같은 클래스끼리 네임스페이스로 묶어 관리합니다. 우리가 지금까지 사용해 오던 Console 클래스처럼 주요 클래스들을 System 네임스페이스 내에 선언해서 사용해 왔습니다. 지금까지 해 왔던 것처럼 이러한 네임스페이스는 using 지시문을 사용하여 클래스 파일의 위쪽에 선언합니다.
네임스페이스는 다음 특징이 있습니다. 간단히 읽고 넘어가세요.
• 서로 관련 있는 클래스, 구조체, 열거형 등의 형식과 또 다른 네임스페이스 등을 묶어 관리해 주는 개념입니다.
• 클래스 이름이 중복되는 것을 방지하는 역할을 합니다.
• 클래스를 계층형으로 묶어 관리할 수 있습니다.
• 네임스페이스는 패키지란 단어와 의미가 비슷하며, 관련 있는 형식의 묶음입니다.
그렇다면 네임스페이스는 왜 사용할까요? 하나의 큰 프로젝트를 개발하다 보면, A 개발자도 Car 클래스를 만들고 동시에 B 개발자도 Car 클래스를 만들 수 있습니다. 이때 클래스 이름이 같아 충돌이 발생합니다. 이 경우에는 네임스페이스를 사용하여 서로 관련 있는 클래스끼리 구분하여 묶어서 관리하면 됩니다.