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

Submit comment.

  1. Favicon of http://gilverlight.net BlogIcon 길버트 2008.11.06 20:12  comment URL  Edit/Remove  Submit comment.

    하겠습니다!
    하겠습니다!
    ^^

  2. Favicon of http://joongs.net BlogIcon joongs 2008.11.06 21:22  comment URL  Edit/Remove  Submit comment.

    이렇게 따로 안해도 최대한 압축되는 날이 왔으면 좋겠어요 ㅎ 그날이 오기 전까지 정말 요긴한 정보! 감사~

  3. Favicon of http://loworldsoft.com BlogIcon 안상현 2008.11.07 10:48  comment URL  Edit/Remove  Submit comment.

    좋은정보 감사합니다.~ ^^

  4. Favicon of http://www.uxkorea.net BlogIcon 준서아빠 2009.02.02 09:43  comment URL  Edit/Remove  Submit comment.

    하겠습니다!
    그런데요... 어플 실행 단계에서 압축을 해제 하는것 때문에 느려지지 않을까?

    • Favicon of http://gongdosoft.com BlogIcon gongdo 2009.02.02 11:26  comment URL  Modify/Remove

      음... 압축에 걸리는 시간이 거의 동일하다면 해제도 크게 차이 없지 않을까요?

      압축에 걸리는 시간은 압축 레벨이 1~3까지는 모두 Very Fast이고 rexapper는 레벨 3을 쓰는걸로 알고 있어요. 아무리 레벨1과 3이 시간 차이가 난다고 해도 20% 보다는 적게 걸릴 거라고 추측하고요. 사이즈가 20% 정도 적어지니 이득을 얻을 수 있겠죠.

  5. 꼬기얌얌얌 2009.12.16 10:22  comment URL  Edit/Remove  Submit comment.

    안녕하세요^^ 공도님
    그런데 실버라이트3에서는 지원하지 않는 건가요?ㅠㅠ

    ReXapper가 오류가 나네용..ㅠㅠ

    디버깅하면 오류가 나면서 프로그램을 닫는다구 떠용....

    방법이 없을까용?

    • Favicon of https://gongdosoft.com BlogIcon gongdo 2010.01.11 16:52 신고  comment URL  Modify/Remove

      헐... 이게 몇 백년만의 접속인지 모르겠네요.
      블로그를 거의 버려두다시피해서;;

      음음; 암튼, SL3부터는 압축율이 충분히 높아져서 더 이상 ReXapper를 사용하지 않아도 돼요.
      물론 SL3의 압축률이 마음에 들지 않는 분도 있겠지만... 용량대 압축처리 속도비가 이 정도면 괜찮다고 봐요.

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

Submit comment.

  1. 건태 2008.02.25 00:26  comment URL  Edit/Remove  Submit comment.

    WPF에 Silverlight가 간단하게 심어진다는 것도 참 좋은 것같아요... 어떻게 보면 당연한 거지만... 예전에는 그렇지 않았으니... Flesh -> Flex 를 의식한 것일 수도 있겠죠?
    어쨋든 올해는 정말 이래저래 Exciting한 한 해가 될 것같군요..^^

  2. Favicon of http://rkttu.com BlogIcon 남정현 2008.02.26 01:36  comment URL  Edit/Remove  Submit comment.

    실버라이트에서 뭔가 부족하다고 느껴졌던 것들이 대거 추가되는군요. 기대됩니다. -_-)b

  3. Favicon of http://www.gmong.com BlogIcon gmong 2008.03.24 16:22  comment URL  Edit/Remove  Submit comment.

    .NET Framework 설치가 필요 없었군요. 좋은 내용 배워갑니다. 감사합니다 ^^