Namespace   이름 공간, 네임 공간, 네임 스페이스

(2020-03-15)

Address Space, 주소 공간, Domain Name Space, 도메인 이름 공간

1. 이름 공간(네임 스페이스) 또는 주소 공간

  ㅇ [일반]        
     - 참조되는 저장 장소, 저장 구조, 저장 영역/범위/용량 등을 의미 

  ㅇ [프로그래밍]  
     - 어떤 이름(변수,함수,메소드 등)으로 영향을 미칠 수 있는 공간(범위)

  ㅇ [메모리 관리]  
     - 컴퓨터 구조 상의 주소 공간
        . 프로세서가 참조 가능한(Addressable) 최대 메모리 공간을 의미 
           .. 실제 물리적 메모리 공간 보다 더 큰 가상의 메모리를 쓰는 프로세스 주소 공간
           .. 즉, 가상메모리 관리 기법 상의 메모리 주소 공간을 지칭함

  ㅇ [인터넷]
     - 인터넷 상의 이름 또는 주소를 부여하는 논리적/구조적 공간
        . 이름 : 보통, 인간이 식별할 수 있는 명칭
        . 주소 : 보통, 기계가 식별할 수 있는 숫자 주소 


2. [인터넷]  인터넷 상의 이름 공간주소 공간  인터넷 이름 공간인터넷도메인 참조 
     - 도메인 이름을 저장하는 공간적 구성 형태 
        . 계층적 트리구조를 취함 (0 레벨인 루트로부터 최대 128개 레벨 가능) ☞ 트리 용어 참조
           .. 각 도메인은 그에 해당하는 도메인 이름을 가지며, 
           .. 상위 도메인은 하위 도메인에 대한 정보를 유지 관리하는 형태를 취함

  ㅇ 인터넷 주소 공간IP 주소 참조
     - 인터넷 상의 논리IP주소가 부여될 수 있는 주소 공간 (주소용량)
        . 공인 주소는 보통 지리적으로 큰 블록 단위주소 할당을 함 

  ※ 이름 및 주소 간 변환           ☞ 이름 주소 변환 참조


3. [프로그래밍]  네임스페이스

  ㅇ 어떤 이름(변수,함수,메소드 등)으로 영향을 미칠 수 있는 공간(범위)

  ㅇ 프로그래밍에서, `이름 충돌(name collision)`을 방지하는 방법
     - 클래스,인터페이스,함수,상수 등 이름에 표준적인 공통 접두어를 적용하는 표기법
        . 이들을 한곳에 모아두어(별도 파일 또는, 프로그램 시작부), 이름 충돌을 방지
     - 전역 네임스페이스를 분할하는 메카니즘
        . 같은 이름을 여러 다른 기능에 사용 가능케 하여, 대규모 프로그램 제작에 유리
        . 즉, 타 부류(개발자/팀)의 코드와 구분시켜 이름 충돌이 없게 함
        . 이를통해, 타 부류(개발자/팀)의 코드와 동시에 작동하는 고립된 코드 작성이 가능

     - C++ 언어 例)
        . 정의 : namespace 네임스페이스이름 { 이곳에 클래스,변수,함수 등을 선언 함 }
        . 사용 
           .. using 지시문(Directive) : 네임스페이스의 모든 식별자를 범위(Scope)로 가져오기
               
#include <iostream>
using namespace std;
.. using 선언(Declaration) : 해당 식별자 만을 범위(Scope)로 가져오기 .. :: (Scope resolution operator) : 매 식별자 마다 명시적으로 사용 4. [참고사항]인터넷 이름 공간에서 정보의 저장 및 관리 ☞ 네임서버 참조 ㅇ 주소(이름)의 식별 체계 ☞ 주소체계 참조 ㅇ IP 주소 공간의 절약/극대화 ☞ CIDR, VLSM 참조


[네임공간] 1. 이름 공간 2. 도메인 이름 3. TLD,gTLD,ccTLD 4. 호스트 이름,FQDN 5. DNS 영역(Zone) 6. 레지스트라

 
        최근수정     요약목록     참고문헌