안녕하세요. 코난 김대우 입니다.

이번에는 제목에서 말씀 드린 것처럼, WebMatrix에서 어플리케이션을 직접 배포해 보려고 해요.

개인적으로 처음 코난이가 WebMatrix 배포 관련해 든 생각은,
- 서버쪽에(IIS7) 뭔가 Razor를 실행하기 위한 extension을 설치 해야 하지 않을까?
- 서버에 그 골치아픈 종속성(Dependency)는 어떻게 하지? SQLCE DB인데 파일만 복사한다고 해서 안될거고… SQLCE 런타임 파일은? 어떻게 하는거지?

이런 고민은 그만~ 고민 끝~~!!! 배포의 어려움에 대해서 이야기 하자면, 아마 눈물나는 포스팅 대여섯개는 후닥닥 나올 겁니다.

아니 그럼 WebMatrix에서 배포는 뭐가 다르길래 콧방귀 뿡~?

이런 고민은 정말 상상일까요?
- 사장님이 고객사 제과점 웹사이트 만들라고 하네요.
아마 예전에 작업 하셨던 환경이라면
- 사장님이 고객사 제과점 웹사이트 만들라고 하네요.
-  제가 주로 작업하는 프레임만 있는 템플릿을 열고 여기에 전달 받은 이미지 몇개 올려서 레이아웃 잡고…
    (템플릿 폴더를 탐색기로 복사, 개발 테스트용 웹서버에 사이트로 걸고, 에디터 프로그램이나 개발도구 사용… 에디터… 안습…)
- DB 처리 속도도 빠르고, SQL서버와 호환도 되는 DB 세팅하고
    (작은 DB야 그렇게 쓰고, 좀 큰 DB면.. 고민… MySQL이면 GUI 환경 없어서 대략 안습)
- 호스팅사 웹사이트에 배포
   (FTP로 폴더 파일들 복사, 파일 누락되서 다시 올리려면? DB배포는? 안습) 

고충이 참 많습니다.
WebMatrix를 이용한다면 어떻게 할 수 있을까?
- 제과점 웹사이트 만들라고 하네요.
- 제가 주로 작업하는 프레임만 있는 템플릿을 열고 여기에 전달 받은 이미지 몇개 올려서 레이아웃 잡고
   (WebMatrix에서 Template으로 테스트 웹 사이트 바로 완성)
- DB 처리 속도도 빠르고, 나중에 제과점 사이트 커지면 빠른 성능의 상위 DB와 호환도 되야 하고, 쿼리도 한두개 확인 해야 하고
   (WebMatrix 자체 GUI기반 DB 활용, MySQL도 GUI로 처리 가능)
- 호스팅사 웹사이트에 배포
   (콧방귀 뿡~ WebMatrix에서 배포 진행)

하실 수 있습니다.
정말? 아래 링크 참조 하세요.

(1) WebMatrix와 Razor! 이제 시작합니다.
(2) WebMatrix 설치부터 Hello World까지
[동영상 강좌] (1) WebMatrix 첫 실행 & Hello World까지 달려요~
[동영상 강좌] (2) WebMatrix 5분 리뷰~
[PHP개발] 후덜덜~ 진짜? WebMatrix로 깔끔하게 PHP 개발이 가능?
강좌를 쭈욱 따라오신 분들은 공감해 주실 겁니다. 그렇죠? ^_^;;;
자자~ 서론이 길었죠~ 그렇다면 오늘의 목표인 배포 과정을 진행해 보시죠~!!!
어플리케이션 설치부터 코드 수정, 배포까지 한방에 끝내는 WebMatrix, 그 배포 과정을 저와 함께 진행해 보시죠~

image

이렇게 Site From Template을 실행합니다. – 자신의 Template을 물론 걸어 놓고 사용도 가능합니다. 
image
저는 이렇게 제과점 사이트를 위해 Bakery Template을 사용합니다. 클릭질만으로 template 기반 테스트 웹사이트가 완성되지요.
image
보시면 template을 통해 사이트가 만들어 졌습니다. 바로 웹사이트로 구동되고 실행도 되지요. 테스트 환경 구축 끝~
바로 코딩 과정이나 DB 테스트도 했다고 가정하겠습니다. 
다음으로 배포를 진행할 시간.

국내에는 아직 WebMatrix기반 배포를 지원하는 호스팅사가 없기 때문에 기본 등록된 해외 호스팅사를 활용해 보겠습니다. 당연하지만, 사내에 있는 IIS7 웹서버에 배포도 물론 설정을 하시면 가능합니다. 해당 내용은 맨 아래 기술해 두었으니 참고하세요. 
웹서버를 구성할 환경이 안되는 분들이 많으실 듯 하니, Publish 메뉴의 Find Web Hosting을 진행해 호스팅사를 찾아 볼께요. – 물론 Beta 기간이라 사용 무료이며 메일 주소 정도만 사용하면 됩니다.(현재 2010년 9월 28일 WebMatrix Beta 입니다. 나중에 공식 버전이나 RC버전이 나와도 호스팅사 등록 패턴은 비슷 하실 거에요. 이후에 변경되어도 아래 내용대로 참조해 등록 하시면 될겁니다.)
image
Publish 메뉴의 Find Web Hosting을 클릭하니 ADHOST라는 곳이 맨 위에 보이네요. WebMatrix를 완벽 지원한다고 하네요. Learn More를 클릭해 한번 이 호스팅사를 이용해 보겠습니다.
image
들어가니 바로 WebMatrix 호스팅이라는 말이 있네요. 가입해야 사용 가능하겠죠? Sign up now 하시면 됩니다.
image

대충 정보를 입력 하시구요. email은 validation을 체크하니 정확히 넣으세요.
image
이렇게 확인하고 Submit 하면 됩니다.
image
validation을 위해 이메일을 체크 하라고 하네요.
image
대략 이런 메일이 도착해 있습니다. 저 링크를 클릭 하시면 validation이 완료 되지요.
image
이제 로그인 정보 등이 포함된 메일이 왔다고 합니다. – 네 PDF 파일로 깔끔하게 첨부되어 도착해 있네요.
image
첨부된 PDF를 열어 보시면 상세한 설명과 함께 이렇게 WebMatrix를 위한 sample publish 설정까지 알려 줍니다. 이 정보를 이용하면 되지요~
image

자~ WebMatrix 메뉴에서 Publish - Configure를 선택 하시고… 조금 전에 WebMatrix에서 만든 제과점 웹사이트를 배포 합니다.
(저만 그런지 모르겠는데요, PDF파일에서 복사해 쓰면 이상하게 Username에 공백이 포함되네요.)
image
네.. 감동입니다.

WebMatrix가 웹사이트 파일들은 물론, Razor 구동과 SQLCE 구동 등에 필요한 모든 Dependency를 자동으로 추출해 리스트합니다. 저 처음 할때 여기서 정말 깜딱 놀랐어요!!! DB 파일 역시 체크 하시면 서버로 배포 되지요.
image
배포가 진행됩니다. more detail을 클릭하면 상세 과정이 나와요. 배포가 끝나면, 링크까지 상세히 제공해 주네요. 클릭 하시면?
image
후덜덜~ 배포가 완료되었습니다. DB를 사용하는 Our Products 링크를 가 보시면~ 네… SQLCE DB도 동작합니다. 모두모두 아무 문제 없이 자알 동작 합니다!!!
- 호스팅사 테스트 웹사이트 등록 과정이 길었지, 배포 과정은 말 그대로 한방에 끝!
- 자동으로 웹사이트 구동에 필요한 모든 종속(Dependency) 파일을 자동 배포 합니다.
- 참고로, 한번 배포 한 후, 다음 배포시에는 변경된 파일들만 WebMatrix가 자동으로 추적해 변경된 녀석들만 배포합니다.
- 기본 WebMatrix의 DB인 SQLCE DB도 배포되며, Connection String을 이용할 경우(SQL서버)에는 요녀석만 수정 후 배포도 가능합니다.

- 알고 있으시지요? 호스팅사 선택은 국내에서 지원하는 호스팅사가 있을 겁니다.

개인적으로, WebMatrix 배포 기능을 처음 보고 많이 놀랐습니다. 서버쪽의 설정이나 불필요한 Extension 설치 없이 개발 도구인 WebMatrix만으로 테스트 웹사이트 구축, 개발은 물론 배포까지 하나의 도구로 가능하다는 것을 실감할 수 있었습니다.
어떠세요? WebMatrix가 바꾸게 될 웹 개발자의 개발 업무 프로세스! 조금 실감 하시나요? 이제 이제 첫 Beta인 WebMatrix가 앞으로 어떻게 진화할지 기대됩니다.
전문 개발자와 IIS 웹서버 관리자를 위한 참고
- WebMatrix의 해당 배포 기능은 Microsoft Web Deploy 기능을 이용합니다.
- 호스팅사 뿐만 아니라 사내에서 구축하기 원하시면 IIS7의 Management Service 등을 활용해 이러한 배포 서비스 기능을 개발자에게 제공 가능합니다.
- Web Deploy 서비스는 HTTPS로 8172 포트를 이용합니다. – 서버측 방화벽, 개발자 환경의 Proxy 등에서 미리 가용한지 확인이 필요합니다.
- WebMatrix 뿐만 아니라 Visual Studio에서도 이 Web Deploy 기능을 이용 합니다.
- 웹어플리케이션 배포의 목적 뿐만 아니라 IIS 운영의 목적(전체 웹서버 Export, Import 등)으로도 이 Microsoft Web Deploy 기능을 활용 가능합니다.
많은 도움 되시길 바랍니다.

지난 동영상 참고 자료 :

[동영상 강좌] (1) WebMatrix 첫 실행 & Hello World까지 달려요~

[동영상 강좌] (2) WebMatrix 5분 리뷰~

[동영상 강좌] (3) Razor 강좌 - 기본 구문 및 주석 처리

[동영상 강좌] (4) Razor 강좌 - 코드 블록과 POST 처리

[동영상 강좌] (5) Razor 강좌 - 재사용 가능한 코드 생성
[동영상 강좌] (6) Razor 강좌 - 레이아웃 페이지 구조 처리

[동영상 강좌] (7) Razor 강좌 - 파일처리, 파일 업로드

[동영상 강좌] (8) Razor 강좌 - 데이터베이스 처리
[동영상 강좌] (9) Razor 강좌 - Helper 소개(이미지, 비디오)

[동영상 강좌] (10) Razor 강좌 – 디버깅

[동영상 강좌] (11) Razor 강좌 - 캐시 처리

[동영상 강좌] (12) Razor 강좌 – SMTP 메일전송(Live메일과 Gmail지원. SSL지원)

[동영상 강좌] (13) Razor 강좌 – 웹사이트 전체, 또는 폴더 내 파일 요청 시 항상 실행 되는 모듈

[동영상 강좌] (14) Razor 강좌 - URL 라우팅(Routing) 으로 SEO 최적화 구현

Razor & WebMatrix 시리즈 강좌

(1) WebMatrix와 Razor! 이제 시작합니다.
(2) WebMatrix 설치부터 Hello World까지
(3) Razor 강좌 - 기본 구문 및 주석 처리
(4) Razor 강좌 - 코드 블록과 POST 처리
(5) Razor 강좌 - 재사용 가능한 코드 생성
(6) Razor 강좌 - 레이아웃 페이지 구조 처리
(7) Razor 강좌 - 파일처리, 파일 업로드
(8) Razor 강좌 - 데이터베이스 처리
(9) Razor 강좌 - Helper 소개(이미지, 비디오)
(10) Razor 강좌 – 디버깅
(11) Razor 강좌 - 캐시 처리
(12) Razor 강좌 – SMTP 메일전송(Live메일과 Gmail지원. SSL지원)
(13) Razor 강좌 – 웹사이트 전체, 또는 폴더 내 파일 요청 시 항상 실행 되는 모듈

(14) Razor 강좌 - URL 라우팅(Routing) 으로 SEO 최적화 구현