June 17th, 2006
애플릿 다운로드 크기 줄이기 - Pack200

Pack200은 자바 5부터 포함된 자바 클래스 화일에 최적화된 압축 포맷이다.

보통 JAR의 크기를 50% 정도로 줄여준다는데 Francois의 블로그를 보면 Apache Derby를 2MB에서 600K로 줄였다는 예제가 있다.

자바5 에서 지원되는 내용은

  • {$JAVA_HOME}/bin 에 pack200unpack200 이라는 command line tool 지원(Native code이고 실행화일만 별도로 배포가능하다)
  • Java Web Start와 Java Plugin 에서 JAR 요청을 위해 HTTP 1.1 서버에 접속할때 ‘Accept-Encoding’ 헤더에 ‘pack200-gzip, gzip’을 추가하고 HTTP response의 ‘Content-Encoding’ 헤더에 ‘pack200-gzip’이나 ‘gzip’이 있으면 이를 먼저 uncompress 해 주어 원래 JAR가 나오도록 처리

이다. 이를 제대로 지원하려면 서버측에 ‘Accept-Encoding’과 ‘Content-Encoding’에 대한 처리를 하는 간단한 서블릿을 작성하여야 하는데 자세한 내용은 Sun의 문서(Pack200 and Compression for Network Deployment)에 나와있다.