Rev. 2.73

attachment

엄밀히 말해 코드를 압축하는 것은 아니고 자바스크립트 코드에 들어있는 주석, 공백 등을 제거해 용량을 줄여 페이지 로딩속도를 높이는 방법입니다. 이 행위를 도와주는 Minify는 실시간으로 멀쩡한 자바스크립트 또는 스타일시트 파일을 재가공하여 뿌려줍니다. 콤마(,)로 구분하여 다중파일을 처리할 수 있어, 서버로부터의 요청을 줄일 수 있고(src="firstfile.js,secondfile.js"), 훌륭한 최소화 도구인 JSMin 라이브러리를 사용하며, 자동으로 CSS 파일이 들고 있는 이미지 경로명을 교체할 수 도 있습니다. Gzip압축전송은 기본입니다. 좌측 그림은 일전에 소개한 Gzip전송만 사용한 것과 Minify를 적용한 후 로딩속도를 비교 측정한 것입니다. 약 10% 속도 상승효과가 있군요. 덤으로 웹사이트 성능개선 도구인 YSlow의 10. Minify JS항에서 A평가를 받을 수 있습니다.

Minify는 PHP 5.2.1이상을 요구하고 있으나 PHP 4에서 사용 할 수 있는 버전도 있습니다. 마지막 변경일을 기준으로 생성하는 압축 파일은 케시폴더에 저장되어 서버성능 향상을 꾀하고 있습니다. 설치에는 mod_rewrite를 사용하는 것이 가장 간단하며, 아래처럼 손쉽게 붙일 수 있습니다.

RewriteEngine on
RewriteRule ^(.*\.(css|js))$ /minify.php?files=$1 [L,NC]

물론 생짜 PHP만으로 구현할 수도 있습니다.

<?php 
require 'minify.php';

$minifyCSS = new Minify(Minify::TYPE_CSS);
$minifyJS  = new Minify(Minify::TYPE_JS);

$minifyCSS->addFile(array(
  'css/example.css',
  'css/monkeys.css',
  'http://example.com/foo/bar/baz.css'
));

$minifyJS->addFile(array(
  'js/prototype.js',
  'js/example.js'
));
?>
<html>
  <head>
    <title>Example Page</title>
    <style type="text/css">
      <?php echo $minifyCSS->combine(); ?>
    </style>
    <script type="text/javascript>
      <?php echo $minifyJS->combine(); ?>
    </script>
  </head>
  <body>
    <p>
      Blah.
    </p>
  </body>
</html>

그러나, 소스분석이 어려워지고, 코드에 주석으로 명시된 저자권 표시 규정에 위배되는 문제를 가지고 있습니다.

Example:

* 이와 반대격인 Beautify도 참고하세요.

Comments

attachment

가슴 설레며 기다리던 아이팟 터치가 예정일보다 하루 일찍 도착했습니다. 좋은 점들이야 귀가 아프게 들으셨을테니 생각보다 실망한 점들을 추려서 말씀드리겠습니다.(어디까지나 저의 주관입니다.) 우선 윈도 비스타 64비트에 열결되지 않습니다. 인터페이스는 한글화가 되어있지만 한글입력은 안됩니다. 뒷면에 스크레치가 너무 쉽게 생깁니다. 손에 땀이 많으면 지문 투성이가 됩니다. 웹사이트에서 오작동이 너무 쉽게 일어납니다. 플래시 플레이어가 없습니다. 기본 어플리케이션이 매우 부실합니다. 아이팟 클래식 보다 음질이 떨어집니다. 카메라 없는 것이 많이 아쉽습니다. 간지빼면 시체입니다. 키보드 오타 심합니다. 비밀번호가 쉽게 들통납니다. 인터넷이 답답합니다. 스토리지 파일 탐색기가 없습니다. 등입니다. 전체적으로 볼 때 PDA수준까지는 아니고 인터넷 되는 MP3P정도의 느낌입니다.

모바일 사파리에서 몇몇 구석이 깨져보이길레 몇가지 수정하면서 알아낸 사실인데요. Prototype 1.6.0RC의 브라우저 구분 메서드가 오작동을 일으킵니다. 아이폰의 모바일 사파리만 인식하는 것을 아래처럼 오버라이드 하면 아이팟의 모바일 사파리도 구분해 냅니다. 모바일 사파리에서는 마우스 오버와 관련된 액션이 모두 무용지물이더군요. (모바일 사파리 개발 블로그로 전향해 볼까 생각중입니다. 으흐흐 )

Prototype.Browser.MobileSafari = !!navigator.userAgent.match(/(iPhone|iPod).*Mobile.*Safari/); // override

그리고 한글을 입력할 수 있도록 노력하시는 분들이 계셔서 링크겁니다. 아래 사이트는 모바일 사파리로 접속하여 설치하거나 사용할 수 있습니다.
http://www.zannavi.com/iphone/ 상길님 홈페이지 - 한손 입력기
http://iphoneim.sourceforge.net/ 다른 홈페이지에서도 한글 입력이 되도록 하는 북마크릿(설명)

Comments