.NET Framework 4에서 새로워진 핵심 기술들

닷넷 프로그래밍 커뮤니티에서 요즈음 제일 큰 이슈는 바로 .NET Framework 4와 Visual Studio 2010일 것입니다. 어느새 버전 4에 이르렀고, 정말로 많은 변화와 개선이 있었고, 그 현주소가 바로 지금 시점일 것입니다. 오늘은 .NET Framework 4에 대한, 그 중에서도 핵심 API 및 기술들에 대한 변화를 살펴보는 블로그 아티클을 올려봅니다.



진단 기능 및 성능 측정



.NET Framework 4에 들어서면서부터, CPU 사용량과 메모리 사용량을 프로세스 단위가 아닌, 응용프로그램 도메인 단위에서 측정하는 일이 가능해졌습니다. 응용프로그램 도메인은, 닷넷 프레임워크에서 사용하는 실제 실행 단위이며, 무엇보다도 중요한 것은 응용프로그램 도메인은 프로세스와 달리 닷넷 프레임워크의 관리 아래에서 통제할 수 있는 자원이라는 점입니다. (프로세스는 운영 체제의 커널에 의하여 귀속되고 관리되는 자원입니다. 따라서, 비 관리 영역에 속하는, 기본적으로는 권외 영역인 셈입니다.)



AppDomain 클래스에 추가된 새 멤버인 AppDomain.MonitoringIsEnabled 프로퍼티를 이용하여 (http://msdn.microsoft.com/ko-kr/library/system.appdomain.monitoringisenabled.aspx 참고) 현재 실행 중인 응용프로그램 도메인에 모니터링 기능이 부여되어있는지를 파악할 수 있습니다. 그리고, 이 설정을 바탕으로 CLR ETW 이벤트 (Common Language Runtime Event Tracing for Windows, http://msdn.microsoft.com/ko-kr/library/dd264810.aspx) 기능을 사용하여 오버헤드없이 성능 측정을 면밀하게 수행할 수 있게 되었습니다.



향상된 가비지 컬렉션



.NET Framework 4에 들어서면서부터 백그라운드 가비지 수집 기능이 제공되는데, 이는 이전 버전의 동시 가비지 수집을 대체하고, 좀 더 향상된 가비지 수집 처리 서비스를 제공합니다. 자세한 내용은 http://msdn.microsoft.com/ko-kr/library/ee787088.aspx 페이지의 Background Garbage Collection 섹션을 참고하시기 바랍니다.



병렬 컴퓨팅 패러다임의 지원

 

이제 .NET Framework 4에서도 병렬 컴퓨팅의 패러다임을 손쉽게 가져다 사용할 수 있게 되었습니다. 이제까지 .NET Framework에서 사용하던 비동기 프로그래밍은 Thread 클래스를 직접 사용하거나, Begin/End의 Pair로 구성된 비동기 버전의 연산, 나중에 이벤트로 결과를 통지 받는 패턴, ThreadPool 클래스의 활용과 같이 다중 Threading 작업의 세밀한 부분과 상호 작용을 고려해야 하는 패턴들이었습니다.

 

http://msdn.microsoft.com/ko-kr/library/dd460693.aspx 에서 소개하는 것 처럼 .NET Framework 4는 병렬 프로그래밍에 대한 새로운 개념들을 제공합니다. .NET Framework 4 환경에서 병렬 프로그래밍은 Task Parallel Library (TPL)에 의한 Action과 PLINQ (Parallel LINQ)에 의한 Action으로 구분됩니다.

 

Task Parallel Library의 경우, 데이터를 중심으로 비동기/병렬 연산을 수행하기 위한 시나리오, 작업 자체에 집중하여 작업의 실행 순서를 제어하고 관리하는 시나리오, 기존의 전통적인 비동기 패턴과 TPL을 통합하는 시나리오 등 다양한 시나리오를 MSDN 내에서 제공하고 있습니다. TPL을 어떻게 활용할 지를 고민하고 효율적으로 선택해야 하는 어려움이 있지만, 여러분의 응용프로그램이 Cloud Ready 응용프로그램이 될 수 있도록 도와주는 지름길로도 활용할 수 있을 것입니다.

 

그리고 PLINQ는 이미 여러 닷넷 관련 전문가분들의 블로그에서 수차례 .AsParallel() Extension Method로 소개되었던 LINQ의 Extension입니다. PLINQ에 대한 좀 더 자세한 이해는 http://msdn.microsoft.com/ko-kr/library/dd997425.aspx 에서 참고하실 수 있습니다.

 

향상된 네트워킹과 암호화

 

.NET Framework 4에서는 HttpWebRequest, HttpListener, SmtpClient, SslStream, NegotiateStream 등 여러 클래스에서 Windows 인증의 보안이 강화되었습니다. Windows 7 및 Windows Server 2008 R2에서 응용 프로그램에 대한 확장된 보호 기능을 사용할 수 있습니다. 그리고, IPv6 및 Teredo를 사용한 NAT(Network Address Translation) 통과를 지원합니다. 자세한 내용은 IPv6 및 Teredo를 사용한 NAT 통과를 참조하십시오.


HttpWebRequest 클래스에서 AddRange 메서드에 대한 새 오버로드를 통해 큰 바이트 범위 헤더(64비트 범위)를 사용할 수 있도록 지원합니다. HttpWebRequest 클래스의 새 속성을 통해 응용 프로그램에서 여러 개의 HTTP 헤더를 설정할 수 있습니다. Host 속성을 사용하여 요청 URI에 종속되지 않은 HTTP 요청에 호스트 헤더 값을 설정할 수 있습니다. 그 외에, SmtpClient 및 관련 클래스에 대한 SSL(Secure Sockets Layer) 지원 기능이 추가되었으며, MailMessage 클래스의 메일 헤더 지원 기능이 향상되었습니다.


암호화에 null 암호화를 사용할 수 있도록 지원합니다. ServicePointManager 클래스와 EncryptionPolicy 속성을 사용하여 암호화 정책을 지정할 수 있습니다. SslStream 클래스의 생성자에서 EncryptionPolicy 클래스를 매개 변수로 사용합니다.

 

ASP.NET 4

 

ASP.NET Caching을 확장할 수 있게 하는 새 API, Session State의 압축 지원 및 Application Preload 기능이 추가되어 더욱 개선된 Performance를 제공하게 되었습니다. Web Forms의 경우, 보다 통합된 ASP.NET 라우팅 지원, 향상된 웹 표준 지원, 업데이트된 브라우저 지원, 데이터 컨트롤을 위한 새 기능 및 새로운 뷰 상태 관리 기능 등이 포함됩니다. 그리고, 새로운 차트 컨트롤 등이 포함됩니다.


ASP.NET MVC 2에서는 뷰를 위한 새 도우미 메서드, 분할된 MVC 응용 프로그램에 대한 지원 및 비동기 컨트롤러 등이 포함됩니다. ASP.NET AJAX 라이브러리의 클라이언트 기반 AJAX 응용 프로그램에 대한 추가 지원 등이 포함됩니다.

그 외 변경 사항들

 

WPF 4는 이제 Silverlight 4와 동등한 컨트롤들을 제공합니다. 특히 데이터 그리드, 달력, 날짜 선택 컨트롤이 제공되고 실버라이트 응용프로그램을 거의 그대로 있는 그대로의 상태 (as-is)로 마이그레이션하는 것을 고려해 볼 수 있습니다. 자세한 내용은 http://msdn.microsoft.com/ko-kr/library/bb613588.aspx 를 참고하여 주십시오.

 

ADO.NET의 경우 ADO.NET Entity Framework에 대한 향상이 많이 있었습니다. http://msdn.microsoft.com/ko-kr/library/ex6y04yf.aspx 의 내용을 참고하여 주십시오. WCF의 경우 ASP.NET 호환 모드에서 ASP.NET Routing과 잘 통합됩니다. WCF의 새로운 기능은 http://msdn.microsoft.com/ko-kr/library/dd456789.aspx 에 잘 설명되어있으며, WF의 경우 http://msdn.microsoft.com/ko-kr/library/dd489410.aspx 의 내용을 참고하십시오.

 

지금 시작하기

 

.NET Framework 4.0의 기능을 지금 사용해보기 원하시나요? http://www.microsoft.com/express 에 방문하셔서 최신 버전의 Visual Studio 2010 Express Edition을 설치하고 지금 시작해보세요. 그리고, 2010년 6월 1일에 있을 REMIX’10 행사는 Visual Studio 2010과 함께 최신 웹 기술을 집중적으로 조명합니다. 관심있으신 개발자 여러분들의 적극적인 참여를 기대합니다. 🙂

 

REMIX’10 행사 바로가기: http://www.visitmix.co.kr/remix10/index.html

댓글 남기기