CSS/JS 압축/해제

📋 포맷/변환

CSS·JavaScript 코드를 Minify로 가볍게, Beautify로 읽기 쉽게 전환합니다.

⚡ 코드 Minifier란?

CSS·JavaScript·HTML 코드를 압축해 파일 크기를 최소화합니다. 공백·줄바꿈·주석을 제거해 웹사이트 로딩 속도를 개선하고 대역폭을 절약합니다. 프로덕션 배포 전 압축은 표준 관행이며, 일반적으로 30~70% 용량 절감 효과를 볼 수 있습니다. 반대로 Beautify 기능은 압축된 코드를 다시 읽기 좋게 정렬합니다.

📊 압축 방식 비교

CSS Minify

  • • 공백, 줄바꿈 제거
  • • 주석 제거
  • • 마지막 세미콜론 제거

JS Minify

  • • 한줄/블록 주석 제거
  • • 연속 공백 압축
  • • 연산자 주변 정리

HTML Minify

  • • HTML 주석 제거
  • • 태그 간 공백 제거
  • • 불필요한 줄바꿈 정리

📄 압축 전후 비교

CSS를 예로 보면, 사람이 읽기 위해 넣은 요소가 얼마나 큰 비중인지 드러납니다. 아래 코드는 압축 후 약 40% 줄어듭니다.

압축 전

/* 메인 버튼 스타일 */
.btn-primary {
    background-color: #3b82f6;
    color: #ffffff;
    padding: 12px 24px;
    border-radius: 8px;
}

압축 후

.btn-primary{background-color:#3b82f6;color:#fff;padding:12px 24px;border-radius:8px}

실제 절감 효과는 코드 스타일에 따라 다릅니다. 주석과 들여쓰기가 많은 CSS는 절반 가까이 줄기도 하고, 이미 간결하게 작성된 코드는 10~20% 정도에 그칩니다.

⚠️ 압축이 깨뜨릴 수 있는 것들

공백 제거는 단순해 보이지만, 공백이 의미를 갖는 자리가 있습니다. 압축 후에는 반드시 동작을 확인하세요.

  • HTML의 인라인 요소 사이 공백<span>A</span> <span>B</span>의 공백을 지우면 화면에서 두 글자가 붙어버립니다.
  • <pre>와 <textarea> — 내부 공백과 줄바꿈이 그대로 출력되는 태그라 압축하면 표시가 달라집니다.
  • 세미콜론 없는 JS — 줄바꿈에 의존해 문장을 구분하던 코드는 한 줄로 합쳐지면 문법 오류가 납니다.
  • 템플릿 리터럴 — 백틱 문자열 안의 줄바꿈은 실제 값의 일부입니다.
  • 조건부 주석·라이선스 주석 — 오픈소스 라이브러리는 라이선스 고지 주석을 유지해야 하는 경우가 있습니다.

실무에서는 Gzip이나 Brotli 압축이 서버 단에서 한 번 더 적용됩니다. Minify와 중복처럼 보이지만 원리가 달라 함께 쓸 때 효과가 가장 큽니다.

💡 활용 팁

  • 개발 중에는 Beautify 상태로 작업하고, 배포 전에 Minify 적용
  • CDN에 올릴 파일은 반드시 Minify하여 로딩 속도 개선
  • 소스맵(Source Map)과 함께 사용하면 디버깅에도 문제없음
  • 빌드 도구(Webpack, Vite)는 자동 Minify를 지원하므로 설정 확인

💡 실무 팁

빌드 자동화가 어려운 정적 페이지이메일 템플릿 HTML은 이 도구로 일회성 압축을 처리하면 충분합니다. 단, 압축 후엔 반드시 한 번 동작 테스트를 거치세요.

자주 묻는 질문

Minify와 Uglify의 차이는 무엇인가요?

Minify는 공백/주석 제거 등 기본 압축이고, Uglify는 변수명 단축, 코드 최적화 등 더 공격적인 압축을 수행합니다. 이 도구는 Minify 수준의 기본 압축을 제공합니다.

압축하면 코드가 깨지지 않나요?

이 도구는 공백과 주석만 제거하므로 코드 로직에는 영향을 주지 않습니다. 다만 복잡한 정규식이나 특수 문법이 있으면 결과를 확인하세요.

Beautify는 언제 사용하나요?

압축된 라이브러리나 난독화된 코드를 분석할 때, 또는 코드 리뷰/학습 목적으로 가독성 있게 정렬하고 싶을 때 사용합니다.

Gzip을 쓰는데도 Minify가 필요한가요?

네. Minify는 불필요한 문자를 실제로 없애고, Gzip은 남은 내용을 압축 알고리즘으로 줄입니다. 원리가 달라 함께 적용할 때 효과가 가장 큽니다.

HTML을 압축했더니 글자가 붙어버렸어요.

인라인 요소 사이의 공백은 화면에 실제 간격으로 렌더링되기 때문입니다. span이나 a 태그가 나란히 있는 구간은 압축 후 표시를 확인하고, 필요하면 CSS 여백으로 대체하세요.

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

아니요. 압축과 정렬 모두 브라우저에서 처리되며 코드가 서버로 전송되거나 저장되지 않습니다. 사내 코드도 안전하게 사용할 수 있습니다.

관련 도구

광고