Namespace

About_work·2024년 2월 10일
0

cs 기초

목록 보기
23/38
  • 간단하게 말하자면 변수, 함수, 클래스 등의 이름이 저장되는 공간을 의미
  • 이를 통해 같은 이름이지만 다른 네임스페이스에 존재하는 객체들을 구분할 수 있음

네임스페이스 비유

상상해 보세요. 여러분의 학교에는 같은 이름을 가진 학생들이 여러 명 있을 수 있습니다. 예를 들어, '민준'이라는 이름을 가진 학생이 여러 반에 한 명씩 있을 수 있어요. 여기서 각 '반'은 하나의 네임스페이스처럼 작동합니다. 1반의 '민준'과 2반의 '민준'은 같은 이름을 공유하지만, 속한 반(네임스페이스)이 다르기 때문에 서로 다른 학생으로 구분됩니다.

이와 마찬가지로 프로그래밍에서도 변수나 함수의 이름(예: score, updateScore)이 같더라도, 속한 네임스페이스가 다르면 서로 다른 것으로 처리됩니다. 이를 통해 이름 충돌을 방지하고, 코드를 더 깔끔하고 체계적으로 관리할 수 있습니다.

네임스페이스의 예

  1. 전역 네임스페이스(Global Namespace): 프로그램 전체에서 접근할 수 있는 변수, 함수, 클래스 등을 저장합니다. 프로그램의 어디에서나 접근 가능한 '공용 공간'이라고 생각할 수 있습니다.

  2. 로컬 네임스페이스(Local Namespace): 함수 내부와 같은 특정 영역에서만 접근할 수 있는 이름들을 저장합니다. 함수가 호출될 때 생성되고, 함수가 종료될 때 사라집니다. 이는 함수 내부에서 정의된 변수나 함수 등이 외부와 격리되어 독립적으로 작동할 수 있게 합니다.

  3. 모듈 네임스페이스(Module Namespace): 파이썬에서는 파일 하나가 하나의 모듈이 됩니다. 각 모듈은 자신만의 네임스페이스를 가지며, 이 안에 정의된 함수나 변수들은 모듈 이름을 통해 접근할 수 있습니다.

네임스페이스 덕분에 우리는 이름 충돌 없이 코드를 더 효율적으로 구성하고 관리할 수 있게 됩니다. 이는 마치 학교에서 여러 반에 같은 이름을 가진 학생들이 있더라도, 어느 반의 어느 학생인지 명확하게 구분할 수 있는 것과 같은 원리입니다.

profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글