다음을 통해 공유


네임스페이스의 이름

네임스페이스에 사용하기 위해 선택한 이름은 네임스페이스의 형식에서 제공하는 기능을 나타내야 합니다. 예를 들어, System.Net.Sockets 네임스페이스에는 개발자가 소켓을 사용하여 네트워크에서 통신할 수 있는 형식이 포함되어 있습니다.

네임스페이스 이름에 대한 일반 형식은 다음과 같습니다.

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]

예를 들어, Microsoft.WindowsMobile.DirectX을 입력합니다.

다른 회사의 네임스페이스에 동일한 이름 및 접두사를 사용하지 않도록 하려면 회사 이름에 네임스페이스 이름을 접두사로 추가합니다.

네임스페이스 이름의 두 번째 수준에서 버전에 관계없는 안정된 제품 이름을 사용합니다.

기업의 그룹 이름은 일반적으로 수명이 짧으므로 네임스페이스 계층 구조의 이름에 대한 기준으로 조직 계층 구조를 사용하지 않습니다.

네임스페이스 이름은 수명이 길고 변경되지 않는 식별자입니다. 조직 성장에 따른 변경으로 네임스페이스 이름이 사용할 수 없는 이름이 되어서는 안 됩니다.

파스칼식 대/소문자를 사용하고, 마침표를 사용하여 네임스페이스 구성 요소를 구분합니다(예: Microsoft.Office.PowerPoint). 사용자 브랜드에 일반적인 대/소문자 규칙을 사용하지 않는 경우에는 일반적인 네임스페이스 대/소문자 규칙에서 파생되더라도 사용자 브랜드에 정의된 대/소문자 규칙을 따라야 합니다.

필요한 경우 복수형 네임스페이스 이름을 사용할 수 있습니다. 예를 들어 System.Collection 대신 System.Collections를 사용합니다. 그러나 브랜드 이름과 머리글자어는 이 규칙의 예외입니다. 예를 들어, System.IOs 대신 System.IO를 사용합니다.

네임스페이스와 해당 네임스페이스의 형식에 같은 이름을 사용하지 않습니다. 예를 들어, 네임스페이스 이름에 Debug를 사용하지 않고 같은 네임스페이스에 Debug라는 클래스를 제공합니다. 몇몇 컴파일러에서는 해당 형식을 정규화해야 합니다.

네임스페이스 및 형식 이름 충돌

기존 이름과 충돌하는 네임스페이스 또는 형식 이름을 선택하는 경우, 라이브러리 사용자가 영향을 받는 항목에 대한 참조를 규정해야 합니다. 이는 대부분의 개발 시나리오에 해당되지는 않습니다.

이 단원에서 설명하는 지침 중 일부는 다음 네임스페이스 범주와 관련이 있습니다.

  • 응용 프로그램 모델 네임스페이스

  • 인프라 네임스페이스

  • 핵심 네임스페이스

  • 기술 네임스페이스 그룹

응용 프로그램 모델의 네임스페이스는 응용 프로그램 클래스의 특정 기능 집합을 제공합니다. 예를 들어, System.Windows.Forms 네임스페이스의 형식은 Windows Forms 클라이언트 응용 프로그램을 작성하는 데 필요한 기능을 제공합니다. System.Web 네임스페이스의 형식은 웹 기반 서버 응용 프로그램 작성을 지원합니다. 일반적으로 다른 응용 프로그램 모델의 네임스페이스는 동일한 응용 프로그램에서 사용되지 않으므로, 이름 충돌로 사용자 라이브러리를 사용하는 개발자에게 영향을 주는 경우는 많지 않습니다.

인프라 응용 프로그램은 특수 지원을 제공하며 프로그램 코드에서 거의 참조되지 않습니다. 예를 들어, *.Designer 네임스페이스의 형식은 프로그램 개발 도구에서 사용됩니다. *.Permissions 네임스페이스는 인프라 네임스페이스의 또 다른 예입니다. 인프라 네임스페이스에 있는 형식과의 이름 충돌은 사용자 라이브러리를 사용하는 개발자에게 영향을 주지 않습니다.

핵심 네임스페이스는 응용 프로그램 및 인프라 네임스페이스를 제외한 System.* 네임스페이스입니다. SystemSystem.Text는 핵심 네임스페이스의 예입니다. 핵심 네임스페이스의 형식과 이름은 절대로 충돌해서는 안 됩니다.

특정 기술에 속하는 네임스페이스의 첫 번째 수준 식별자와 두 번째 수준 식별자는 모두 Company.technology.*입니다. 기술에서 이름이 충돌해서는 안 됩니다.

일반 네임스페이스 지침

Element, Node, Log 및 Message와 같은 제네릭 형식 이름을 사용해서는 안 됩니다. 이러한 이름을 사용하는 경우 일반적인 시나리오에서 형식 이름이 충돌하게 됩니다. 제네릭 형식 이름(FormElement, XmlNode EventLog, SoapMessage)을 규정해야 합니다.

응용 프로그램 네임스페이스 지침

단일 응용 프로그램 모델에서 네임스페이스의 형식에 같은 이름을 지정하지 않습니다.

예를 들어, Windows Forms 응용 프로그램 개발자가 사용할 특수 컨트롤의 라이브러리를 작성하는 경우 응용 프로그램 모델에 대해 이 이름을 사용하는 형식(CheckBox)이 이미 있으므로 Checkbox 형식을 사용해서는 안 됩니다.

핵심 네임스페이스 지침

핵심 네임스페이스의 형식과 충돌할 형식 이름은 지정하지 않습니다.

예를 들어, Directory를 형식 이름으로 사용하는 경우 Directory 형식과 충돌하므로 사용해서는 안 됩니다.

기술 네임스페이스 지침

단일 기술의 다른 형식과 충돌할 형식 이름은 지정하지 않습니다.

해당 기술을 응용 프로그램 모델에서 사용하려는 경우, 기술 네임스페이스와 응용 프로그램 모델 네임스페이스의 형식 간에 충돌할 수 있는 형식 이름은 사용하지 않습니다.

Portions Copyright 2005 Microsoft Corporation. All rights reserved.

Portions Copyright Addison-Wesley Corporation. All rights reserved.

디자인 지침에 자세한 내용은 참조를 "Framework 디자인 지침: 규칙, 숙어, 및 재사용에 대 한 패턴입니다.NET 라이브러리"도 서 Krzysztof Cwalina와 Brad Abrams, 게시 Addison-wesley, 2005.

참고 항목

기타 리소스

클래스 라이브러리 개발을 위한 디자인 지침

이름 지침