moim.bio

자바스크립트 압축 (Minify)

공백 제거를 넘어 변수 이름 축약과 죽은 코드 제거까지 합니다. Terser를 브라우저에서 그대로 돌립니다.

공백만 지우는 게 아닙니다

이 도구는 Terser를 브라우저 안에서 돌립니다. 번들러(webpack·Vite·Rollup)가 배포 빌드에 쓰는 바로 그 압축기입니다. 코드를 실제로 파싱해 구문 트리를 만든 뒤 다시 씁니다.

단계하는 일
공백·주석 제거가장 기본. 보통 20~30% 줄어듭니다
변수 이름 줄이기지역 변수 userNamea로. 여기서 크게 줄어듭니다
죽은 코드 제거안 쓰는 변수, if (false) 블록, 도달할 수 없는 코드를 지웁니다

조심할 것: 변수 이름 줄이기

지역 변수만 바뀝니다. 전역 변수와 객체 속성은 그대로 둡니다 — 밖에서 이름으로 접근할 수 있기 때문입니다. 그래도 다음 경우에는 깨질 수 있습니다.

압축 결과를 배포하기 전에 반드시 동작을 확인하세요.

console 삭제

운영 배포에서 디버그 로그를 걷어낼 때 씁니다. console.log뿐 아니라 console.error까지 전부 지우므로, 오류 추적을 콘솔에 의존하고 있다면 켜지 마세요.

문법 수준

이건 변환기가 아니라 압축기입니다. ES5를 골라도 화살표 함수가 function으로 바뀌지는 않습니다. 압축 과정에서 그 문법 수준을 넘는 코드를 만들어 내지 않겠다는 설정일 뿐입니다. 구형 브라우저 지원이 필요하면 Babel 같은 트랜스파일러를 따로 써야 합니다.

코드가 서버로 전송되나요?

아닙니다. Terser 자체(약 1 MB)를 브라우저로 내려받아 여기서 실행합니다. 페이지를 연 뒤로는 네트워크를 쓰지 않으므로 사내 코드를 붙여넣어도 밖으로 나가지 않습니다. 대신 이 페이지는 다른 도구보다 처음 열 때 조금 무겁습니다.

압축을 되돌릴 수 있나요?

자바스크립트 정렬로 들여쓰기는 복원됩니다. 하지만 줄어든 변수 이름과 지워진 주석은 돌아오지 않습니다.

난독화 도구인가요?

아닙니다. 결과가 읽기 어려워지는 건 부작용이고 목적은 용량입니다. 코드를 감추는 게 목적이라면 전용 난독화 도구가 따로 있습니다 — 다만 클라이언트로 내려간 코드는 어떤 방법으로도 완전히 숨길 수 없습니다.

다른 도구 33개