2010.08.11 21:50
Razor 는 발음상으로는 광선검의 Laser와 동일하지만 (사실 네이티브 들은 다소 다르다고 이야기 할 수도 있겠지만.. ^^) 어찌되었던 가볍게 강력하다는 이미지와는 잘 들어맞는 어감인 듯 합니다.

기본적인 구조에 대한 설명은 아래 글을 참고해 주시고 오늘은 실질적으로 개발에 필요한 요소들을 챙겨보려고 합니다.

PHP만큼 쉽고 ASP.NET만큼 안정적이게 ASP.NET Razor

사실 위에 글에 대해서 제목에 일정부분 낚시질이 포함되어 있음을 자백합니다.(^^;)하지만 완전히 낚시질이었던 것은 아닌게 초기에 Razor 이야기가 흘러나올 때는 PHP사용자들도 사용할 수 있게 해보자는 듯한 뉘앙스가 있었던 것도 사실입니다.
 하지만 실제로 Razor가 발표되었을 때는 ASP.NET MVC의 View Engine으로써의 의미가 더 많이 부각되었습니다. 실제로 Razor의 위치가 그러하기도 하지만 위치와는 상관없이 사용하는 사람들이 받아들이기 나름일 수도 있다는 생각이 듭니다.
 Razor에 대해서 판단은 여러분들이 하시겠지만 최소한의 가이드를 먼저드려볼 까 합니다.


Razor의 위치

 이후 내용들을 보면서 Razor가 10년전 개발을 멈추었던 ASP 기술의 부활처럼 받아들이시는 분들도 있고 이걸 이용해서 PHP 사이트를 대치해 보겠다고 하시는 분들도 있습니다. 그리고 몇 몇 분들은 ASP.NET MVC와 함께 사용해 보겠다고 하시는 분들도 있습니다. 실제로 ASP.NET MVC 3 Preview 버전에서는 Razor를 View engine으로 사용할 수 있게 포함하고 있습니다. ASP.NET MVC 3 Preivew에 대해서는 아래 링크를 봐주십시오

ASP.NET MVC3 (Preview 1)이 나왔습니다.

 Razor는 장님 코끼리 만지듯 보는 사람에 따라서 다르게 느껴질 수 있지만 저는 기본적으로 몇 가지 가이드를 드리고 싶습니다.

A. Razor는 ASP가 아니다.
Razor를 보면서 ASP 시대의 향수에 젖는 분들도 꽤 많으신 듯 합니다만 냉정하게 이야기 하자면 절대 결코 완전히 확실하게 그건 아니라고 이야기 할 수 있습니다. ASP에는 VB Script 엔진이 다였다면 Razor 및에는 .NET Framework 4.0이 자리 잡고 있습니다. 그래서 동일한 접근을 한다면 ASP를 사용하는 거나 Razor를 사용하는 거나 다를 바 없다는 겁니다.
 좀 더 심하게 이야기 하면 ASP를 사용하면서 가지고 있던 한계를 프레임웍만 바꾸어서 반복한다는 것이지요 그래서 정확한 이해와 접근이 무엇보다도 중요한 시기인 듯 합니다.

B. Razor는 ASP.NET MVC의 View engine이다.
Razor는 그 사용법만 보면 ASP혹은 PHP보다더 쉬운 수준이지만 그 아래쪽 기술들을 보면 .NET 4.0과 ASP.NET MVC이 기반하고 있다는 것입니다. 즉 Razor는 아무것도 모르고 그냥 쉽게 쉽게 사용 할 수도 있지만 제대로 사용할 수도 있는 유연한 기술이라는 점입니다.
 그래서 다양한 사람들이 각기 다르게 이야기 할 수 있는 기술이기도 합니다.

C. 기존의 ASP.NET이 없어지는 것은 결코 아니다.
ASP.NET이 없어지지 않습니다. 오히려 .NET Framework 4.0에서 더욱더 강화되었습니다. ASP.NET, ASP.NET MVC 처럼 또 하나 선택권이 늘어난 것이지 기존의 기술들을 대체하기 위해서 나온 기술은 분명히 아닙니다.

D. Razor의 사용 용도를 분명히 하는게 좋다.
Razor는 복잡하고 다양한 기능을 잠재적으로 가지고 있습니다. 하지만 쉽게 접근한 다면 정말 쉽게 사용할 수도 있습니다. 다시 말해서 기존에 ASP, PHP, JSP를 단순하게 사용하고 계셨던 분들이라면 Razor를 통해서 쉽게 새로운 기능을 추가할 수 있습니다.
 단순히 그냥 구현하는게 아니라 앞으로 복잡하고 강력한 사이트를 위해서 우선 Razor를 도입하고 알아나가면서 더 복잡하고 어려운 기능들을 하나씩 사용해서 보는 것은 매우 좋은 접근법이라고 할 수 있습니다. Razor에 대한 제 추천은 아래와 같이 3가지 경우로 요약해 볼 수 있습니다.

- 가볍고, 수정이 잦은 사이트
- 새로 제작해 보지만 처음에는 요구사항이 그렇게 높지 않은 사이트
- 이미 ASP.NET MVC로 구성되어 있는 사이트를 MVC 3로 버전업 할 경우에 View Engine으로 도입


Razor의 개발 환경 설정

 Razor는 앞으로는 Visual Studio를 지원할 예정이지만 현재로는 지원되지 않고 있습니다. 대신 Razor를 사용할 수 있도록 간단한 통합 툴을 제공해 주는 이 툴의 이름이 Web Matrix 입니다. 오랫동안 닷넷 기반의 작업을 해 오신 분들은 과거에도 같은 이름의 툴이 제공되었던 것을 기억하실껍니다. 설치 방법은 WPI(Web Platform Intaller)를 사용하면 아주 쉽게 마무리 됩니다. 

WPI는 웹에서 개발환경과 오픈된 소스를 다 설치할 수 있는 통합환경을 제공해 주는데 자세한 것은 아래 동영상을 참조해 주시기 바랍니다.

 거짓말 같지만 위의 동영상처럼 몇 번 클릭만으로도 이미 개발 환경은 다 설치되었습니다.
이제는 간단히 Hello World를 생성해 보는 차례입니다.

왠지 앞으로 굉장히 쉬울 것 같습니다.
Razor라는 기술은 앞에서 말한바와 같이 쉽게 사용하려고 하면 정말 쉽게 사용할 수도 있지만 제대로 사용하려면 정말 또 제대로 사용할 수 있는 그런 기술입니다.

앞으로 강좌를 통해서 하나씩 알려드리겠습니다. ^^

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


저작자 표시 변경 금지
신고
2010.07.29 13:59
ASP.NET MVC의 버전 업이 가속도가 붙은 느낌입니다. 점점더 쓸만하고 안정된 버전으로 가고 있다는 반가움과 또 혹시 내가 잘 사용하던 기능이 없어지지나 않았을까? 라는 불안감도 함께 가지게 되는 일인 것 같습니다. 

 Microsoft의 개발 부문 부사장인 Scottgu는 자신의 블로그에서 ASP.NET MVC3 Preview 1을 발표 했습니다. 그리고 지금 바로 다운로드도 가능하게 링크도 함께 공개했습니다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=cb42f741-8fb1-4f43-a5fa-812096f8d1e8&displaylang=en

벌써 ASP.NET MVC3 !!!
ASP.NET MVC3는 ASP.NET의 큰 버전업 중에 하나로 이야기 하고 있지만 ASP.NET MVC2와 호환이 가능하다라고 이야기 하고 있습니다. 또 기존의 MVC1,2에 비해서 새로운 기능이 추가 되었고 호환가능하다라고 이야기 하고 있습니다. 물론 이렇게 이야기 하면 안믿는 사람들이 많을 것 같습니다. 이제까지 새버전 나올 때 마다 홍역을 치뤄왔던 많은 얼리 어뎁터 개발자들이 있어왔기 때문입니다.

이번에는 정말 그렇지 않다라고 저 역시 보장은 아직 못하겠습니다만 이전 보다는 최소한 이런 부분에 있어서 많이 고려하고 있는 듯 하다는 것은 사실입니다.

특이한 점은 이전에 설명하다가 만 Razor를 View 엔진으로 사용할 수 있게 되었다는 점입니다. Razor를 사용하게 되었다는 점은 급한 사이트 혹은 가벼운 사이트는 최대한 그 성격에 맞는 가벼운 기술을 함께 사용할 수 있게 되었다는 의미입니다.
AddView9
또 Razor 뿐만 아니라 오픈소스로 진행중인  Spark, NHaml, NDjango등도 함께 포함시키고 있다고 합니다. 스캇의 블로그에 보면 자세하게 달라진 점이 소개되고 있는데 View 엔진의 변화 그리고 Java Script와 Ajax의 향상 그리고 모델 검증, Dependency Injection 등이 향상되었다고 합니다.

자세한 내용은 스캇의 블로그에 올라와 있는 글을 참조해 주세요~
http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx 

개발자를 위한 IT블로그 영욱닷컴(http://www.YoungWook.com)
저작자 표시 변경 금지
신고
2010.07.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)

저작자 표시 변경 금지
신고