JavaScript Minifier - JS 압축 온라인 도구
JS 붙여넣고 압축 버튼 한 번. 변수명은 그대로 유지하는 안전 모드라 예상 못한 버그 없어요.
쓰는 법
- 왼쪽에 JS 붙여넣기.
- 'JS 압축' 버튼 클릭.
- 오른쪽에 결과 + 크기 비교.
- 복사 한 번이면 끝.
예시
입력:
// 버튼 클릭 이벤트
function handleClick() {
const count = 0;
console.log("clicked");
}
출력 (38% 절약):
function handleClick(){const count=0;console.log("clicked")}
JS 용량은 줄이되 디버깅은 살리기
JavaScript를 압축하는 방법은 크게 두 가지예요. 하나는 주석·공백만 제거하는 '안전 모드', 다른 하나는 변수명까지 a, b로 바꿔버리는 '공격적 모드'(UglifyJS 같은 거). 여기는 전자예요. 주석이랑 공백만 제거해서 20~50% 줄이고, 변수명은 그대로 유지합니다.
왜 안전 모드냐면, 변수명 바꾸면 window['myFunc'] 같은 동적 호출이랑 클래스 메서드 이름에 의존하는 코드가 깨질 수 있거든요. 실서비스에서 '왜 갑자기 안 돼?' 디버깅할 때 원본 변수명 그대로 있으면 훨씬 수월합니다.
여기 쓰면 편한 점
- 변수명은 그대로 유지하는 안전 모드라 '왜 안 돼?' 디버깅이 가능해요.
- JS 용량이 줄어드니까 페이지 로딩 속도랑 Lighthouse 성능 점수 개선에 직접 영향.
- // 한 줄 주석, /* 여러 줄 */ 주석 다 제거돼요.
- 원본/압축 크기랑 절약 비율이 숫자로 나와서 효과 바로 확인 가능.
- 변수명을 안 바꾸니까 외부 라이브러리 호출이나 동적 접근 방식으로 쓴 코드도 안 깨져요.
- 소스 코드는 브라우저 밖으로 안 나갑니다. 사내 코드 붙여넣으셔도 안전.
다른 JS Minifier랑 비교
| 항목 | FreeToolbox | UglifyJS | javascript-minifier.com |
|---|---|---|---|
| 동작 위치 | 브라우저 | Node.js | 서버 |
| 설치 | 없음 | npm install | 없음 |
| 변수명 변경 | 안 함 (안전) | 함 | 함 |
| 크기 절감 | 20~50% | 50~70% | 50~70% |
| 광고 | 거의 없음 | 해당 없음 | 많음 |
자주 묻는 질문
변수명 짧게 줄여주나요?
아니요. 의도적으로 안 바꿔요. 주석, 공백, 줄바꿈만 제거합니다. 변수명 바꾸면 obj["methodName"] 같은 동적 호출이랑 리플렉션 코드가 깨질 수 있어서요. 더 공격적인 압축 원하시면 UglifyJS나 Terser 쓰세요.
얼마나 줄어요?
주석이랑 공백만 제거해도 원본에 따라 20~50% 줄어들어요. 주석 많은 코드는 더 많이 줄고, 이미 압축된 코드는 덜 줄어들죠.
압축하면 코드 깨지는 경우 있나요?
안전 모드라 깨질 가능성 거의 없어요. JS 엔진이 어차피 무시하는 문자(주석, 공백)만 제거하니까요. 만약 문제 생기면 변수명 바뀐 게 아니라 원본에 이미 문제 있었을 가능성이 높아요.
TypeScript도 압축되나요?
TypeScript는 먼저 tsc로 JS로 컴파일한 다음에 여기 넣으셔야 해요. 타입 주석(: string 이런 거)이 들어간 상태로 넣으면 제대로 처리 안 됩니다.
코드가 서버로 올라가요?
아니요. 전부 브라우저 안에서 처리돼요. 사내 프로젝트 소스나 미공개 라이브러리도 안심하고 넣으셔도 됩니다.