압축 도구
보통 압축 도구들은 코드 압축과 난독화를 기본적으로 지원하고 있다.
CLI(Command Line Interface) 형태의 바이너리가 제공되며, 다른 인자 없이 스크립트를 인자로 넘길 경우 압축과 난독화를 동시에 진행한다.
프로젝트의 상황에 따라 압축 또는 난독화의 정도를 조절하는 등의 세부사항을 조절할 필요가 있다.
여기서는 각 도구가 제공하는 특징을 위주로 소개한다.
Google Closure Compiler
Google Closure Compiler는 별도의 API를 이용하여 소스를 압축하거나, jar 파일을 다운받아 사용할 수 있다.
가장 큰 특징은 Google JavaScript Style Guide에 맞춰 개발했을 때 코드 최적화를 해 준다는 점이다.
추가로 Style Guide에 맞도록 코드를 변환해주는 Style Fixer도 제공하고 있다.
공식 사이트에서 jar 파일을 받고 커맨드라인 명령을 통해 아래와 같이 사용할 수 있다.
java -jar compiler.jar --js hello.js --js_output_file hello-compiled.js
UglifyJS
UglifyJS는 현재 주요 자바스크립트 라이브러리에서 가장 많이 쓰이는 소스 압축 도구다.
Node.js 기반으로 개발되어 다른 Node.js 모듈들과의 연계가 좋다.
약간의 코드 최적화 기능이 있고 Google Closure Compiler보다 방대한 양의 상세 옵션을 제공한다.
npm을 통해 설치할 수 있다.
npm install -g uglify-js
설치와 마찬가지로 커맨드라인 명령을 통해 아래와 같이 사용할 수 있다.
uglifyjs hello.js -o hello.min.js