'분류 전체보기'에 해당되는 글 189건

  1. 2008.04.11 ASP.NET 동적 데이터 프리뷰
  2. 2008.04.05 Ctrl+Alt+아래 화살표 키를 눌러 열려있는 파일에 빠르게 접근하기
  3. 2008.04.05 선택 영역에 주석 설정하기(Ctrl-K Ctrl-C)와 해제하기(Ctrl-K Ctrl-U)
  4. 2008.04.05 팁/트릭 : 실버라이트와 WPF 사용자 정의 컨트롤 만들고 사용하기
  5. 2008.04.03 아셨나요? 전체 화면 모드를 사용하는 방법(Shift + Alt + Enter)
  6. 2008.04.03 아셨나요? 비주얼 스튜디오 찾기 콤보 상자 가지고 놀기
  7. 2008.04.03 아셨나요? 오른쪽 버튼을 끌어서 코드를 이동하거나 복사할 수 있습니다. #170
  8. 2008.04.02 실버라이트 유닛 테스트
  9. 2008.03.21 ASP.NET MVC 소스 코드가 공개되었습니다.
  10. 2008.03.18 IIS 7.0 비트 레이트 쓰로틀링 모듈 발표

ASP.NET 동적 데이터 프리뷰

번역/ScottGu's Blog 2008. 4. 11. 13:49

원문 : ASP.NET 동적 데이터 프리뷰

몇 달 전에 우리는 올 연말에 출시될 새로운 기능들(ASP.NET AJAX 확장, ASP.NET MVC, ASP.NET 실버라이트 지원, ASP.NET 동적 데이터 등)을 묶은 ASP.NET 3.5 Extensions Preview를 발표하였습니다.

그 중 ASP.NET 동적 데이터 지원은 LINQ to SQL 혹은 LINQ to Entities 객체 모델을 사용하여 데이터 주도적인 웹사이트를 신속하게 작성할 수 있는 기능입니다. ASP.NET 동적 데이터는 ORM 데이터 모델의 메타 데이터를 기반으로 하여, 완전한 기능을 가진 데이터 입력 페이지와 보고서 페이지를 자동으로 만들어냅니다. 또한 HTML 이나 코드를 사용하여 뷰 템플릿을 커스터마이징하는 것도 가능합니다.

ASP.NET 동적 데이터 프리뷰

오늘 말씀드릴 것은 이 ASP.NET 동적 데이터 프리뷰의 업데이트된 버전입니다. 여기에 가시면 자세한 정보를 얻으실 수 있고, 다운로드도 가능합니다.

ASP.NET 동적 데이터 프리뷰는 이제 표준 내장 ASP.NET 데이터 컨트롤(GridView, ListView, FormView, DetailsView 등)들 지원합니다. 뿐만 아니라 컨트롤들이 참조키 관계를 제어하는 것도 가능하게 합니다. 그리드뷰를 예로 들자면, 참조키 컬럼에 (숫자가 아닌) 알아보기 쉬운 이름이 표시되며, 또한 편집 모드에서는 드롭다운 리스트가 나타납니다.

또한 동적 데이터 지원은 데이터 모델 클래스에서 설정해둔 제약 사항에 따라 UI의 유효성 검사도 지원합니다 (클라이언트 측과 서버 측 모두). 예를 들어, 데이터베이스의 컬럼에 50글자 미만이고 널을 허용하지 않는다고 제약 사항을 두었다면, 이는 해당 UI 컨트롤 유효성 검사기에 자동으로 반영이 됩니다. LINQ to SQL 혹은 LINQ to Entities의 데이터 모델 클래스의 제약 사항이 변경되면 UI는 이름 자동으로 감지하고 변경 사항을 반영합니다.

표준 데이터 모델 메타데이터에 더하여 커스텀 메타데이터를 선언하면 더욱 복잡한 유효성 검사를 수행할 수도 있습니다.

지금까지 말씀드린 모든 기능은 LINQ to SQL와 LINQ to Entities에 모두 사용할 수 있습니다.

비주얼 스튜디오 동적 데이터 프로젝트 마법사

ASP.NET 동적 데이터 런타임 지원에 이어 VS 웹 도구 팀은, 데이터 주도적인 웹사이트를 신속하게 만들 수 있는 동적 데이터 프로젝트 마법사의 첫번째 프리뷰도 발표하였습니다. 마법사를 사용하면 작성하고자 하는 LINQ to SQL 데이터 모델의 데이터베이스, 테이블, 뷰, 저장 프로시저를 선택할 수 있습니다.

데이터 모델을 만들고 나면, 마법사를 이용하여 UI를 구성할 동적 데이터 템플릿 페이지를 선택할 수 있습니다.

그 다음에는 각 페이지가 추가/편집/삭제 UI를 포함할 것인지를 지정합니다.

마침을 누르면, 데이터 모델 클래스와 데이터 UI 페이지들을 가지고 있는 프로젝트가 만들어집니다. 여기에 가시면 마법사에 대한 더 많은 정보와 마법사가 실제로 동작하는 스크린캐스트를 보실 수 있습니다.

How to Get Started

이 곳에 가시면 ASP.NET 동적 데이터 프리뷰에 대한 더 자세한 정보를 볼 수 있고 로컬에서 실행할 수 다운로드도 받으실 수 있습니다.

David Ebbo의 dynamic data presentation at MIX 08을 보시면 ASP.NET 동적 데이터 프리뷰의 동작 방식을 이해하는 데 도움이 될 것입니다. Scott Hunter의 스크린캐스트와 Brad Millington의 스크린캐스트도 유용한 자료입니다. 또한 David의 포스트를 보시면 ASP.NET 동적 데이터의 12월 프리뷰와 이번 버전 사이에 변경된 점도 확인하실 수 있습니다.

질문과 피드백은 www.asp.net포럼을 이용하시면 됩니다.

도움이 되길 바라며,

스캇

:

Ctrl+Alt+아래 화살표 키를 눌러 열려있는 파일에 빠르게 접근하기

번역/Sara의 비주얼 스튜디오 팁 2008. 4. 5. 17:21

원문 : Use Ctrl+Alt+DownArrow to quickly access all your open files

파일 탭의 끝에 있는 'x' 버튼 옆에는 드롭다운 화살표가 있습니다. 이 드롭다운 화살표를 누르면 비주얼 스튜디오에서 현재 열려 있는 파일의 목록이 알파벳 순으로 표시됩니다. 파일 이름을 클릭하면 해당 파일이 활성화됩니다.

오늘의 진짜 팁은 다음과 같습니다. 이 기능의 단축키는 “Ctrl+Alt+아래 화살표”입니다. IDE의 어느 곳에서나 Ctrl+Alt+아래 화살표를 누르면 이 팝업 메뉴가 나타납니다. 이 때 파일명(혹은 파일 이름 중 앞 부분의 몇 글자)를 치면 파일을 빠르게 선택할 수 있습니다.

이 단축키를 누르기 위해 두 손을 모두 키보드에 두는 게 마음에 들지 않는다고요? 그렇다면 도구 - 옵션 - 키보드 명령을 실행한 후 Window.ShowEzMDIFileList 명령을 찾아 다른 단축키로 바꾸실 수 있습니다. 주의할 점은 단축키의 영역을 전역으로 설정하여야 한다는 것입니다. (다른 영역을 선택해도 되지만, 이 기능의 경우에는 전역이 적당합니다.)

창 관리와 파일 탭에 관한 더 많은 팁은 다음 링크를 참고하시기 바랍니다.

즐 비주얼스튜디오질!

:

선택 영역에 주석 설정하기(Ctrl-K Ctrl-C)와 해제하기(Ctrl-K Ctrl-U)

번역/Sara의 비주얼 스튜디오 팁 2008. 4. 5. 17:04

원문 : Use Ctrl-K Ctrl-C to comment selection and Ctrl-K Ctrl-U to uncomment selection

이 팁은 비주얼 스튜디오 닷넷 2003과 비주얼 스튜디오 2005에 공통으로 적용됩니다.

저는 이 기능을 밤낮으로 사용을 합니다. 선택된 영역이 없으면 이 명령은 현재 라인을 주석으로 설정하거나 해제합니다.

즐 코딩~

:

팁/트릭 : 실버라이트와 WPF 사용자 정의 컨트롤 만들고 사용하기

번역/ScottGu's Blog 2008. 4. 5. 16:13

원문 : Tip/Trick: Creating and Using Silverlight and WPF User Controls

실버라이트와 WPF의 기본 설계 목표 중 한 가지는 UI 기능을 재사용 가능한 컨트롤로 캡슐화하기 쉽게 하는 것입니다.

Control 클래스들(즉  Control  기초 클래스 혹은 TextBox, Button 같은 컨트롤)에서 상속받아 새로운 사용자 지정 컨트롤을 구현할 수 있습니다. 또는 XAML 마크업 파일을 이용하여 UI를 구성하는(따라서 무척 쉽게 개발할 수 있습니다) 재사용가능한 사용자 정의 컨트롤을 만들 수도 있습니다.

저의 Digg.com 튜토리얼 파트 6에서 VS 2008의 "새 항목 추가" 대화 상자를 통해 사용자 정의 컨트롤을 만드는 방법을 보여드린 적이 있습니다. 사용자 정의 컨트롤에 캡슐화된 UI의 최종 모습을 예상할 수 있다면 이는 좋은 방법입니다. 또한 이 방법은 Expression Blend를 사용할 때도 적용될 수 있습니다.

기존 UI를 캡슐화하여 사용자 정의 컨트롤로 만들기

실제로 부모 페이지나 부모 컨트롤에 올려지기 전까지는 그 캡슐화된 UI 기능을 알 수 없는 사용자 정의 컨트롤도 있을 수 있습니다.

예를 들어, 사용자로부터 배송 정보와 결제 정보를 입력받는 폼을 개발한다고 가정하겠습니다. 먼저 배송 정보를 캡슐화하는 UI를 작성하여야 합니다. <border> 컨트롤을 페이지에 올려 놓고, 그 안에 그리드 레이아웃 패널을 집어 넣습니다(2열 4행). 그리고 라벨과 텍스트박스들을 추가합니다.

신중하게 레이아웃을 완성한 후에야 다음과 같은 사실을 알게 됩니다. "아하, 똑같은 UI를 결제 정보에도 사용할 수 있겠구나. 재사용 가능한 주소 사용자 정의 컨트롤을 만들어서 재사용하면 되겠네".

"새 항목 추가" 프로젝트 템플릿을 이용하여 빈 사용자 정의 컨트롤을 만들고 위 UI를 복사/붙여넣기 합니다.

블렌드를 이용하면 이 작업을 더 수월하게 할 수 있습니다. 사용자 정의 컨트롤로 캡슐화할 컨트롤들을 선택한 후, "오른쪽 클릭"한 후 "Make Control"을 선택합니다.

"Make Control"을 선택하면 새 사용자 정의 컨트롤의 이름을 묻는 확인 상자가 뜹니다.

"AddressUserControl"이라고 이름을 지정한 후 확인 버튼을 누릅니다. 그러면 위에서 선택한 컨트롤들을 포함하는 새 사용자 정의 컨트롤이 만들어집니다.

프로젝트를 다시 빌드하고 원래의 페이지로 돌아가면, 이전과 동일한 UI를 볼 수 있습니다. 하지만 이 UI는 이제 AddressUserControl로 캡슐화되어 있습니다.

첫 번째 AddressUserControl을 "ShippingAddress" 이라고 이름을 지정한 후 결제 정보를 받는 두 번째 사용자 정의 컨트롤을 추가합니다. (이 이름은 "BillingAddress" 라고 지정 합니다.)

이제 주소 정보의 UI를 변경해야 할 경우, 한 곳에서만 수정을 하면 배송과 결제 정보의 UI가 모두 변경이 됩니다.

AddressUserControl에 바인딩되는 데이터 바인딩 Address 객체

지금부터는 AddressUserControl에 바인딩할 수 있는 Address 데이터 모델 클래스를 작성하도록 하겠습니다. 아래와 같이 클래스를 정의합니다. (자동으로 구현된 속성 기능을 사용하였습니다.)

Page.xaml의 코드 비하인드 파일에 Address 객체의 인스턴스를 두 개 생성합니다. 하나는 배송 정보를 나타내며 다른 하나는 결제 정보를 나타냅니다. (예제 목적이므로 더미 데이터로 채우도록 하겠습니다.) 그리고는 Address 객체를 AddressUserControl에 프로그래밍 방식으로 바인드하는데, 이는 각 사용자 정의 컨트롤의 "DataContext" 속성에 배송 혹은 결제 Address 데이터 모델 인스턴스를 지정하면 됩니다.

마지막 단계는 AddressUserControl.xaml 파일에 선언적으로 {Binding} 구문을 지정하는 것입니다. 이는 사용자 정의 컨트롤 내부에 있는 텍스트박스 컨트롤의 "Text" 속성과 Address 데이터 모델 객체의 속성을 바인딩하는 것입니다.

F5를 눌러 애플리케이션을 실행하면 Address 데이터 모델이 자동적으로 AddressUserControl에 바인딩이 되는 것을 확인할 수 있습니다.

{Binding} 선언을 "Mode=TwoWay"로 선언하였기 때문에 텍스트박스에 입력된 변경내용운 자동으로 Address 데이터 모델 객체로 전달됩니다. (어떠한 코드도 필요가 없습니다.)

예를 들어, 브라우저에서 원래의 배송 주소를 디즈니랜드로 변경을 하겠습니다.

"Save" 버튼의 "Click" 이벤트 핸들러에 디버거 중단점을 걸고 "Save" 버튼을 누르면, 위 텍스트박스의 변경 내용이 자동으로 "_shippingAddress" 데이터 모델 객체에 반영이 되는 것을 확인할 수 있습니다.

따라서 SaveBtn_Click 이벤트 핸들러에 배송과 결제 Address 데이터 모델 객체를 저장하는 코드를 추가하면 되는데, 이떄 페이지의 UI로부터 값을 수동으로 읽어들이거나 할 필요가 없습니다.

이처럼 WPF와 실버라이트가 지원하는 뷰와 모델의 명확한 구분을 사용하면, 주소 사용자 정의 컨트롤이 변경되더라도 페이지의 코드는 변경되지 않으므로 더욱 유연한 애플리케이션을 작성할 수 있습니다. 또한 유닛 테스트도 더욱 수월하게 수행할 수 있습니다. (자세한 내용은 저의 실버라이트 유닛 테스트(한국어) 포스트를 읽어보시기 바랍니다.)

정리

WPF와 실버라이트를 사용하면 매우 편리하게 컨트롤의 UI 기능을 캡슐화할 수 있습니다. 사용자 정의 컨트롤과 바인딩과 함께 사용하면 뷰와 모델의 분리가 가능해, 데이터를 조작하는 코드를 매우 깔끔하게 작성할 수 있습니다.

위 샘플을 직접 실행시켜 보고 싶으신 분들은 여기서 다운받을 수 있습니다.

실버라이트와 WPF에 대해 더 자세한 알고 싶으면, 저의 실버라이트 튜토리얼 링크 페이지를 방문해보시기 바랍니다. 그리고 MIX08에서 Karen Corby가 한 강연(사용자 정의 컨트롤, 사용자 지정 컨트롤, 스타일링, 컨트롤 템플릿 등을 다루고 있습니다)도 적극 추천합니다. 여기에 가시면 무료로 보실 수 있습니다.

도움이 되길 바라며,

스캇

:

아셨나요? 전체 화면 모드를 사용하는 방법(Shift + Alt + Enter)

번역/Sara의 비주얼 스튜디오 팁 2008. 4. 3. 12:34

원문 : Did you know… How to use Full Screen Mode? (Shift+Alt+Enter)

프리젠테이션을 하십니까? 비주얼 스튜디오의 다른 뷰는 빼고 편집기만 보고 싶으신가요? Shift+Alt+Enter를 누르면(또는 보기 - 전체 화면) 전체 화면 모드로 변환됩니다.

비주얼 스튜디오에는 네 개의 레이아웃 모드가 있습니다. 디자인, 디버깅 / 실행, 전체 화면. 개별 파일 모드가 그것입니다. 개별 파일 모드는 커맨드 라인에서 devenv <filename>를 실행하였을 때의 모드를 말합니다. 각 모드에서 비주얼 스튜디오의 레이아웃을 변경하면, 이는 해당 모드일 경우에만 적용이 됩니다. 즉, 다른 모드에서는 변경 사항이 반영되지 않습니다.

즐 코딩!

:

아셨나요? 비주얼 스튜디오 찾기 콤보 상자 가지고 놀기

번역/Sara의 비주얼 스튜디오 팁 2008. 4. 3. 12:25

원문 : Did you know… How to have fun with the Visual Studio Find Combo Box

오늘의 팁은 Shawn의 포스트인 찾기 콤보 상자를 참조하였습니다. 오늘 다룰 팁들은 비주얼 스튜디오 2003과 비주얼 스튜디오 2005에서 모두 동작합니다.

  • 줄로 이동 - 줄 번호를 입력한 후 Ctrl-G 를 누릅니다.
  • 파일로 이동 - 파일의 이름을 입력한 후 Ctrl+Shift+G 를 누릅니다.
  • 함수에 중단점을 설정 - 함수 이름을 입력한 후 F9 를 누릅니다.
  • 도움말 - 키워드를 입력한 후 F1 을 누릅니다.

명령 별칭을 사용할 수도 있습니다.

  • 호출 스택 보기 - "> kb"를 입력합니다.
  • 웹 페이지 보기 - “> nav http://www.microsoft.com”를 입력합니다.

완전한 리스트는 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxgrfpredefinedcommandlinealiases.asp 를 보시기 바랍니다.

즐 코딩!

:

아셨나요? 오른쪽 버튼을 끌어서 코드를 이동하거나 복사할 수 있습니다. #170

번역/Sara의 비주얼 스튜디오 팁 2008. 4. 3. 12:12

원문 : Did you know... You can Right-drag code to do a Move or a Copy? - #170

오늘의 팁은 어떤 블로그 구독자께서 보내주신 것입니다.

코드를 선택한 후 오른쪽 버튼을 눌러서 텍스트 에디터(혹은 다른 에디터 윈도우)로 끌어다 놓으면, "여기로 이동, 여기에 복사, 취소"라는 조그만 메뉴 팝업이 나타납니다.

RighClickDrag

저는 이처럼 조그만 팁이 너무 좋습니다. 특히 제가 몰랐던 경우에는 더욱 그렇습니다. 잘 알려져 있지 않은 팁이 있으면 언제든 제게 보내주세요. 저는 VS 코어만 다루기 때문에, 특정 언어에 종속적이지 않은 범용적인 IDE 팁이면 좋습니다.

:

실버라이트 유닛 테스트

번역/ScottGu's Blog 2008. 4. 2. 23:46

원문 : Unit Testing with Silverlight

실버라이트 베타1이 출시되었을 때 가장 중요한 기능 중 한 가지는 API 레벨과 UI 레벨에서 수행할 수 있는 유닛 테스트 도구였습니다. 실버라이트의 유닛 테스트 도구는 크로스 브라우저와 크로스 플랫폼을 지원하고, 또한 자동화된 유닛 테스트를 신속하게 수행할 수 있습니다.

실버라이트 유닛 테스트 도구에는 이 도구를 이용하여 작성된 2,000 개의 유닛 테스트 소스도 포함되어 있습니다. 이 소스는 실버라이트 컨트롤 소스에 대한 자동화된 커버리지를 제공합니다. 실버라이트 컨트롤 소스의 라이센스는 상당히 관대하기 때문에, 이를 수정한 후 유닛 테스트를 실행하여 검증하고 다시 배포하는 것도 가능합니다.

실버라이트를 유닛 테스트 하는 방법

Jeff Wilcox(실버라이트 유닛 테스트 프레임웍과 도구를 개발한 개발자입니다.)는 실버라이트 유닛 테스트 프로젝트를 솔루션에 추가하는 방법을 설명한 멋진 블로그 포스트를 작성하였습니다.(링크) 그가 테스트한 채팅 애플리케이션은 지난 달에 제가 작성한 Expression Blend 블로그 포스트 튜토리얼(한국어)에서 다운로드 받을 수 있습니다. 또한 그는 유닛 테스트를 수행하는 과정을 담은 유용한 비디오 포스트도 공개하였습니다.

Jeff의 포스트가 설명하는 것 처럼, 이제 비주얼 스튜디오 솔루션에 “실버라이트 테스트 프로젝트”를 추가할 수 있습니다.

clip_image002

그 다음에는 테스트 프로젝트에 API나 실버라이트 컨트롤의 UI 액션을 시뮬레이션하는(버튼 클릭 시뮬레이션 등) 테스트 클래스를 추가합니다.

clip_image004

그리고 테스트 프로젝트를 실행하면 테스트 결과를 검증하고 그 상태를 확인할 수 있습니다.

Jeff의 테스트 프레임웍은 브라우저 기반의 테스트 도구와 보고서 시스템을 제공합니다. (이 말은 실버라이트가 실행되는 어떠 브라우저나 OS에서도 사용할 수 있다는 의미입니다.)

clip_image006

Jeff의 테스트 프레임웍은 각각의 테스트 후 곧바로 컨트롤을 다시 설정하는 기능을 제공합니다. (따라서 새로운 브라우저를 재시작하는 작업을 하지 않아도 되는데, 이는 대단한 시간 절약이라고 할 수 있겠습니다.)

수 백 혹은 수 천 개의 자동화된 테스트도 몇 초 안에 수행이 됩니다.

clip_image008

녹색은 테스트가 통과되었다는 의미입니다. 적색은 테스트 케이스가 실패하여, 실패한 어셜션 (그리고 / 또는) 런타임 예외에 대한 로그를 기록하였다는 의미입니다.

정리

AJAX 애플리케이션과 관련하여 자동화된 유닛 테스트 혹은 TDD 전략에 대한 고민을 많이 하셨다면, 실버라이트가 제공하는 테스트 도구가 훌륭한 선택이 될 수 있을 것입니다. 비주얼 스튜디오를 사용하면 테스트 프로젝트를 별도의 프로젝트로 뺄 수 있어, 실버라이트 프로젝트에 테스트 코드를 포함시키지 않을 수도 있습니다.

실버라이트 2 최종 버전에서는 여태까지 말씀 드린 유닛 테스트 도구와 프레임웍 뿐만 아니라 UI 자동화 API도 지원될 예정입니다. 이 기능을 이용하면 장애우들도 접근 가능한 애플리케이션을 만들 수 있습니다. 또한 실제 마우스와 키보드의 동작을 그대로 흉내 내는 UI 테스트를 수행할 수도 있게 됩니다. 결과적으로 이러한 기능들이 결합하면 더욱 튼튼하고 유지보수가 유연한 RIA 솔루션을 만들 수 있게 되는 것입니다.

도움이 되길 바라며,

스캇

추신 : 저의 “실버라이트 팁, 트릭, 튜토리얼, 링크” 포스트에 가시면 실버라이트 2에 대한 더 많은 내용을 보실 수 있습니다.

:

ASP.NET MVC 소스 코드가 공개되었습니다.

번역/ScottGu's Blog 2008. 3. 21. 21:00

원문 : ASP.NET MVC Source Code Now Available

지난 달에 저는 ASP.NET MVC 로드맵에 관한 글을 썼습니다. 그리고 2주 전에는 ASP.NET Preview 2 릴리즈가 발표되었지요. 이 릴리즈에 대해서는 ASP.NET 팀의 Phil Haack가 훌륭한 포스트를 썼습니다. 또한 Scott Hanselman은 ASP.NET MVC 튜토리얼 비디오를 여러 편 만들었습니다.

제가 MVC 로드맵에는 ASP.NET MVC 프레임웍의 소스 코드가 공개되어서 빌드와 디버거와 패치 작업이 쉽게 것이라는 구절이 있었습니다. (따라서 버그를 발견하더라도 다음 버전까지 기다릴 필요가 없이 직접 해결할 수가 있다는 의미입니다.

앞으로 출시될 여러 버전의 ASP.NET 릴리즈에서 공통으로 사용할 수 있는 소스가 포함된 ASP.NET CodePlex 프로젝트가 오늘 날짜로 공개되었습니다. 여기에 가시면 빌드가 가능한 ASP.NET MVC 프리뷰2의 소스를 다운받을 수 있습니다.

ASP.NET MVC 프레임웍 빌드하기

여기 zip 파일을 다운받아서 압축을 풀면 "MVC" 하위 폴더에 VS 2008 솔루션 파일이 있습니다.

파일을 더블 클릭하면 MVC 소스를 포함하고 있는 MVC 프로젝트가 VS 2008에서 열립니다.

빌드를 실행하면 프로젝트가 컴파일 되고 결과물로 System.Web.Mvc.dll 어셈블리가 .zip 디렉토리의 루트의 \bin 디렉토리에 생성됩니다. 어셈블리를 프로젝트나 애플리케이션으로 복사하여 사용하면 되겠습니다.

참고 : 커스터마이징된 ASP.NET MVC 바이너리를 재배포 하는 것은 라이선스 위반입니다. (호환되지 않는 ASP.NET MVC 버전들이 여기 저기 떠돌아 다니며 서로 충돌하는 것을 막기 위함입니다.) 하지만 해결할 없는 버그를 감추기 위해 코드를 수정하고 리빌드하는 것은 괜찮습니다.

다음 단계

소스 코드의 공개는 앞으로도 계속 이어질 것입니다. 공식적인 프리뷰를 업데이트할 마다 소스도 같이 공개될 예정입니다. 만일 소스를 자주 분석하고 빌드하고자 하는 요구가 있다면, 프리뷰 중간 중간에라도 소스를 업데이트할 예정입니다.

그리고 향후에는 ASP.NET MVC 단위 테스트 슈트도 발표할 계획입니다. (현재는 테스트할 저희 내부용 모킹 프레임웍을 사용하고 있는데, 출시될 때는 이런 의존성은 해소될 것입니다.)

도움이 되길 바라며,

스캇.

:

IIS 7.0 비트 레이트 쓰로틀링 모듈 발표

번역/ScottGu's Blog 2008. 3. 18. 00:25

원문 : IIS 7.0 Bit Rate Throttling Module Released

웹에서 동영상을 보는 것은 이제 아주 일반적인 시나리오입니다. 대부분의 주요 사이트들은 비디오를 다양한 형식(제품 동영상, 트레이닝 동영상, 화려한 광고 동영상, 사용자가 작성한 컨텐트 ) 으로 웹과 통합하고 있습니다.

사이트에 동영상을 추가하는데 있어 가지 이슈는 동영상을 전송하는데 비용이 많이 든다는 것입니다. 네트워크 대역폭을 사용하는 것은 많은 비용이 드는 일입니다. 동영상의 화질이 좋을수록 비용은 빠르게 늘어납니다.

아래 블로그 포스트에는 동영상을 전송할 비용을 줄일 있는 방법에 대한 개요가 있습니다. 그리고 며칠 전에 발표된 IIS 7.0 Bit Rate Throttling Module 다운로드에 대한 안내도 있습니다. IIS 7.0 Bit Rate Throttling Module IIS 서버에서 동영상을 서비스할 드는 비용을 줄이고, 모든 종류의 동영상 기술(실버라이트, 윈도우즈 미디어 플레이어, 플래시) 지원합니다.

옵션 1 : 동영상 호스팅 서비스를 사용

동영상의 대역폭에 드는 비용을 줄일 잇는 가지 방법은 유투브나 Microsoft Silverlight Streaming Service 같은 동영상 호스팅 서비스를 받는 것입니다.

실버라이트 스트리밍 서비스를 사용하면 무료로 10GB 까지 동영상을 업로드 있으며 달에 5 테라바이트까지 다운로드를 있습니다. (최고 속도 1.4Mbps). 동영상은 개발자가 작성한 실버라이트 클라이언트에 있습니다. 말은 실버라이트 스트리밍 서비스 동영상을 보기 위해서 특정 동영상 플레이어나 필요하지 않으며, 동영상 재생 시에 서비스 로고나 워터마크나 나타나지도 않는다는 의미입니다. 따라서 동영상을 자신의 사이트에 통합하고 UI 자유스럽게 바꿀 수도 있습니다.

옵션 2 : 자신의 서버에서 동영상을 호스팅

경우에 따라서는 동영상 호스팅 서비스가 올바른 선택이 아닐 수도 있습니다. (예를 들자면, 사용자 인증을 커스터마이징하거나, 아주 동영상을 재생하거나, 동영상에 광고를 삽입하는 경우 등을 있겠습니다.) 이럴 경우에는 자신만의 동영상 서버를 구축하여야 합니다.

자신의 서버에서 동영상을 전송하는 방법에는 대체로 가지가 있습니다. 스트리밍과 우선 재생 방법이 그것입니다.

스트리밍 서버 시나리오

스트리밍 시나리오에서는 클라이언트(실버라이트, 윈도우 미디어 플레이어, 플래시, 리얼 네트웍스 ) 스트리밍 서버에 접속합니다. 그럼 클라이언트는 스트리밍 서버로부터 동영상 스트림을 내려받을 있으며, 보통은 동영상 스트리밍을 앞뒤로 건너뛰거나 일시 중지하거나 정지할 수도 있습니다. 사영자가 브라우저를 닫거나 다른 페이지로 이동하면 동영상 스트리밍은 자동적으로 전송이 중지됩니다.

윈도우 미디어 서비스(WMS) 윈도우 운영체제용 무료 스트리밍 서버인데 윈도우 미디어 플레이어와 크로스 플랫폼 실버라이트 브라우저 클라이언트를 모두 지원합니다. 이는 주문형 파일 스트리밍 시나리오(예를 들어 .wmv 파일의 스트리밍) 실시간 스트리밍 시나리오(예를 들면 실시간으로 진행 중인 올림픽 중계) 모두 지원합니다.

윈도우 미디어 서비스는 모든 버전의 윈도우 서버에서 사용할 있습니다. 이에는 새로운 윈도우 서버 2008 서버 에디션도 포함됩니다. (4개의 프로세서와 32GB , IIS, ASP.NET, SharePoint, 윈도우 미디어 서비스를 지원함에도 불구하고 가격은 $469 불과합니다.)

우선 재생 다운로드 시나리오

우선 재생 다운로드 시나리오에서는 클라이언트가 서버로부터 곧바로 동영상을 다운로드하기 시작하고, 재생하기에 필요한 동영상이 다운로드 되는대로 재생을 시작합니다.

우선 재생 다운로드 방법을 사용할 때의 장점은 서버를 설정하는 것이 매우 쉽다는 것입니다. 동영상을 서버에 복사하거나 FTP 전송하고, URL 얻어 동영상 클라이언트 플레이어에 전달만 하면 됩니다. 외에는 어떠한 서버의 설정도 필요하지 않으며, 당연히 스트리밍 서버를 설치할 필요도 없습니다.

우선 재생 다운로드 방법의 단점은, 서버는 기본적으로 파일을 가능한 빨리 다운로드 하도록 설계되었다는 것입니다. 그래서 사용자가 사이트의 동영상을 클릭하면, 서버는 가능한 빨리 동영상을 전송하려고 합니다. 이런 상황은 사용자가 동영상 전체를 보려고 하는 경우에는 적당합니다. 하지만 사용자가 동영상의 절반만 보는 경우(또는 다른 페이지로 이동하는 경우)에는 보여지지도 않는 동영상이 모두 다운로드 되어야 합니다.

만일 보여지지 않은 동영상 컨텐츠가 메가바이트(혹은 메가바이트) 달한다면, 이는 엄청난 대역폭의 낭비라고 있습니다.

IIS 7.0 비트 레이트 쓰로틀링 모듈

지난 주에 IIS 팀은 우선 재생 다운로드를 훨씬 저렴하게 사용할 있는 무료 IIS 7.0비트 레이트 쓰로틀링 모듈을 발표하였습니다.

비트 레이트 쓰로틀링 모듈을 사용하면 IIS 서버에서 모든 종류의 미디어 컨텐트를 다운로드 하는 대역폭 쓰로틀링 룰을 쉽게 설정할 있습니다. (.WMV, .MOV, .FLV, .MP3 파일 포함)

간략하게 이야기하자면, 비트 레이트 쓰로틀링 모듈은 IIS 파일을 요청 받았을 미디어 컨텐트의 앞부분을 신속하게 전송하게 하는 일을 합니다. 기본적으로는 마임 타입과 파일의 비트 레이트 인코딩을 조사하여 20초간 재생될 분량의 미디어 파일을 최대한 빨리 내려 보냅니다. 동영상 재생이 20초에 이르면 IIS 비트 레이트 쓰로틀링 모듈은 파일의 비트 레이트 인코딩과 같게 전송 속도를 떨어뜨립니다. 또한 클라이언트의 동영상 플레이어를 감시하고 있다가 사용자가 페이지를 닫거나 다른 곳으로 이동을 하면 자동으로 남은 파일의 전송을 취소합니다.

예를 들어서, 500 Kbps비트 레이트로 인코딩된 35 MB 짜리 동영상 파일을 재생한다고 합니다. IIS 빠른 동영상 재생을 위해 최고 속도로 20 분량의 데이터를 먼저 전송할 것입니다 (500 Kbps * 20 = 1.25 MB). 이후에는 500 Kbps 다운로드 속도로 데이터를 전송합니다. (사용자는 항상 20 동안의 동영상 캐시를 가지고 있기 때문에 재생 끊김 현상이 발생하지 않습니다.)

1 후에 사용자가 동영상 재생을 중지하거나 다른 페이지로 이동하면, IIS 이름 감지하여 30 MB 파일의 남은 부분의 전송을 중지합니다. 시나리오에서는 전체 동영상 80 초만 다운로드하였기 때문에 (사용자가 60 + 버퍼 20), 35 MB 대신 5 MB 네트워크 대역폭 만이 소비되었습니다. 이렇게 30 MB 절약하는 횟수가 하루에 혹은 이라면, 년이면 만원에 이르는 돈을 절약할 있을 것입니다.

IIS 7.0 비트 레이트 쓰로틀링 모듈의 다운로드와 설치

여기 가시면 IIS 7.0 비트 레이트 쓰로틀링 모듈을 다운로드하고 더 많은 정보를 얻을 수 있습니다.

설치한 후에 IIS 관리 도구에서 "비트 레이트 쓰로틀링" 노드를 클릭하면 다음과 같은 화면을 보실 수 있습니다.

파일 혹은 파일 형식 비트 레이트 쓰로틀링 규칙을 설정합니다.

다음 백서들은 이에 대한 더욱 자세한 정보를 제공합니다.

Mike 포스트(여기) Vishal 포스트(여기와 여기)에서도 더욱 자세한 정보를 제공합니다.

도움이 되길 바라며,

스캇

: