Development/C#

[제프리 리처의 CLR via C#] 네임스페이스와 어셈블리

오늘도 진이 2021. 4. 7. 12:18

2부. 타입 설계

4장. 타입의 기초

네임스페이스와 어셈블리

  • 네임스페이스는 서로 관련이 있는 타입들을 논리적으로 그룹화하기 위한 수단으로, 개발자들은 특정한 타입을 쉽게 찾을 수 있도록 활용하곤 한다.
  • 컴파일러의 입장에서 네임스페이스는 타입의 이름을 길게 확장하면서 더 고유한 이름을 가질 수 있도록 만들어주는 쉬운 방법으로, 몇 개의 단어와 이들 사이를 구분하는 점 기호로 구성되는 이름이다.
  • C#에서 using 지시자를 사용할 것인지의 여부는 전적으로 여러분의 선택에 따르는 문제이며 필요하다면 네임스페이스를 포함하는 전체 타입 이름을 매번 기술해주어도 상관 없다.
💡
중요 CLR은 네임스페이스에 관하여 아무것도 알지 못한다. 어떤 타입을 사용하려고 할 때, CLR은 구분자 기호가 들어갈 수 있는 타입의 전체 이름만이 필요할 뿐이며, 그리고 해당 타입을 어떤 어셈블리에서 가지고 있는지 알 수 있어야 한다. 이러한 조건을 만족해야 실행 시에 올바른 어셈블리를 로드하고, 타입을 찾아서, 코드를 처리할 수 있다.
  • 타이핑해야 할 코드의 수를 줄일 수 있고, 작성한 코드도 좀 더 깨끗하게 유지할 수 있어 읽기 쉽게 만들어줄 것이다.
  • 컴파일러가 정확한 어셈블리를 찾으면, 어셈블리 정보와 타입 정보가 만들어지는 관리 모듈의 메타데이터상에 기록될 것이다.
  • MSCORLIB.DLL 어셈블리에는 Object, Int32, String 등의 핵심적인 타입들을 모두 포함하는 FCL이 들어있다.
  • C#의 using 구문의 한 형태를 이용하면 특정 타입에 대한 별명을 만들 수 있다. 이 방식을 사용하면 특정 네임스페이스 안에 들어있는 모든 네임스페이스를 글로벌 네임스페이스로 병합하지 않고 원하는 타입만을 가져와서 쓸 수 있으므로 매우 유용하다.