코드를 알아 보기 힘들게 만드는 것을 '코드 난독화' 라고 한다
닷넷이나 자바와 가은 가상머신 기반의 프로그램은 컴퓨터가 직접 해석할 수 있는 네이티브 코드 생성 이전에 중간언어과정을 거치게 되어 있다
이러한 중간언어는 '디스어셈블러' 같은 툴로 다시 원 코드로 복원시킬 수 있다
이렇게 되면 배포된 프로그램의 소스를 쉽게 읽을 수 있기 때문에 코드 낙독 처리를 통해 소스의 가독성을 떨어뜨려 소스를 보호하게 된다
특히나 웹의 경우 소스는 여지없이 공개되는 구조이다
HTML, CSS 는 물론이고 자바스크립트 코드도 모두 공개되는 구조이다
자바스크립트 패킹은 일종의 소스 보호 차원에서 스크립트 코드를 난독화하고 더불어 소스를 압축 및 최소화하여 다운로드 속도도 향상시켜 주기 때문에 많은 곳에서 적용하고 있다
이 블로그에서 소개한 Raphale 과 같은 라이브러리도 아래와 같이 패킹되어 있다
즉 자바스크립트 패킹은 난독화 처리 및 소스 사이즈를 줄여 소스를 보호하고 다운로드 성능을 향상시키기 위해 사용하는 방법이다
물론 패킹된 스크립트를 언패킹 하면 소스 보호의 의미는 사라진다 할 수 있으나
일부 언패킹이 불가능한 패킹 방법도 있으니 참고 바란다
스크립트를 패킹해 주는 툴은 몇 가지가 있는데, 대표적을 한가지를 소개한다
웹에서 바로 패킹/언패킹을 해 볼 수 있는 툴이다
http://dean.edwards.name/packer/
http://www.strictly-software.com/unpacker#unpacker
참고로 악성스크립트도 이와 같이 패킹되는 추세이니 참고 바란다
'모바일 > Javascript' 카테고리의 다른 글
자바스크립트 메뉴를 추가하며... (6) | 2010.10.07 |
---|---|
JSON (JavaScript Object Notation) (6) | 2010.10.06 |
Raphael, 자바스크립트 (벡터) 그래픽 라이브러리 (6) | 2010.09.29 |
Gordon, 자바스크립트로 만든 플래시 런타임 (15) | 2010.09.29 |
jQuery Visualize, HTML5 차트 라이브러리 소개 (14) | 2010.09.15 |