#46. Managed Extensions

[시작하기 전에]


본 코너는 타 코너보다 늦게 시작하였지만 꾸준히 관심을 가져주시고 읽어주셔서 어느덧 40회 이상의 글 게재 횟수를 기록하게 되었습니다. 본 코너는 방학 중에도 꾸준히 업데이트가 될 것이며, 앞으로도 이곳에서 유용하고 깊이있는 Windows 프로그래밍 정보를 게재하기 위하여 2차 개정안을 시행합니다. 다른 개정 사항은 없으며 아래 사항 한 가지가 있습니다.


* Chapter #46 이후에 기준이 될 주 개발 도구는 Microsoft Visual C++ .NET입니다. 따라서, 기존의 MFC 라이브러리 4.2에 없었던 새로운 클래스나 새로운 기능들이 언급이 될 수도 있습니다.


Visual Studio .NET으로 프로그램을 작성하다보면 전에 보지 못했었던 C++의 새로운 프로젝트 옵션 하나가 보일 것입니다. 바로, Managed Extension for Visual C++이라는 것입니다.


이 Managed Extensions의 특징은 “관리된다”라는 점에 있습니다. 구체적으로 말하자면 다른 언어와의 호환성을 위하여 설계된 CLI (Common Language Infrastructure) 규격에 의거하여 프로그램을 최적화한다는 점입니다. 이렇게 최적화시킨 프로그램은 .NET Framework에서의 사용이 훨씬 간편하고 유연합니다.


기존의 수많은 어플리케이션들이 .NET Framework라는 견인차에 의해서 재사용이 가능한지는 .NET Framework가 발매되기 시작하면서부터 시비거리가 되어왔던 사안입니다. 하지만, Visual Studio .NET에서 그 시비의 종결점을 찾았습니다. 바로 Managed Extensions인 것입니다.


실제로, 관리되는 코드를 사용해야 하는 이유 네 가지를 들 수 있습니다.


첫 번째, 관리되지 않는 기존의 프로그램을 관리 가능한 상태로 변경하여 닷넷 프레임워크 및 인프라와 잘 궁합이 맞는 프로그램으로의 마이그레이션을 하기 위함입니다. 물론, 기존의 기능들을 거의 변경할 필요 없이 언제든지 닷넷 프레임워크만의 기능들을 가져다 쓸 수 있습니다.


두 번째, 다른 .NET 호환 언어로 여러분의 프로젝트 내에있는 클래스나 멤버 함수들을 사용할 수 있습니다. 쉬운 예로 미리 작성해 두었던 기존의 클래스를 Visual Basic .NET이 경유 참조하여 값을 가져다 쓴다거나, Visual C# .NET이 경유 참조하여 값을 가져다 쓴다거나, 혹은 ASP.NET, GTK# (MONO 프로젝트의 독자적인 언어)과 같은 언어등에서도 얼마든지 가져다 쓸 수 있습니다.


세 번째, 이와는 반대로 여러분의 프로젝트가 다른 언어로 작성된 프로젝트의 것을 그대로 참조할 수도 있습니다.


네 번째, 관리됨의 여부에 따라서 완벽히 분리된 두 개의 코드를 하나의 EXE 파일안에 담을 수 있습니다. 다시 말해서, 관리가 되는 코드로 작성을 하였든 그렇지 않았든 그 여부와는 관계없이 프로그램이 알아서 영역을 설정하고 자동으로 변수들을 참조할 수 있도록 해준다는 것입니다.


이 Managed Extensions는 Visual Studio 내의 모든 언어가 다 사용할 수 있습니다. Visual C++ .NET, Visual Basic .NET, Visual C# .NET, Visual J#.NET 등등이 있겠지요.


Managed Extensions를 사용하여 언어를 한데 묶을 수 있습니다. 이는 곧 다른 언어로의 포팅 작업 없이도 닷넷 프레임 워크안에서 프로그램 끼리의 데이터 공유가 매우 편리하고 용이하다는 것을 반증하기도 합니다.


실제로 Managed Extension을 추가하는 방법은 프로젝트 설정에서 할 수 있습니다. 프로젝트 설정에서 Managed Extension을 사용하겠다고 여부를 설정하면 컴파일러는 이 여부를 확인하고 자동으로 컴파일할 때에 Managed Extension에 필요한 참조와 라이브러리, DLL을 추가하여 컴파일을 시작할 것입니다.


자세한 정보는 Visual Studio .NET 설명서를 통하여 보실 수 있습니다.

댓글 남기기