이름공간

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

이름공간 또는 네임스페이스(Namespace)는 개체를 구분할 수 있는 범위를 나타내는 말로 일반적으로 하나의 이름 공간에서는 하나의 이름이 단 하나의 개체만을 가리키게 된다.

컴퓨터 프로그래밍 언어인 C에서는 전역 지역 공간과 지역 이름 공간라는 이름 공간에 대한 개념이 있는데, 각각의 이름 공간에서는 같은 변수나 함수 이름을 사용할 수 없지만, 영역이 다르면 변수나 함수명이 같을 수도 있다. C++와 Java 프로그래밍 언어에서는 이름 공간을 명시적으로 지정하여 사용할 수 있다.

네이밍 시스템[편집]

이름공간의 이름은 이름공간 식별자와 로컬 이름으로 구성된다. 이름공간의 이름은 일반적으로 로컬 이름에 대한 두문자로 적용된다.

ABNF 형식으로는 다음과 같이 나타낸다.

name = <namespace identifier> separator <local name>

[편집]

이름공간의 이름의 예
컨텍스트 이름 이름공간 식별자 로컬 이름
경로 /home/user/readme.txt /home/user (path) readme.txt (file name)
도메인 네임 www.example.com example.com (domain) www (host name)
C++ std::array std array
UN/LOCODE US NYC US (country) NYC (locality)
XML xmlns:xhtml="http://www.w3.org/1999/xhtml"
<xhtml:body>
http://www.w3.org/1999/xhtml body
$DBI::errstr DBI $errstr
자바 java.util.Date java.util Date
URN (URN) urn:nbn:fi-fe19991055 urn:nbn (National Bibliography Numbers) fi-fe19991055
핸들 시스템 10.1000/182 10 (Handle naming authority) 1000/182 (Handle local name)
디지털 객체 식별자 10.1000/182 10.1000 (publisher) 182 (publication)
MAC 주소 01-23-45-67-89-ab 01-23-45 (en:organizationally unique identifier) 67-89-ab (NIC specific)
PCI ID 1234 abcd 1234 (Vendor ID) abcd (Device ID)
USB VID/PID 2341 003f[1] 2341 (Vendor ID) 003f (Product ID)

프로그래밍에서의 예[편집]

아래는 C++에 사용한 이름공간의 예이다.

namespace Box1{
   int boxSide = 4;
}

namespace Box2{
   int boxSide = 12; 
}

int main () {
  cout << Box1::boxSide << endl;  //output 4
  cout << Box2::boxSide << endl;  //output 12
  return 0;
}

같이 보기[편집]

각주[편집]

  1. Stephen J. Gowdy. "List of USB ID's". 2013.