jsmin 모듈이란?
파이썬에서 자바스크립트 코드를 최소화(minify)하거나 난독화(obfuscate)하고 싶다면, jsmin 모듈을 활용할 수 있습니다. jsmin은 자바스크립트 코드에서 불필요한 공백, 줄바꿈, 주석 등을 제거하여 파일 크기를 줄여주는 경량화 도구입니다. 이렇게 압축된 코드는 사람이 읽기 어려워지기 때문에, 부수적으로 난독화 효과도 얻을 수 있습니다.
jsmin 설치 방법
pip를 이용해 간단하게 설치할 수 있습니다.
$ pip install jsmin
파이썬 코드에서 jsmin 사용하기
예를 들어 hello.js라는 자바스크립트 파일을 최소화하려면 다음과 같이 작성합니다.
>>> from jsmin import jsmin
>>> with open('hello.js') as js_file:
... minified = jsmin(js_file.read())
>>> print(minified)
위 코드를 실행하면 최소화된 자바스크립트 코드가 셸에 출력됩니다. 실제 프로젝트에서는 출력된 결과를 새로운 파일로 저장하여 배포용으로 활용하면 좋습니다.
>>> with open('hello.min.js', 'w') as out_file:
... out_file.write(minified)명령줄 도구로 사용하기
jsmin은 파이썬 모듈뿐만 아니라 명령줄 인터페이스(CLI) 도구로도 사용할 수 있어 더욱 편리합니다.
$ python -m jsmin hello.js
이 명령을 실행하면 hello.js의 압축 결과가 바로 표준 출력으로 나타나며, 리디렉션(>)을 활용해 파일로 저장할 수도 있습니다.
$ python -m jsmin hello.js > hello.min.js
참고 자료 및 추가 팁
jsmin에 대한 자세한 내용은 PyPI 공식 문서에서 확인할 수 있습니다.
https://pypi.python.org/pypi/jsmin
참고로 jsmin은 기본적인 공백·주석 제거 수준의 경량화를 수행합니다. 변수명 변경 등 더 강력한 난독화가 필요하다면 rjsmin(더 빠른 순수 파이썬 구현)이나 Node.js 기반의 Terser, UglifyJS 같은 도구도 함께 고려해 보시기 바랍니다.