Terser로 JavaScript를 압축합니다 — 주석과 공백을 제거하고 지역 변수 이름을 짧게 바꾸며 표현식을 단순화하고, 반대로 압축된 코드를 다시 읽기 좋게 정렬할 수도 있습니다. 실제 파서를 사용하므로 화살표 함수·클래스·옵셔널 체이닝 같은 최신 문법도 정확히 처리하고, 구문 오류가 있으면 깨진 결과 대신 위치를 알려주는 메시지를 보여줍니다.
압축과 정렬, 무엇이 다른가요?
압축은 JavaScript를 동작하는 가장 작은 크기로 줄입니다 — 주석과 공백을 제거하고, 지역 변수 이름을 짧게 바꾸며, 표현식을 단순화합니다. 실제 JavaScript 파서인 Terser로 동작하므로, 최신 문법(화살표 함수, 템플릿 리터럴, 클래스, 옵셔널 체이닝)도 단순 텍스트 치환으로 깨뜨리지 않고 정확히 처리하며, 코드에 구문 오류가 있으면 그 위치를 가리키는 명확한 메시지를 보여줍니다. 정렬은 그 반대로, 압축되거나 지저분한 코드를 다시 들여써서 읽기 좋게 만듭니다.
JavaScript 압축기 사용 방법
- 붙여넣기 — 압축하거나 정렬할 JavaScript를 위쪽 입력창에 붙여넣습니다.
- 들여쓰기 선택 — 공백 2칸·4칸·탭 중에서 고릅니다(정렬 결과에만 적용되며 압축에는 영향이 없습니다).
- 실행 — ‘압축’ 또는 ‘정렬’ 버튼을 누릅니다. 압축을 처음 누르면 Terser 라이브러리를 한 번 내려받은 뒤 실행됩니다.
- 복사 — 줄어든 크기 표시를 확인하고 ‘복사’ 버튼으로 결과를 클립보드에 담습니다.
최신 문법(화살표 함수·클래스 등)도 안전하게 압축되나요?
네. 압축은 실제 JavaScript 파서인 Terser로 이루어지므로 화살표 함수, 템플릿 리터럴, 클래스, 옵셔널 체이닝, 구조 분해 같은 최신 ES 문법도 정확히 이해하고 처리합니다. 정규식 리터럴, 문자열 안의 주석처럼 보이는 텍스트 등 단순 텍스트 치환 방식이었다면 깨졌을 부분도 그대로 보존됩니다.
압축하면 코드 동작이 바뀌나요?
바뀌지 않습니다. Terser는 코드의 동작을 그대로 유지하는 변환만 수행합니다 — 지역 변수 이름 단축, 죽은 코드 제거, 표현식 단순화 등은 모두 결과가 동일하도록 안전하게 이루어집니다. 다만 전역 변수 이름이나 함수 이름 등 외부에 노출되는 식별자는 다른 코드가 참조할 수 있으므로 임의로 바꾸지 않습니다.
구문 오류가 있으면 어떻게 되나요?
Terser는 코드를 실제로 파싱하기 때문에 괄호가 맞지 않거나 잘못된 토큰 같은 구문 오류가 있으면 압축을 중단하고, 문제가 발생한 위치(줄·열)를 가리키는 명확한 오류 메시지를 보여줍니다. 조용히 잘못된 결과를 내놓는 대신 어디를 고쳐야 하는지 알려주므로, 메시지가 가리키는 곳을 수정한 뒤 다시 시도하면 됩니다.
제 코드가 업로드되나요? 첫 압축 때 잠깐 멈추는 이유는요?
아무것도 업로드되지 않으며, 모든 처리는 브라우저 안에서 실행됩니다. Terser 압축 라이브러리는 크기가 크기 때문에, 이 페이지가 빠르게 로드되도록 압축을 처음 누를 때만 내려받습니다(한 번은 짧은 "압축 중…" 대기가 보일 수 있습니다). 그 이후에는 캐시되어 바로 동작합니다. 정렬은 즉시 실행됩니다. 작업이 끝나면 압축으로 몇 바이트를 줄였는지 크기 표시가 나타나고, 복사 버튼을 누르면 결과가 클립보드에 담깁니다.