프로그래밍 언어 문법 | ||
{{{#!wiki style="margin: -16px -11px; word-break: keep-all" | <colbgcolor=#0095c7><colcolor=#fff,#000> 언어 문법 | C(포인터 · 구조체 · size_t) · C++(자료형 · 클래스 · 이름공간 · 상수 표현식 · 특성) · C# · Java · Python(함수 · 모듈) · Kotlin · MATLAB · SQL · PHP · JavaScript · Haskell(모나드) |
마크업 문법 | HTML · CSS | |
개념과 용어 | 함수(인라인 함수 · 고차 함수 · 람다식) · 리터럴 · 상속 · 예외 · 조건문 · 반복문 · 참조에 의한 호출 · eval · 네임스페이스 | |
기타 | #! · == · === · deprecated · NaN · null · undefined · 배커스-나우르 표기법 | |
프로그래밍 언어 예제 · 목록 · 분류 | }}} |
1. 컴퓨터 용어
Namespace / 이름 공간#!syntax cpp
#include <iostream>
using namespace std;
namespace namu
{
char text[20] = "나무위키";
}
namespace wiki
{
char text[20] = "Namuwiki";
}
int main(void)
{
cout << namu::text << endl;
cout << wiki::text << endl;
return 0;
}
C++에서의 네임스페이스의 사용 예시.[1]
프로그램상에서 하나의 네임스페이스(=이름 공간)에서는 같은 변수명이 같은 개체를 가리킨다. 반대로 네임스페이스가 다르면 위의 C++의 소스처럼 변수의 이름이 text로 동일해도 실제로 가리키는 변수가 달라지게 된다.
프로그램이 커질수록 변수나 함수명이 서로 빈번하게 충돌하기 때문에 필요성이 대두되었다. 그나마 한 프로그램 내에서 이름 충돌이 발생하면 어떻게든 해결할 수 있지만, 사용 중인 여러 라이브러리 내에서 서로 이름 충돌이 발생할 경우 답이 없다.
이러한 이유로 최신 프로그래밍 언어에선 필수라고 해도 될 정도로 네임스페이스나 그와 유사한 기능을 제공하고 있다.
꼭 프로그래밍이 아니더라도 C:\\User\\name\\같은 파일 경로부터 namu.wiki같은 도메인 네임까지 네임스페이스가 사용된 곳은 아주 많다.
2. 위키에서의 네임스페이스
미디어위키, the seed 등을 비롯한 위키 엔진들이 대부분 지원하는 문서 제목 앞에 붙는 "XX:"과 같은 것들을 의미한다.[2]이름 공간에 따라서 ACL이 지정되기도 하며,[3] 나무위키는 이름공간에 해당되는 글자에 형광색 밑줄이 쳐진다.[4] 또한 특정 이름 공간은 일반적인 방법(새 문서 생성)을 이용하여 문서를 만들 수 없다.[5] 이름 공간 ACL 변경은 사측 관리자만 가능하다.
2.1. 나무위키의 네임스페이스별 문서 개수
기준 총 문서 수 7258438개 | |
문서 | 7258438 |
파일 | 7258438 |
분류 | 7258438 |
틀 | 7258438 |
템플릿 | 7258438 |
사용자 | 7258438 |
나무위키 | 7258438 |
휴지통 | 7258438 |
파일휴지통 | 7258438 |
위키운영 | 7258438 |
투표 | 7258438 |
토론 | 7258438 |
특수기능 | 7258438 |
시스템 | 7258438 |
나무위키에서 가장 많이 접하는 문서의 네임스페이스는 다름아닌 "문서:"다. 디폴트 이름공간이라 문서 제목에 직접 표시되지 않을 뿐.[6]
이 중 "토론", "투표", "특수기능", "시스템"의 경우 네임스페이스는 존재하지만 아직까지 사용된 적이 없거나, 예전에 사용되었으나 현재는 사용하지 않는 네임스페이스들이라 0개로 뜬다. 해당 네임스페이스에 속하는 임의의 문서로 들어가면, 'ACL에 허용 규칙이 없기 때문에 읽기 권한이 부족합니다. 해당 문서의 ACL 탭을 확인하시기 바랍니다.' 문구가 출력된다.[7]
흔한 오해 중 하나로, "더미:"는 시스템 상 네임스페이스의 종류가 아니다. RandomPage에서도 '더미'는 없다.
[1] 이 코드의 실행 결과는 첫 번째 줄에는 '나무위키'가 출력되고 두 번째 줄에는 'Namuwiki'가 출력된다.[2] 대표적으로 나무위키:대문의 "나무위키:" 부분.[3] 가령 "사용자:"가 붙은 것은 모든 사용자 또는 IP가 읽을 수 있지만 해당 사용자 본인과 봇 그리고 관리자만 편집할 수 있다. "틀:"이 붙은 것은 로그인한 사용자 또는 IP 유저 중 해당 문서에 기여한 유저만 편집할 수 있으며, "휴지통:", "파일휴지통:", "위키운영:"이 붙은 것은 관리자만 읽거나 편집할 수 있다.[4] 스킨에 따라 이름 공간 부분의 색은 다른 글자와 미세하게 다르기도 하다. 나무위키 이전 스킨인 senkawa 스킨의 경우 라이트 테마에서의 색은 #545454(일반 글씨는 #373A3C)이며, 다크 테마에서의 색은 #C7C7C7(일반 글씨는 #DDDDDD)이다. 이것으로 해당 이름 공간이 존재하는지 확인할 수 있다.[5] 파일 문서와 사용자 문서의 경우 새 문서 만들기로 문서를 생성하려 하면 오류가 뜬다.[6] 검색창에 "문서:"라고 치면 !부터 문서들이 순서대로 나열되고, "문서:" 뒤에 문서명을 치면 일반 검색과 똑같은 역할을 한다는 점에서 네임스페이스가 명시되지 않은 모든 문서의 네임스페이스는 '문서'임을 알 수 있다.[7] 그리고 해당 문서의 ACL 탭을 확인하려고 하면 오류가 발생하며 '문서 이름이 올바르지 않습니다.' 문구가 출력된다.