이 것은 파일 용량을 줄여 파일을 전송 받거나 로딩하는 시간을 줄이고,
사용자가 소스를 분석하기 어렵게 만들어 임의의 사용을 1차적으로 막는 용도로 코드를 압축한다.
변수명이나 함수명을 자동으로 줄이면 문제가 발생할 수도 있기 때문에 공백을 없애는 방식을 많이 사용하여 배포한다.
이렇게 압축된 코드를 변환하는 툴도 존재한다.
이러한 작업을 code beauty 라는 용어를 사용하기도 한다.
웹 상에서도 이러한 압축 및 압축 해제를 지원하는 사이트가 여럿 존재한다.
(jsbeautifier)
그러나 보통 이러한 사이트는 textfield를 통해 입력을 받기 때문에 길이가 길 경우 중간에 짤려 입력되는 경우가 발생한다.
textfield의 최대 입력 가능 문자수는 검색을 통해 알지 못하여 테스트를 해본 결과
계속 입력할 경우 5십만개의 이상의 문자열도 입력이 가능했는데
실제 압축되어있는 코드를 복사하여 붙여 넣으면 입력되는 문자열은 46,600개 정도 밖에 되지 않았다.
여러가지 테스트를 해보았지만 정확한 이유는 찾지 못하였고 복사하여 붙여 넣을 때 문자열이 잘려 복사가 되는 것으로 보아
크롬 브라우저에서의 clipboard 와 관련된 문제라고 생각되나 정확한 것은 아니다.
암튼 위와 같은 이유로 보통 수십만 단어가 넘는 라이브러리 파일들은 압축을 풀기 힘들다.
그래서 크롬 브라우저의 plugin인 Pretty Beautiful Javascript를 사용하기로 하였다.
전에도 사용해본 적이 있었는데 파일을 크롬 브라우저로 open 하기만 하면 자동으로 코드를 보기 좋게 압축 해제 해준다.
그렇다고 당연히 변수명이나 함수명까지는 복원할 수는 없고 들여쓰기와 개행을 해주는 것이다.
그러나 파일을 아무리 로딩해보고 이리저리 방법을 찾아봐도 압축 해제가 되지 않았다.
결국에는 이유를 찾았는데
Pretty Beautiful Javascript plugin은 로컬의 파일은 변환해 주지 않고
네트워크에 올려져 있는 파일만 변환을 해주었다.
컴퓨터에 설치된 아파치 웹 서버를 통하여 로딩을 하니 정상적으로 잘 동작을 해주었다. ㅎㅎ
아마도 Pretty Beautiful Javascript 쪽 서버에서 압축 해제를 해주기 때문에 로컬 파일은 동작을 하지 않는 듯 하다.
댓글 없음:
댓글 쓰기