JavaScript 축소 방법: 초보자 개발자를 위한 단계별 가이드
게시 됨: 2023-04-21페이지 성능을 개선할 방법을 찾고 있는 웹 또는 앱 개발자라면 진지하게 고려해야 할 한 가지 개선 사항은 JavaScript 축소입니다. 이 게시물에서는 JavaScript를 축소하는 방법과 현재 기술 스택에 따라 JavaScript를 축소하는 데 사용할 수 있는 도구를 보여 드리겠습니다.
정확히 JavaScript 축소가 무엇인지, 그리고 이를 수행하려는 이유를 아는 것도 좋은 일이므로 이것부터 시작하겠습니다. 도구로 이동하려면 아래 목차 링크를 자유롭게 사용하십시오.

목차:
- JavaScript를 축소하는 이유는 무엇입니까? #
- JavaScript 축소의 이점 #
- 축소 대 난독화 #
- JavaScript를 축소하는 온라인 도구 #
- 다른 도구 및 서비스로 JavaScript 축소 #
JavaScript를 축소하는 이유는 무엇입니까?
이미 언급했듯이 코드 축소는 웹 페이지의 성능과 속도를 향상시키는 한 가지 방법입니다. JavaScript 축소가 어떤 모습인지 보여주기 위해 일반적인 JavaScript 디바운스 함수인 다음 코드 예제를 살펴보십시오.
let doResizeResult = () => { console .log( window .innerWidth); } // main function let debounce = ( callback, delay ) => { let myTimeout; return () => { clearTimeout(myTimeout); myTimeout = setTimeout( () => { callback() }, delay); }; }; let doDebounce = debounce( () => doResizeResult(), 1000 ) window .addEventListener( 'resize' , () => doDebounce()); 코드 언어: JavaScript ( javascript )위의 코드는 읽기 쉽고, 들여쓰기가 정확하고, 연산자 사이에 공백이 있고, 특정 코드 줄 사이에 이중 간격이 있습니다. 이런 방식으로 JavaScript를 작성할 필요는 없지만 가독성에 도움이 됩니다. 이 예제에는 코드 내에 주석도 포함되어 있습니다.
JavaScript 축소기를 사용하여 해당 코드를 축소하면 다음과 같이 표시됩니다.
let doResizeResult= () => { console .log( window .innerWidth)},debounce= ( e,d )=> { let n; return () => {clearTimeout(n),n=setTimeout( () => {e()},d)}},doDebounce=debounce( () => doResizeResult(), 1e3 ); window .addEventListener( "resize" ,()=>doDebounce()); 코드 언어: JavaScript ( javascript )코드 스니펫의 읽기 쉬운 버전을 온라인 JavaScript 축소기에 붙여넣었습니다(나중에 예제 참조). 최소화기는 완전히 동일한 코드 조각의 다른 버전을 생성했습니다. 단, 지금은 코드가 축소되었습니다. 즉, 불필요한 공백과 줄바꿈이 제거되어 코드가 최대한 작아집니다. 이 경우 코드 주석도 제거했습니다.
편집 및 유지하려는 JavaScript를 절대 축소하지 않는다는 점에 유의하십시오. 이것은 비생산적일 것입니다. JavaScript 축소는 프로덕션 웹 사이트에 푸시할 코드를 위한 것입니다. 개발자 환경에서 JavaScript로 작업하는 경우 미리 축소된 코드 버전을 그대로 유지합니다.
JavaScript 축소의 이점
위와 같은 스니펫을 축소할 때 얼마나 많은 파일 크기가 저장되는지 알 수 있습니다.
- 축소 전: 384바이트
- 축소 후: 232바이트
이것은 축소만을 위한 것이며 gzip과 같은 다른 형태의 압축은 포함하지 않습니다. 이것은 또한 변수 이름, 함수 이름 및 기타 코드 부분의 크기를 줄이는 형태의 최소화를 사용하지 않습니다. 이제 이러한 유형의 개선이 수백 줄의 코드에서 이루어진다고 상상해 보십시오! 간단한 축소만으로도 앱 성능이 크게 향상됩니다.
이것은 JavaScript를 축소하는 방법을 조사하려는 이유를 충분히 보여줍니다. 그러나 JavaScript를 축소하는 데 사용할 수 있는 도구를 사용하기 전에 다른 관련 항목을 간단히 살펴보겠습니다.
축소 대 난독화
JavaScript 축소는 JavaScript 난독화와 다릅니다. 즉, 축소로 인해 JavaScript를 읽기가 더 어려워지는 것은 사실입니다. 그러나 완전히 "난독화"되지는 않았으며 JavaScript 코드를 미화(즉, "최소화")하기 쉽습니다. JavaScript 난독화는 상당히 다르게 보입니다.
이전 섹션의 동일한 스니펫으로 돌아가 보겠습니다. 온라인 JavaScript obfuscator를 통해 실행할 때 스니펫은 다음과 같습니다.
var _0xc3ef=[ "\x69\x6E\x6E\x65\x72\x57\x69\x64\x74\x68" , "\x6C\x6F\x67" , "\x72\x65\x73\x69\x7A\x65" , "\x61\x64\x64\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72" ]; let doResizeResult= () => { console [_0xc3ef[ 1 ]]( window [_0xc3ef[ 0 ]])}; let debounce= ( _0xf855x3,_0xf855x4 )=> { let _0xf855x5; return () => {clearTimeout(_0xf855x5);_0xf855x5= setTimeout( () => {_0xf855x3()},_0xf855x4)}}; let doDebounce=debounce( () => { return doResizeResult()}, 1000 ); window [_0xc3ef[ 3 ]](_0xc3ef[ 2 ],()=>{ return doDebounce()}) 코드 언어: JavaScript ( javascript )코드의 일부는 여전히 손상되지 않았지만 대부분의 코드가 완전히 다르고 읽을 수 없음을 알 수 있습니다.
JavaScript 난독화의 목적은 다른 사람이 코드를 "훔치는" 것을 허용하지 않고 축소하는 것입니다. 그러나 이것은 코드가 기술적으로 "난독화"될 수 있기 때문에 다소 무의미한 노력입니다. 또한 프론트엔드 기술은 개방형 웹 플랫폼의 일부이기 때문에 JavaScript 코드는 저작권으로 보호받기 어렵습니다.
따라서 JavaScript만 축소할 수 있습니다. JavaScript 난독화는 대부분의 경우 과잉입니다.
JavaScript를 축소하는 온라인 도구
이제 JavaScript와 그 이점을 축소하려는 이유에 대한 기본 사항을 다루었으므로 몇 가지 유용한 온라인 도구를 고려해 보겠습니다. 이를 통해 몇 번의 클릭만으로 일반 JavaScript 코드를 축소된 코드로 즉시 변환할 수 있습니다.
나열된 도구 중 다수는 유사하게 작동하지만 코드를 추가할 수 있는 방법(예: 업로드, 직접 입력 등)이 다릅니다. 또한 일부 도구에는 난독화 옵션을 포함하여 특정 축소 유형에 대한 구성 옵션이 있습니다.
Toptal JavaScript 축소기
Toptal의 이 온라인 축소기 서비스를 사용하면 페이지에서 직접 JavaScript를 축소할 수 있습니다. API를 사용하여 POST 요청을 통해 축소할 수도 있습니다.

Digital Ocean의 JavaScript 축소 도구
Digital Ocean minify 도구는 최소화와 함께 미사용 코드 및 stray console.log() 문을 제거하는 기능을 포함하여 다양한 구성 설정을 제공합니다. 더 빠른 축소를 위해 세 가지 구성 사전 설정 중에서 선택할 수도 있습니다.


작게 하다
Minify는 CSS도 축소하는 간단한 JavaScript 축소기입니다. 홈 페이지 도구를 사용하여 온라인에서 직접 사용하거나 여러 파일을 축소하고 결합할 수 있는 CLI 도구로 사용할 수 있습니다. 여기에는 테스트 스위트도 포함됩니다.

번들
bundlejs는 이 목록에 있는 다른 JavaScript 축소 도구와 다릅니다. 이를 통해 모든 패키지를 결합하고 축소한 후 번들 크기가 얼마인지 대화식으로 테스트할 수 있습니다. 축소기로 사용하거나 단순히 번들 크기 검사기로 사용할 수 있으며 다양한 구성 옵션이 있습니다.

JSCompress
JSCompress는 내부적으로 UglifyJS 및 babel-minify를 사용하는 온라인 JavaScript 축소기입니다. 이 도구를 사용하면 JavaScript를 복사하여 붙여넣거나 하나 이상의 파일을 업로드하여 축소 및 압축을 위해 파일을 결합할 수 있습니다.

FreeFormatter.com의 JavaScript 축소기
이 온라인 축소 도구를 사용하면 직접 복사/붙여넣기 또는 파일 업로드를 통해 축소할 수 있습니다. 파일의 인코딩 유형을 선택할 수 있으며 이 유형은 최적화를 위해 코드의 변수 이름을 더 작게 조정합니다.

JS 온라인 축소
복사/붙여넣기를 통해 JavaScript를 축소하기 위한 간단한 도구입니다. 이는 이러한 도구만큼 간단하며 특정 JavaScript 라이브러리가 축소되는 방식을 확인할 수 있는 몇 가지 원클릭 테스트도 포함되어 있습니다.

BeautifyTools의 자바스크립트 축소기
이 온라인 축소기는 JavaScript를 즉시 축소하며 여러 방법으로 코드를 입력할 수 있는 옵션이 있습니다. 복사/붙여넣기, URL을 통해 로드 또는 로컬 JavaScript 파일을 로드할 수 있습니다.

JS 축소
이 도구를 사용하면 직접 입력하여 축소하거나 JavaScript 파일을 업로드할 수 있습니다. 유용하게도 다양한 상자를 선택하여 코드의 다양한 부분(난독화와 유사)을 "조작"하고 주석과 원래 인용문을 유지할 수 있는 옵션도 있습니다.

다른 도구 및 서비스로 JavaScript 축소
대부분의 경우 웹 사이트의 CMS 또는 빌드 시스템이 준비되면 JavaScript 축소는 수동이 아닌 자동으로 수행되는 작업입니다. 이는 설정에 따라 플러그인 및 빌드 도구를 통해 가능합니다.
예를 들어 WordPress 웹 사이트를 실행하는 경우 파일 캐싱, 압축, 물론 CSS 및 JavaScript 축소를 포함한 일련의 옵션을 제공하는 플러그인이 있습니다.
Webpack, Parcel.js, esbuild, Snowpack 등과 같이 사용 가능한 많은 빌드 도구 중 하나를 사용하면 축소가 자동으로 수행될 수 있습니다. 개발 코드는 축소되지 않지만 변경 사항을 프로덕션으로 푸시할 준비가 될 때마다 JavaScript 축소를 포함하여 선택한 기능으로 새 코드가 자동으로 빌드됩니다.
빌드 프로세스의 일부로 JavaScript를 축소할 때 사용할 수 있는 인기 있는 도구 중 하나는 앞서 언급한 UglifyJS입니다. 이것은 많은 도구가 후드 아래에서 사용하고 사용자가 직접 사용할 수도 있는 완전한 기능을 갖춘 압축기/축소기입니다.

웹사이트에서 제공되는 JavaScript를 자동으로 축소할 수 있는 콘텐츠 전송 네트워크(CDN) 및 관련 서비스도 있습니다. 이는 즉석 이미지 최적화와 유사합니다.

그러한 서비스 중 하나가 JsDelivr입니다. JsDelivr는 오픈 소스 프로젝트에 무료이며 npm 및 GitHub에서 JavaScript 콘텐츠를 제공하는 데 최적화된 빠른 CDN입니다. 설명서에 설명된 대로:
먼저 축소된 버전의 파일을 찾으려고 시도할 것입니다…(확장자를 제거하고 동일한 파일
.min.js를 찾음). 우리가 하나를 찾을 수 없다면 우리는 우리 자신을 축소합니다.
이는 필요한 경우 축소와 함께 전달 자체를 통해 강력한 성능을 제공합니다.
JavaScript 축소 방법 요약
위에 제시된 도구와 제안이 웹 사이트와 앱에서 JavaScript를 축소하는 방법과 그 이점을 이해하는 데 도움이 되기를 바랍니다. 위에 표시된 것처럼 JavaScript를 축소하는 데 사용할 수 있는 여러 가지 도구가 있습니다. 이들 중 일부는 대화식으로 사용할 수 있는 온라인 도구입니다. 다른 것들은 더 큰 웹 사이트 구축 시스템의 일부이며 때로는 CMS를 사용합니다.
어떤 경우이든 JavaScript 축소는 더 빠르게 로드되는 콘텐츠를 제공하여 더 나은 전반적인 사용자 경험을 가능하게 함으로써 사용자에게 이점을 제공합니다.
…
워드프레스 사이트 속도 향상에 대한 단기 집중 과정에 참여하는 것을 잊지 마세요. 아래에서 자세히 알아보십시오.
