C#

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


퀴즈 질문


예상답변/설명

한 DLL이 여러 프로그램에 의해 공유되어 사용될 때, 한 프로그램에서 새로 향상된 버젼의 DLL을 사용하기 위해 이 DLL을 업그레이드 하면, 이를 공유해서 사용하던 다른 프로그램들에서 문제가 발생할 수 있는데, 이런 문제를 DLL Hell 이슈라고 일컫었다. 이 이슈는 기본적으로 동일한 디렉토리에 동일한 이름을 가진 다른 버전의 DLL을 복수로 가질 수 없기 때문에 발생한다.

.NET에서는 Assembly Versioning을 통해 DLL을 이름뿐만 아니라 Version, Culture (언어 및 지역 정보), Public Key 토큰, 프로세서 아키텍쳐(x86, AMD64, 중립 MSIL 등) 등의 정보를 함께 사용하여 DLL의 위치를 파악하기 때문에, 동일한 DLL명이라 하더라도 버젼이 다르거나 Localization 언어가 다르거나 하면 다른 DLL로 인식할 수 있다. 아래의 그림은 GAC (Global Assembly Cache)안에 동일한 DLL이 버젼이 다른 경우 혹은 프로세서 아키텍쳐가 다른 경우 공존하고 있음을 보여준다.