네임스페이스 범위

이름은 공개 범위에 맞게 묶는다

전역, 명명된, 익명 네임스페이스는 이름이 보이는 범위를 다르게 만듭니다.

::name

전역 네임스페이스

작은 예제나 프로그램 진입점처럼 전체에서 바로 보여도 되는 이름에만 적합합니다.

std::cout

명명된 네임스페이스

라이브러리, 모듈, 도메인 단위로 이름을 묶어 충돌 가능성을 낮춥니다.

namespace { }

익명 네임스페이스

한 소스 파일 안에서만 쓰는 헬퍼와 상태를 외부 링크에서 숨깁니다.

헤더 using 금지 헤더에서는 전역 `using namespace`를 피하고, 필요한 이름만 명시적으로 가져오는 편이 안전합니다.