namespace kinds

네임스페이스 종류는 이름을 공개할 범위를 정한다

이름을 프로젝트 전체에 공개할지, 계층으로 나눌지, 한 파일 안에 숨길지에 따라 모양이 달라집니다.

명명여러 파일에서 공유할 이름을 한 소속으로 묶는다.namespace app { ... }
중첩큰 소속 안에서 UI, IO처럼 기능 영역을 더 작게 나눈다.namespace app::ui { ... }
익명해당 .cpp 파일 안에서만 쓸 내부 이름을 숨긴다.namespace { ... }
전역소속을 붙이지 않은 이름이라 충돌 가능성이 가장 넓다.int value;

기본은 명명 네임스페이스로 묶고, 파일 내부 구현 세부사항은 익명 네임스페이스로 숨깁니다.