2010. 7. 28. 11:19

고객들을 만나다 보면 신규 프로젝트에서 WPF를 사용해야 할찌 혹은 Silverlight를 사용해야 할찌 몰라서 고민하는 분들을 간혹 만나게 됩니다.
 일반적인 가이드는 데스크탑 애플리케이션에는 WPF 웹에는 Silverlight이기도 하지만 Silverlight 3.0부터 제공되는 Out-of-browser 덕분에 이 경계선도 모호해 졌습니다.

 기술적으로 혹은 코드 적으로 WPF와 Silverlight의 차이를 70페이지 분량으로 소상하게 설명하고 있는 자료인 Microsoft WPF-Silverlight Comparison Whitepaper가 있어서 참조하시면 도움이 될 것 같습니다.


최종 업데이트 된지는 조금 되었지만 그래도 참조할 만 하다는 생각에 공유해 드립니다. ^^
원본 사이트는 http://wpfslguidance.codeplex.com/releases/view/30311 에서 보실 수 있습니다.

개발자를 위한 IT블로그 영욱닷컴(http://www.YoungWook.com)
2010. 7. 28. 10:29

레이저(Razor)라니? 갑자기 상당히 뜬금없는 이야기 갔지만 지금 제가 레이저라고 이름이 붙은 이 기술을 바라보는 마음은 낯설다는 느낌 보다는 반가운 느낌이 먼저 드는것은 왜일까요?
 Microsoft는 이미 ASP.NET이라는 웹 개발 플랫폼을 가지고 있습니다. ASP.NET는 기존의 ASP/PHP/JSP와는 다른 특징들을 가지고 있는 독특한 웹 플랫폼으로 자리 매김하고 있습니다. 

 ASP.NET은 내부적으로는 AJAX나 MVC를 지원하기 위한 기능들이 함께 제공되는데 최근에 .NET Fraemwork 4.0이 출시되면서 ASP.NET도 4.0으로 버전업이 되었습니다. 

 Razor라는 기술도 역시 하늘에서 뚝 떨어진 웹 개발 플랫폼이 아니라 ASP.NET의 기술중에 하나의 기술로 이해하는 관점이 필요합니다. 레이저는 이전의 Microsoft 웹 플랫폼에 하나가 더 올라간 형태로 이전의 모든 지식과 결과물을 부정하고 처음부터 새로 나온 것이 아니라는 것을 먼저 강조해 드리고 싶습니다.

<그림1>ASP.NET Razor의 계층

<그림1>에서 보시는 바와 같이 레이저라는 기술은 기존의 .NET Framework 4.0(반드시 4.0 입니다.)상에서 구현된 ASP.NET 4.0과 MVC 모델 위에 구현된 기술입니다. 제일 상단에 있는 Web Page라고 설명된 부분이 바로 지금 설명하고 있는 레이저라고 하는 부분에 해당합니다. 
 물론 레이저는 상당히 어렵고 복잡하며 하위의 모든 계층을 다 알아야 다룰 수 있는 엄청나게 어려운 기술인 것 같지만 실상은 전혀 그렇지 않고 그 반대 입니다.

 레이저는 쉽고 빠르게 그리고 강력하게라는 서로 다른 목적을 충족하기 위해서 나왔으며 따라서 쉽게 쓸 사람은 정말 엄청나게 쉽게 그리고 제대로 사용하려는 사람에게는 정말 제대로 사용할 수 있는 그런 유연함을 제공하기 위해서 많은 고민을 한 끝에 나온 결과물입니다. 그렇게 하기 위해서 .NET Framework 4.0상에 ASP.NET MVC 기반으로 제공되는 또 하나의 개발 레이어로 자리잡게 된 것입니다. 

그런 면에서는 ASP.NET MVC는 레이저의 아버지가 되는 샘입니다.
<그림2>아임 유어 파더
그럼 도대체 레이저란 무엇일까요? 무엇이길래 이렇게도 서두가 길 수 밖에 없는 것일까요?


도대체 레이저란 무엇일까?

기본적으로 레이저를 이해하면서 혼란을 줄이기 위해서 용어정리를 먼저 해야할 것 같습니다.

  • 레이저:
    Razor를 한 마디로 정의하면 'MVC 모델의 새로운 뷰 엔진' 정도로 정의할 수 있을 것 같습니다. 기존의 ASP.NET에서는 웹 폼을 실행할 수 있는 엔진이 있었듯이 레이저도 레이저 타입을 실행 시킬 수 있는 엔진의 이름이라고 이해 해야 합니다. 
  • 웹 페이지스(Web Pages):
    웹 페이지스는 실제로 레이저에 의해서 실행되는 파일 형태를 이야기 합니다. 웹 페이지는 현재 C#과 VB.NET 두 가지 형태를 지원하며 파일의 확장자는 cshtml, vbhtml 이렇게 두개의 파일 확장자를 가지고 있습니다.
  • 웹 메트릭스(Web Matrix)
    웹 메트릭스는 레이저 엔진을 사용할 수 있는 통합환경입니다. 개발도구 부터, 웹 서버, 데이터베이스 이렇게 세 가지 요소를 제공하고 있습니다.

사실 이 정도가 레이저를 이해하기 위해서 알아야 하는 선행적인 요소입니다.
아직 레이저라는 기술에 대해서 감이 오지 않았으리라 확신합니다. 개발자들은 코드를 보기 전에는 그게 무엇인지 잘 모르기 때문입니다. 다음 글에서는 레이저에 대해서 코드로 이야기 해 보도록 하겠습니다. ^^

개발자를 위한 IT블로그 영욱닷컴(http://www.YoungWook.com)