항상 느끼지만 세미나가 끝난 후에는 항상 아쉬움이 남습니다. 조금만 더 준비를 했더라면.. 조금만 더 침착 했더라면.. 해서, 이번 부터는 부족한 부분을 채우기 위해 아티클로 좀 더 정리를 해 보려고 합니다. 마음 같아서는 빨리 빨리 포스팅을 하고 싶긴 하지만.. 어쨌든 틈틈이 REST관련 아티클 들을 정리 하여 포스팅 하도록 하겠습니다.
오늘 세미나를 찾아주신 모든 분들과 Taeyo.NET의 모든 운영진들께 감사의 말씀을 전하고 싶습니다.
올해에도 Taeyo.net 신년 세미나에서 발표를 하게 되었습니다. 블로그에 포스팅 한 그리고 포스팅 할 REST관련된 포스트를 기반으로 세미나를 진행 하려고 합니다. 열심히 준비 하고 있으니 많이 참석 하셔서 좋은 정보 얻어 가셨으면 좋겠습니다. 아래는 자세한 세미나 정보 입니다.^^
날짜 : 2010년 1월 30일 토요일 오후 2시
장소 : 선릉역 근처 포스코빌딩 서관 5층 마이크로소프트 세미나 룸
지도 :
세션 시간 : 오후 2시부터 6시까지
세션 개요 :
2:00 - 2: 50 ASP.NET 4.0 New Features ? Part 1
3:00 - 3: 50 ASP.NET 4.0 New Features - Part2 : URLRouting
4:00 - 4: 50 ASP.NET Web Service와 jQuery Ajax 유형별 소개 및 Pager 플러그인으로 방명록 만들기
5:00 - 5: 50 WCF를 사용한 REST 서비스 구현
구체적인 내용은 다음과 같습니다.
세션 1
시간 : 14:00 - 14:50 (50분)
발표자 : 최지훈 MVP (드원테크놀로지 컨설턴트)
제목 : ASP.NET 4.0 New Features ? Part 1
설명 :
.NET Framework 4.0 Beta의 공개와 함께 ASP.NET 4.0에서도 많은 흥미로운 변화가 생겼습니다.
ASP.NET 4.0에서 새롭게 등장한 기능 및 이전의 ASP.NET과 비교하여 달라진 기능들을 이해함으로써,
보다 효과적으로 ASP.NET 4.0을 사용하는 방법을 알아보는 시간을 갖습니다.
세션 2
시간 : 15:00 - 15:50 (50분)
발표자 : 한상훈 MVP (한빛소프트)
제목 : ASP.NET 4.0 New Features - Part2 : URLRouting
설명 :
알기 쉬운 URL에 대한 정의와 어떠한 장점을 가지고 있는지에 대해 알아보고,
ASP.NET WebForms 환경에서의 URL Routing에 대한 전반적인 소개 및 구현을 해보도록 한다.
세션 3
시간 : 16:00 - 16:50 (50분)
발표자 : 박용준 MVP (프리랜서, 전문강사 )
제목 : ASP.NET Web Service와 jQuery Ajax 유형별 소개 및 Taeyo jQuery Pager 플러그인으로 방명록 만들기
설명 :
jQuery Ajax 기능을 사용하여 ASP.NET Web Service에서 반환되는 여러가지 데이터 형식을 처리하는 유형을
정리하여 설명한 후 이를 적용한 간단한 웹 응용 프로그램을 만들어 본다.
세부 내용 :
- ASP.NET + jQuery Ajax + JSON : 단일값 반환
- ASP.NET + jQuery Ajax + JSON : Object(개체값) 반환
- ASP.NET + jQuery Ajax + JSON : DateTime(날짜값) 반환
- ASP.NET + jQuery Ajax + JSON : List값 반환
- 페이징 처리시 Taeyo jQuery Pager 플러그인 적용
세션 4
시간 : 15:00 - 15:50 (50분)
발표자 : 김경균 MVP (드원테크놀로지 컨설턴트)
제목: WCF를 사용한 REST 서비스 구현
설명 :
SOAP기반의 웹 서비스에 비해 가볍고 구현이 쉬운 REST에 대해 알아보고 WCF를 통해 REST 서비스를 구현해
보도록 한다. 그리고 .NET Framework 4에서 추가된 WCF의 새로운 기능 중 REST와 관련된 부분에 대하여
알아보도록 한다.
참석하실 분들은 다음 링크로 이동 하셔서 자신의 이름(혹은 아이디)를 기입해주시기 바랍니다.
REST 서비스를 사용하면서 가장 큰 장점이라고 할 수 있는 것이 바로 HTTP 캐싱을 사용할 수 있다는 것이다. .NET Framework 4에서는 AspNetCacheProfile 어트리뷰트를 사용하여 아주 간단하게 REST 서비스를 캐시할 수 있습니다. AspNetCacheProfile 어트리뷰트는 ASP.NET output 캐시와 함께 동작하게 됩니다.
이오류는서비스가 ASP.NET 호환성을지원하지않기때문에활성화될수없으니호환성을켜라~ 뭐이런이야기를하고있는데말그대로 WCF 서비스가 ASP.NET 호환코드로실행되지않기때문에발생하는오류입니다. 다음코드와같이서비스클래스에어트리뷰트를추가하고 RequirementsMode 를 AspNetCompatibilityRequirementsMode.Allowed로설정하면 ASP.NET호환코드로동작하게됩니다. 기본값은 NotAllowed입니다.
.NET Framework 4에서는 WCF를 통해 RESTful 서비스를 개발 할 때 도움을 줄 수 있는 몇 가지 기능이 추가 되었습니다. 첫 번째로 개발한 RESTful 서비스에 대해 서비스를 사용하는 사람이 제공되는 서비스를 보다 쉽게 이해할 수 있도록 하기 위해 도움말 페이지를 자동으로 만들어 줍니다. 두 번째는 동일한 요청에 대해 보다 좋은 성능을 낼 수 있도록 선언적으로 구성할 수 있는 HTTP 캐싱을 지원합니다. 마지막으로 몇 가지 중요한 기능이 추가 되었습니다. 조건에 다라 GET/PUT 요청을 수행할 수 있는 기능이 추가 되었고 WebFaultException을 제공하여 예전에는 지원되지 않았던 REST 클라언트에게 오류 메시지를 반환 할 수 있게 되었습니다. 마지막으로 REST 서비스에 다양한 메시지 포맷으로 컨텐츠를 반환 할 수 있게 되었습니다. 예전에는 JSON과 XML만을 제공 하였으나 ATOM, Text, Binary등을 지원하게 되었습니다.
지금부터 하나씩 살펴 보도록 하겠습니다.
도움말 페이지 사용하기
WCF 웹프로그래밍 모델로 구현된 RESTful 서비스는 HTTP GET이나 HTTP POST와 같은 HTTP 기본동사를 사용하기 때문에 별도의 WSDL을 제공하지 않습니다. 그렇기 때문에 일반적인 ASP.NET 웹 서비스나 WCF 서비스에서처럼 "웹 참조" 혹은 "서비스 참조"를 사용할 수 없습니다. 만약 서비스에 대한 정확한 스팩을 별도로 제공하지 않는다면 RESTful 서비스를 사용하는 사용자 입장에서는 어떠한 정보도 알 방법이 없다는 단점이 있습니다. 이러한 점을 해결하기 위해 .NET Framework4 에서는 간단한 설정을 통해 도움말 페이지를 제공할 수 있는 기능이 추가 되었습니다.
이미 개발 해 놓은 웹프로그래밍 모델로 구현된 서비스에 도움말 페이지를 사용할 수 있도록 하기 위해서는 끝점의 동작에 대한 정보를 설정하는 endPointBehavior를 추가합니다. 그런 다음 새로운 behavior를 추가하고 자식 엘리먼트로 webHttp 엘리먼트를 추가한 후 helpEnabled 어트리뷰트를 true로 설정하면 도움말 페이지를 볼 수 있습니다.
설정을 완료 한 후 해당 svc파일을 미리 보기 하면 [그림1]과 같은 초기 화면을 볼 수 있습니다. Help설정을 하기 전에는 이 화면에 끝점을 찾을 수 없다는 메시지만 출력 되었으나 Help설정 후에는 친절하게도 유효한 요청을 생성할 수 있는 서비스 도움말 페이지를 제공한다고 표시됩니다.
페이지의 service help page 라는 링크를 클릭하거나 Url의 가장 뒤에 /help를 입력함으로써 도움말 페이지로 이동 할 수 있습니다.
그림 1. 서비스시작페이지
도움말 페이지는 svc 파일 즉, 현재 서비스에서 노출 하고 있는 서비스의 목록을 보여줍니다. 목록은 UriTemplate를 통해 이름 지어진 Uri, 표준 HTTP 동사, 그리고 간단한 설명이 표시됩니다. 각 HTTP 동사에 링크가 걸려있고 이를 클릭하면 보다 자세한 정보를 제공합니다.
그림 2. 도움말목록페이지
SetPost에 대한 자세한 도움말을 요청 형식(XML 또는 Json)에 따라 Body를 구성할 수 있는 예제가 주어 집니다. 또한 XML은 관련 스키마를 제공해 주기도 합니다.
예를 들어 HTTP Method가 POST이고 Body를 [그림 3] 의 XML또는 Json Body 처럼 구성하면 새로운 포스트를 작성 할 수 있게 되는 것입니다. 그리고 이 메서드는 아무것도 반환하지 않으므로 응답은 Response Body가 비어 있다는 설명과 함께 N/A로 나타나게 됩니다.
그림 3. 상세도움말페이지
각 도움말 페이지는 서비스당 즉 .svc당 하나씩 만들어지게 되며 OperationContract특성이 붙어있는 모든 서비스 메서드가 노출 됩니다.
다음 포스트는 HTTP Caching 지원에 대해 살펴 볼까 합니다. 다음 포스트에서 뵐께요~^^
<version>부분은 닷넷의 버전으로 대체 됩니다.(1.1, 2.0, 3.0, 3.5, 4.0...)
각 키에 대응하는 값은 어셈블리가 위치한 물리적 경로(ex c:\testproj\bin)가 됩니다.
최근에 직접 개발한 어셈블리를 .NET 탭에 적용 할 일이 있었습니다. 작업 중 1번 키와 2번 키의 차이점이 있다는 것을 알게 되었습니다.
1번 레지스트리 키는 모든 Visual Studio에서 동작을 한다고 생각 했지만 아직 베타버전이긴 하나 Visual Studio 2010에서는 정상동작을 하지 않았습니다. 아마도 .NET Framework 버전과 관계가 있지 않나 하는 생각이 듭니다.
해서 2번 레지스트리 키를 사용하여 version부분이 4.0인 키에 추가를 하니 정상적으로 닷넷 탭에 추가 되었습니다. 성공 하였습니다.
Visual Studio 2010이 아니라면 대부분의 경우 1번 키로 설정 하면 문제없이 .NET 탭에 GAC에 등록된 어셈블리가
표시 될 것입니다.
아마존에서 1위를 하고 있는 MVC Framework 번역서가 드디어 출간 되었습니다. 뭐 태오님이 번역 하셨으니 말이 필요 없죠^^
원문의 링크로 가시면 세계적인 ASP.NET 초 고수들의 멋들어진 서평을 확인 할 수 있어요~
저는 예판으로 이미 주문 해 두어 늦어도 모레면 받아 볼 수 있겠네요~ 완전 기대됩니다.
아래는 태오사이트 원문입니다.^^
태오입니다.
현재 출간된 ASP.NET MVC 서적 중에서 가장 호평을 받고 있는 서적인
Aprees의 pro ASP.NET MVC Framework (스티브 샌더슨 저)의 번역작업이 끝났습니다.
아시는 분은 아시겠지만, 이 책은 아마존(Amazon)의 programming/asp.net 분야에서 출간 당시부터
베스트셀러에 속하여 현재까지 당당히 1위를 차지하고 있는 도서이기도 합니다.
http://www.amazon.com/gp/bestsellers/books/379360011/ref=pd_zg_hrsr_b_1_5_last
원래는 번역할 계획이 없었으나, 원서 자체가 너무 좋아서 꼬심에 넘어가 버렸습니다.
이 책은 IIS 시삽인 송원석 군과 같이 작업을 했는데요.
어려운 내용이 다소 있긴 했지만, 그런대로 재미있는 작업이었습니다.
다소 오랜만에 하는 번역이라 약간 움찔하기도 했습니다만, 그런대로 잘 된 것 같습니다.
국내에 출간되는 서적의 표지는 다음과 같이 상큼(?)하게 바뀌어서 출간되었습니다
공동구매는 따로 진행하지 않는다고 합니다. (아쉽게도)
대신에, 사전 예약판매를 실시한다고 합니다.
사전예약 구매를 하시면 10% 할인과 10% 포인트 적립이 되는 모양입니다.
책의 분량은 원서에 비해 100페이지 정도 늘어난(번역서가 일반적으로 그렇긴 합니다만)
700 페이지 가량의 서적이 될 것이라고 합니다.
대부분의 온라인 서점에서 구매가 가능하지만, 일단 yes24와 강컴의 링크는 다음과 같습니다.
yes24 : http://www.yes24.com/24/goods/3544668
강컴 : http://kangcom.com/sub/view.asp?sku=200909240003
혹시라도 ASP.NET MVC 에 관심이 있는 분들이라면, 그래서 도서를 구매할 의향이 있으시다면
사전 예약 판매를 통해서 구매하시는 편이 그나마 조금이라도 싸게 구입할 수 있는 방법 같습니다.
감사합니다.