주요 차이점 : 난독 화 및 축소는 프로그래밍, 특히 JavaScript 프로그래밍에서 두 가지 공통적으로 사용되는 용어입니다. 축소는 파일의 불필요한 문자를 모두 제거하여 파일을 수정하는 프로세스를 정의합니다. 이 프로세스는 파일을 더 가볍게 만들어 성능을 향상시키는 데 도움이됩니다. 한편, 난독 화는 파일을 읽을 수 없도록 수정하는 프로세스입니다. 권한이없는 개체에 의한 소스 코드 재사용을 방지합니다.
난독 화와 축소는 프로그래밍, 특히 JavaScript 프로그래밍에서 일반적으로 사용되는 두 가지 용어입니다. 프로그래밍에서 축소 란 소스 코드에서 불필요한 문자가 제거되는 기술을 말하며 축소 과정 이전과 동일한 기능을 유지합니다. 한편, 난독 화는 파일을 읽고 이해하는 것이 어려워지는 방식으로 파일을 수정하는 것을 의미합니다. 따라서 두 가지 목표는 서로 다른 목표를 달성해야합니다.
축소는 파일의 불필요한 문자를 모두 제거하여 파일을 수정하는 프로세스를 정의합니다. 이 프로세스는 파일을 더 가볍게 만들어 성능을 향상시키는 데 도움이됩니다. 이 파일들은 더 적은 시간에 찾아보기에로드됩니다. 그러나 입력 파일의 기능을 변경하지 않는 것이 중요합니다. 대규모 프로젝트의 많은 부분에서 빌드 프로세스와의 통합으로 축소가 유지됩니다.
이 프로세스는 일반적으로 코드를 구문 분석 한 다음 나중에 다시 압축 된 형식으로 출력함으로써 수행됩니다. 코드는 일반적으로 육안으로는 읽을 수 없습니다. 공백, 주석 및 줄 바꿈 문자와 같은 불필요한 코드를 모두 제거합니다. 작은 파일을 가져 오는 것 외에도 잘못된 코드가 제대로 구문 분석되고 적절히 축소되지 않으므로 프로세스가 코드의 유효성을 검사합니다.
난독 화는 읽을 수 없도록 파일을 수정하는 프로세스입니다. 권한이없는 개체에 의한 소스 코드 재사용을 방지합니다. 그러나 코드를 리버스 엔지니어링하거나 코드 난독화할 가능성이 있습니다. 난독 화 된 코드를 이해하려면 브라우저가 난독 화 된 JavaScript 소스 코드를 원래 형식으로 변환 할 수 있어야합니다. 축소와 마찬가지로 주석과 공백도 제거합니다. 그러나, 그것은 또한 코드의 munging로 연결됩니다. 함수와 변수 이름은 일반적으로 작은 문자열로 변환됩니다. 이렇게하면 코드의 크기가 줄어들고 코드도 이해하기가 어려워집니다.
난독 화와 축소는 JavaScript와 같은 소스 코드를 수정하는 프로세스입니다. 그러나 둘 다 주로 목표가 다릅니다. 축소는 코드의 성능을 향상시키기 위해 수행됩니다. 반면에, 난독 화 (obfuscation)는 원본 소스 코드를 숨기기 위해 소스 코드를 읽기 어렵게 만들어줍니다. 난독 화 및 축소를위한 다양한 도구가 있습니다.
축소 프로세스는 비교적 간단하며 난독 화와 비교하여 버그를 생성 할 확률이 적습니다. 난독 화 (obfuscation)는 또한 생산 과정에서 코드 디버깅의 난이도를 증가시킬 수 있습니다.
Minification과 난독 화의 비교 :
축소 | 난처 | |
정의 | 축소는 축소 과정 이전과 동일한 기능을 유지하면서 불필요한 문자가 소스 코드에서 제거되는 기술을 나타냅니다. | 난독 화 (obfuscation)는 읽을 수없고 이해하기 어려운 방식으로 파일을 수정하는 프로세스입니다. |
골 | 성능 향상 | 소스 코드 숨기기 |
행동 양식 | 공백 문자, 줄 바꿈 문자, 주석 및 블록 분리 문자 제거와 마찬가지로 | 변수, 함수 및 멤버의 이름을 변경하여 프로그램을 훨씬 이해하기 어렵게 만듭니다. |
사용 된 도구의 예 | JSMin 및 YUI 압축기. | 도조 압축기 |
방법 | 단순한 | 비교적 복잡한 |
위험 및 유지 보수성 | 비교적 적은 | 비교적 많은 |