C#

C# / .NET 알고리즘과 퀴즈
본 알고리즘 퀴즈 문제는 C#/.NET 개발자를 위한 알고리즘 인터뷰 혹은 C# 프로그래밍을 통한
문제 해결 알고리즘을 연구해 보는데 도움이 되고자 작성되었습니다.


퀴즈 질문


예상답변/설명

GAC이란 Global Assembly Cache의 약자이며 .NET Assembly를 머신 전체에서 공유하여 사용하기 위한 특별한 캐쉬를 일컫는다.

  • GAC은 Windows 디렉토리밑의 assembly라는 디렉토리에 있는데, GAC에 .NET 어셈블리를 설치하기 위해서는 gacutil.exe 같은 유틸러티를 사용한다.
  • GAC에 설치되기 위해서는 해당 어셈블리가 Strongly-named 어셈블리이어야 한다. GAC에 설치되는 DLL은 이름과 함께 Version, Culture, public key를 모두 포함해야 하며, 어셈블리가 SN.exe같은 툴을 써서 사인(sign)되어져야 한다 (참조: bit.ly/14k9d86).

DLL이 GAC에 설치되면, 실행시 우선 순위를 갖게된다. 즉, 실행 프로그램과 동일한 디렉토리에 DLL이 있고, 동일한 DLL이 GAC에 있다면, GAC의 DLL이 실행된다.

GAC DLL은 기존의 DLL Hell문제를 해결하기 위해 Version정보를 함께 가지고 있는데, 동일한 DLL명을 사용하더라도 여러 Version이 함께 공존할 수 있다.