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