2 Results for '배포'

  1. 2008.11.06 XAP사이즈, 압축하지 않겠는가? (7)
  2. 2008.02.24 Silverlight 2와 퍼가기 (3)

실버라이트 애플리케이션을 배포하는 것에서 가장 중요한 원칙은 뭘까요? 밑줄 긋고 외웁시다.

배포 사이즈를 작게 더 작게!

우리는 XAP 파일이 표준 ZIP 압축 알고리즘을 쓰고 있다는 점을 알고 있죠. 그런데 Delay’s Blog의 포스팅에 의하면 실버라이트 2의 XAP 파일은 압축률이 일반적으로 사용되는 것보다 낮다고 해요. 7-Zip의 압축률을 기준으로 1~3 단계 정도면 용량도 더 줄어들면서 압축 시간은 거의 차이가 없는데 여튼 여기에 착안해서 XAP의 압축률을 변경하여 압축하는 것만으로도 약 20~22% 정도의 용량이 줄어드는 마법(!)같은 효과를 얻을 수 있다는 군요.

저도 예전에 실버라이트 1때에는 7-zip command line 툴을 이용해서 비스무레한 일을 했던 적이 있는데 아무래도 2에서는 XAP을 자동으로 만들어줘서 그러려니 했었죠.

여튼 WEB-SNIPPETS 블로그에서는 이 작업을 좀 더 쉽게 해주는 유틸리티를 공개했는데요, 간단하게 옮겨 보죠.

  1. ReXapper를 다운로드
  2. 받은 파일의 압축을 풀어 임의의 장소에 복사(예 : D:\Utils\ReXapper\ReXapper.exe)
  3. 실버라이트 프로젝트의 Properties(속성)을 열어 Build Event탭의 Post-build event command line 박스를 찾아가서
  4. 다음의 코드를 붙여 넣기
    D:\Utils\ReXapper\ReXapper.exe –xap "$(TargetDir)$(TargetName).xap"

일단 저도 하나만 테스트를 해 봤지만, 348,854 bytes가 268,154 bytes로 약 20% 줄어드는 효과를 봤어요!

그러니…

저작자 표시 동일 조건 변경 허락
신고
Posted by gongdo

실버라이트와 관련된 가장 많은 질문 중 하나는 '퍼가기를 어떻게 하나요?' 였죠. 전 이 질문을 받을 때마다 목소리가 작아질 수 밖에 없었어요. 바로, 크로스 도메인에 대한 지독하리만치 철저한 제한으로 iframe 말고는 해결할 방법이 없었기 때문이죠.

패키징

실버라이트 2는 드디어 퍼가기를 가능하게 하는 크로스 도메인 정책과 패키징을 지원하게 되었어요!

실버라이트 2는 프로젝트에 포함된 모든 컴파일 코드와 정적인 리소스(이미지, XAML, 사용자 컨트롤, 동영상 등)를 XAP(ZAP, 잽으로 발음) 파일로 압축하게 되고 전과는 다르게 실버라이트는 아주 심플한 <object>태그를 사용하여 이 XAP 파일을 지정하는 것 만으로 HTML 페이지에 간단하게 올릴 수 있죠.

여기에서도 최근 마이크로소프트의 공개적인 플랫폼 정책을 엿볼 수가 있는데요, 바로 XAP 파일은 특수한 바이너리가 아닌 표준 ZIP 형식이란 것이죠. XAP은 아무 ZIP 압축해제 프로그램으로 그 안에 들어있는 파일들을 풀어볼 수 있게 돼요.

여기에서 아마도 컨텐트의 저작권에 대한 걱정을 할 수도 있을텐데요, 설마 저작권 보호가 필요할 정도로 중요한 컨텐트를 단순히 정적 리소스로 추가할 개발자는 없겠죠? 예를 들어, HTML에 덜렁 img 태그나 embed 태그로 컨텐트를 넣는 것 처럼요. 당연히 저작권 보호가 필요한 컨텐트는 웹서버의 특정 영역에 적절한 보호 수단을 적용하여 보관하게 될 거에요. XAP파일에 같이 넣는게 아니라요.

실버라이트 2는 XAP으로 압축되면서 애플리케이션의 크기와 전송속도를 대폭 향상시킬 수 있게 되었어요. 일단 파일이 한개로 줄어들면서 웹 서버에 대한 요청이 줄어드는 것만 해도 상당한 전송속도 향상을 얻을 수 있죠. 거쓰리 아저씨의 정보에 의하면 현재(Beta1) 가장 단순한 Hello World 예제에 해당하는 XAP파일은 약 4kb에 불과하죠. WOW!

배포

또 한가지 신경쓰지 않을 수 없는 것은 바로 실버라이트 런타임의 배포죠. 실버라이트 1.0에서도 이미 마이크로소프트의 다운로드 링크 방문, 설치 파일의 직접 다운로드 방식을 기본으로 지원하고 동시에 커스터마이징된 어떠한 형태의 배포도 보장하고 있죠. 심지어 원한다면 ActiveX를 사용하여 배포할 수도 있어요. 실버라이트 2도 비슷한 방식을 지원할 것 같지만 아직 정확한 정보는 없네요.

여튼 실버라이트 2는 4.3메가 정도의 배포 용량을 가지고 있고 설치에는 약 4~10초 정도밖에 걸리지 않는 다는군요.

많은 분들이 오해하고 있는 점 중에 하나는 실버라이트가 닷넷 프레임워크를 설치해야 구동된다고 알고 있다는 건데요, 절대로! 그렇지 않아요. 실버라이트 2에 필요한 모든 구성요소는 4.3메가 정도에 불과한 실버라이트 설치 파일에 완전히 통합되어 있어요. (※MAC을 위한 설치 파일은 MAC 환경상 더 클 수도 있다고 들었어요) 실버라이트 런타임은 다른 어떠한 컴포넌트나 프레임워크에의 의존성을 가지고 있지 않다고 다시 한번 강조해요. 이젠 이런 질문은 받지 않았으면 좋겠네요 :-)

크로스 도메인

퍼가기에 있어서 또 한가지 제약은 크로스 도메인 리소스에 대한 접근이었죠. 실버라이트 2는 드디어 크로스 도메인 리소스에 대한 제한도 해제하여 실버라이트 클라이언트가 다른 도메인 상의 리소스와 데이터를 접근할 수 있게 되었어요. 게다가 향상된 네트워킹 지원으로 REST, WS*/SOAP, POX, RSS 및 표준 HTTP 서비스를 사용할 수 있다고 하는군요. 특히 REST와 RSS의 표준 지원은 매시업 애플리케이션을 작성하는 데 가장 핵심적인 요소로 웹서버의 도움 없이도 재밌는 매시업 애플리케이션을 만들고 자유롭게 배포하는데 결정적인 역할을 할 거에요.


후후... 이제 하나 둘 씩 실버라이트 2에 대한 정보가 풀리기 시작하네요. 기대되지 않으세요? 단지 이것만 있는게 아니에요. MIX08이 얼마 안남았네요. 더 놀라운 점들은 MIX08에서 천천히 감상하셔도 될 거에요. :D

신고
Posted by gongdo


티스토리 툴바