C++

네임스페이스

조금 더 큰 관점에서 C++ 코드를 체계적으로 관리하고 서로 다른 코드 간의 이름 충돌을 방지하는 네임스페이스(Namespace)를 정리합니다. 프로그램의 규모가 커지고 표준 라이브러리, 외부 라이브러리, 사내 모듈을 함께 쓰면 같은 이름을 가진 함수나 타입이 여러 곳에서 정의될 수 있습니다.

이름이 충돌할 수 있는 범위를 확인하고, namespace와 using 선언을 어디까지 허용할지 정리합니다.

네임스페이스 흐름

1

네임스페이스 개념

네임스페이스는 말 그대로 이름을 위한 공간입니다.

2

네임스페이스 선언과 사용

namespace 블록 안에 선언한 이름은 Scope::Name 형태로 접근합니다.

3

using 지시자

using 선언은 반복되는 접두어를 줄이지만, 범위가 넓으면 이름 충돌을 다시 숨길 수 있습니다.

4

전역 네임스페이스

네임스페이스 안에 명시적으로 선언되지 않은 모든 변수, 함수 등은 전역 네임스페이스(Global Namespace)에 속합니다.