최소화(프로그래밍)
Minification (programming)최소화(최소화 또는 최소화)는 기능을 변경하지 않고 해석된 프로그래밍 언어 또는 마크업 언어의 소스 코드에서 불필요한 문자를 모두 제거하는 프로세스입니다.이러한 불필요한 문자에는 보통 공백 문자, 새 줄 문자, 주석 및 경우에 따라서는 블록 구분자가 포함됩니다. 이러한 구분자는 코드의 가독성을 높이기 위해 사용되지만 코드 실행에 필요하지 않습니다.최소화는 소스 코드의 크기를 줄여 네트워크(예: 인터넷)를 통한 전송 효율을 높입니다.프로그래머 문화에서 매우 작은 소스 코드를 목표로 하는 것이 레크리에이션 코드 골프 대회의 목적이다.
최소화는 압축 해제 단계 없이 최소화된 소스를 즉시 해석할 수 있다는 점에서 보다 일반적인 데이터 압축 개념과 구별할 수 있습니다. 동일한 인터프리터가 원본 소스 및 최소화된 소스 모두에서 작업할 수 있습니다.
최소화의 목표는 난독화의 목표와 동일하지 않습니다. 전자는 종종 예쁜 프린터나[citation needed] 유니미네이터를 사용하여 되돌리려고 합니다.그러나 목표를 달성하기 위해 최소화는 변수 이름 단축 및 소스 코드 리팩터링과 같은 난독화에 의해 사용되는 기술을 사용하는 경우가 있습니다.최소화가 이러한 기술을 사용하는 경우, pretty-printer 또는 unminifier는 이러한 기술에 의해 수행된 변환에 대한 세부 정보를 제공하는 경우에만 최소화 프로세스를 완전히 되돌릴 수 있습니다.이러한 세부 정보를 제공하지 않으면 원래 소스 코드와 동일한 기능을 가지더라도 역방향 소스 코드에는 다른 변수 이름과 제어 흐름이 포함됩니다.
예
예를 들어 자바스크립트 코드
// 이것은 미니퍼에 의해 삭제되는 코멘트입니다. 변화하다 배열 = []; 위해서 (변화하다 i = 0; i < > 20; i++) { 배열[i] = i; } 동등하지만 보다 길다
위해서(변화하다 a=[i=0];i< >20;a[i]=i++); 역사
2001년에 Douglas Crockford는 JavaScript [2]코드에서 주석과 공백을 제거한 JSMin을 [1]도입했습니다.2007년에는 [2]YUI 컴프레서가 그 뒤를 이었다.2009년 구글은 클로저 인스펙터라고 불리는 파이어폭스 확장 기능과 함께 소스 매핑 기능을 포함하는 클로저 [3]컴파일러를 포함한 클로저 툴킷을 오픈했다.2010년 Mihai Bazon은 Uglify로 대체된 UglifyJS를 발표했습니다.2012년 JS2. 소스 맵 [4]지원을 허용하기 위한 개서입니다.2017년부터는 Alex Lam이 Uglify의 유지보수 및 개발을 인수했다.JS2, Uglify로 대체CLI와 API를 [5]통합한 JS3.
소스 매핑
소스 맵은 JavaScript용 소프트웨어 도구가 컴퓨터에 의해 실제로 실행된 코드와 다른 코드를 사용자에게 표시할 수 있는 파일 형식입니다.예를 들어, 미니화된 코드의 디버깅을 지원하기 위해 이 코드를 원래 미니화되지 않은 소스 코드에 "매핑"하여 대신 사용합니다.
원본 형식은 Joseph Schorr에 의해 Closure Inspector [6]최소화 프로젝트의 일부로 작성되었습니다.이 포맷의 버전2와 버전3에서는 맵파일의 사이즈가 [6]대폭 축소되었습니다.
종류들
도구들
Visual Studio Code는 여러 언어에 대한 최소화를 지원합니다.Visual Studio Marketplace를 쉽게 탐색하여 추가 미니어를 다운로드하고 설치할 수 있습니다.
소스 맵을 최소화하고 생성할 수 있는 JavaScript optimizer에는 Uglify가 포함됩니다.JS 및 Google Closure 컴파일러.또한 Microsoft Ajax Minifier,[7] Yahoo!와 같은 특정 온라인 도구도 있습니다. YUI Compressor 또는 Pretty [8]Diff는 CSS [citation needed]파일을 압축할 수 있습니다.HTML 코드를 최소화하기 위해 다음과 같은 도구가 있습니다.HtmlCompressor,[9] HTMLMinifier[10] 및 WebMarkupMin.[11]"minify"라는 이름의 Power-Shell 스크립트가 있습니다.PS"[12]는 PowerShell 스크립트 코드와 JavaScript 코드를 축소할 수 있습니다.
웹 개발
웹 응용 프로그램 및 웹 사이트용 컴포넌트와 라이브러리는 다양한 파일의 크기를 줄임으로써 파일 요청을 최적화하고 페이지 로드 시간을 단축하도록 개발되었습니다.
JavaScript 및 CSS(Cascading Style Sheet) 리소스를 최소화하여 파일 크기를 대폭 줄이면서 동작을 유지할 수 있습니다.온라인으로 이용할 수 있는 라이브러리는 다양한 수준으로 최소화와 최적화가 가능합니다.또한 일부 라이브러리는 클라이언트 다운로드를 위해 여러 스크립트 파일을 단일 파일로 병합합니다.JavaScript 소스 맵은 결합 및 [13]최소화된 후에도 코드를 읽고 디버깅할 수 있습니다.
레퍼런스
- ^ Crockford, Douglas (11 September 2001). "JSMin: The JavaScript Minifier". Crockford.com. Self-published. Archived from the original on 5 April 2002.
- ^ a b "Code minification". webplatform.github.io. The WebPlatform Project. Archived from the original on 24 April 2016.
- ^ Paul, Ryan (6 November 2009). "Google opens up its JavaScript development toolbox to all". Ars Technica.
- ^ Bazon, Mihai (8 November 2012). "Should you switch to UglifyJS2?". lisperator.net. Self-published.
- ^ "uglify-js NPM". npmjs.com.
- ^ a b "Source Map Revision 3 Proposal". 11 January 2011. Archived from the original on 26 November 2014. Retrieved 16 April 2016.
- ^ Microsoft Ajax Minifier.Ajaxmin.codeplex.com (2012년 9월 13일)
- ^ 예쁜 디프.예쁜 디프.
- ^ HtmlCompressor.code.google.com/archive/p/htmlcompressor (2017년 2월 11일)
- ^ HTMLMinifier(HTMLMinifier 。github.com/kangax/html-minifier (2017년 2월 11일)
- ^ WebMarkupMin. github.com/Taritsyn/WebMarkupMin (2017년 2월 11일)
- ^ 미니PSMinifyps.codeplex.com (2012년 2월 22일)
- ^ "Introduction to JavaScript Source Maps - HTML5 Rocks".