🧰도구상자

📦 JS·CSS 압축

주석과 불필요한 공백을 제거해 JS·CSS 코드 용량을 줄입니다.

주석·공백 제거 수준의 간이 압축입니다. 정밀 최적화는 전용 빌드 도구를 사용하세요.

JS·CSS 압축(minify) 도구는 자바스크립트나 CSS 코드에서 사람이 읽기 좋게 넣어 둔 주석과 줄바꿈, 들여쓰기 같은 불필요한 공백을 제거해 파일 크기를 줄여 주는 도구입니다. 코드를 붙여넣고 언어(CSS 또는 JS)를 고른 뒤 압축 버튼을 누르면, 동작은 그대로 유지한 채 용량만 줄어든 결과 코드를 바로 확인하고 복사할 수 있습니다.

브라우저는 웹페이지를 열 때 HTML·CSS·JS 파일을 서버에서 내려받아 실행합니다. 이 파일이 작을수록 다운로드가 빨라지고 데이터 사용량도 줄어듭니다. 주석이나 공백은 코드를 작성·유지보수할 때는 꼭 필요하지만, 브라우저가 코드를 실행할 때는 아무런 역할을 하지 않기 때문에, 배포 직전에 제거해도 결과가 달라지지 않습니다. minify는 바로 이 '실행에 필요 없는 문자'만 골라 지우는 작업입니다.

아래에서는 minify가 정확히 무엇을 제거하고 무엇을 보존하는지, 압축 전후 코드가 어떻게 달라지는지, minify와 흔히 혼동하는 난독화(obfuscation)의 차이, 그리고 이 도구의 간이 압축과 전문 빌드 도구의 차이까지 정리했습니다.

사용 방법

  1. 상단 탭에서 압축할 언어를 CSS 또는 JS 중에 고릅니다. CSS 스타일시트라면 CSS를, 자바스크립트 코드라면 JS를 선택합니다.
  2. 입력창에 압축할 코드를 붙여넣습니다. 파일 전체를 넣어도 되고 일부만 넣어도 됩니다.
  3. 압축 버튼을 누르면 주석과 잉여 공백이 제거된 결과 코드가 아래에 나타나고, 원본 대비 몇 퍼센트가 줄었는지(글자 수 변화)가 함께 표시됩니다.
  4. 복사 버튼으로 결과를 클립보드에 담아 배포용 파일에 붙여넣습니다. 원본 소스는 따로 보관해 두고, 압축본은 배포용으로만 쓰는 것이 좋습니다.

minify가 하는 일: 무엇을 지우고 무엇을 남기나

minify(미니파이)는 코드의 '의미'는 건드리지 않고 '겉모습'만 최소화합니다. 사람이 읽기 편하도록 넣은 요소를 지우되, 실행 결과를 결정하는 문법·값·이름은 그대로 둡니다. 이 도구가 처리하는 대상은 아래와 같습니다.

이 도구가 제거하는 것과 보존하는 것
구분처리예시
주석제거/* ... */ 블록 주석, JS의 // 라인 주석
줄바꿈·빈 줄제거·축소여러 줄로 나뉜 코드를 한 줄로 합침
들여쓰기·연속 공백제거·축소줄 앞뒤 공백, 기호 주변 공백 정리
변수·함수 이름보존userName, calcTotal 등 식별자 그대로
문자열·값보존"안녕하세요", 색상 코드, 숫자 등
문법 구조보존중괄호·세미콜론 등 실행에 필요한 기호

핵심: 동작은 절대 바뀌지 않습니다

minify는 코드가 하는 일을 바꾸지 않습니다. 주석과 공백만 지우므로, 압축 전 코드와 압축 후 코드는 브라우저에서 정확히 똑같이 동작합니다. 사람이 보기에 읽기 어려워질 뿐, 기능은 100% 그대로입니다.

왜 압축하나: 로딩 속도와 대역폭

웹페이지가 열리는 속도는 CSS·JS 파일의 크기에 직접 영향을 받습니다. 파일이 작아지면 사용자의 브라우저가 더 빨리 내려받아 화면을 더 일찍 그릴 수 있고, 특히 모바일·저속 네트워크에서 체감 차이가 큽니다. 파일을 내려받는 데 쓰이는 데이터(대역폭)도 줄어들어, 방문자가 많은 사이트일수록 전송 비용과 서버 부하가 함께 감소합니다.

  • 로딩 속도: 파일이 작을수록 다운로드가 빨라져 페이지가 더 일찍 표시됩니다. 이는 사용자 이탈률과 검색 순위(Core Web Vitals)에도 영향을 줍니다.
  • 대역폭 절약: 방문자 1명당 전송량이 줄어, 트래픽이 많을수록 서버·CDN 비용이 절감됩니다.
  • 캐시 효율: 작은 파일은 브라우저·CDN 캐시에 더 가볍게 저장됩니다.
  • gzip과의 관계: 서버 압축(gzip·brotli)과 minify는 서로 보완적입니다. minify로 문자를 줄인 뒤 전송 압축까지 적용하면 최종 전송량이 더 작아집니다.

압축 전후 예시로 보기

아래는 같은 CSS 규칙을 압축하기 전과 후로 비교한 예시입니다. 줄바꿈·들여쓰기·주석·기호 주변 공백이 사라졌지만, 선택자·속성·값은 그대로라 스타일 적용 결과는 완전히 동일합니다.

CSS 압축 예시 (동작은 동일)
압축 전압축 후
/* 버튼 스타일 */ .btn { color: white; padding: 8px 16px; }.btn{color:white;padding:8px 16px}

JS도 같은 원리

JS에서는 블록 주석(/* */)과 라인 주석(//), 그리고 줄 앞뒤 공백·빈 줄이 제거됩니다. 예를 들어 여러 줄에 걸쳐 주석과 들여쓰기로 정리해 둔 함수도, 압축하면 실행에 필요한 코드만 남습니다. 다만 문자열 안의 // 같은 값은 주석으로 오인하지 않도록 보존됩니다.

minify와 난독화(obfuscation)의 차이

minify와 난독화는 둘 다 코드를 '읽기 어렵게' 만들지만 목적이 완전히 다릅니다. minify의 목적은 파일을 '작게' 만드는 것이고, 난독화의 목적은 코드를 '분석하기 어렵게' 숨기는 것입니다. minify는 주석·공백만 지워 원리상 원본과 거의 같은 구조가 남지만, 난독화는 변수·함수 이름을 의미 없는 문자로 바꾸고 실행 흐름을 꼬아 사람이 로직을 파악하기 매우 어렵게 만듭니다.

minify vs 난독화
구분minify(압축)난독화(obfuscation)
목적파일 크기 축소코드 분석·역공학 방해
이름 변경안 함(식별자 보존)무의미한 이름으로 치환
가독성낮아지지만 복원 가능의도적으로 매우 낮춤
실행 동작그대로 유지그대로 유지
주 용도웹 성능 최적화지식재산·코드 보호

이 도구는 '압축'이며 '난독화'가 아닙니다

이 도구는 주석과 공백만 제거하는 간이 minify로, 변수·함수 이름을 바꾸거나 코드를 숨기지 않습니다. 따라서 압축 결과에서도 원래 이름과 구조는 그대로 보입니다. 코드를 감추는 것이 목적이라면 별도의 난독화 도구가 필요합니다.

간이 압축과 전문 빌드 도구의 차이

이 도구는 브라우저에서 바로 쓰는 가벼운 minify로, 주석·공백 제거 수준의 기본 압축을 제공합니다. 코드 한두 조각을 빠르게 줄이거나 압축 원리를 확인할 때 편리합니다. 반면 실제 서비스의 배포 파이프라인에서는 전용 빌드 도구를 쓰는 것이 안전하고 효과도 큽니다.

  • 이 도구(간이): 붙여넣기만 하면 즉시 압축. 주석·공백만 제거하며 문법을 깊이 분석하지 않습니다. 복잡한 정규식·템플릿 리터럴 등 특수한 코드는 손상될 수 있으니 결과를 반드시 확인하세요.
  • 전문 도구(Terser·esbuild·SWC 등 JS, cssnano·Lightning CSS 등 CSS): 코드를 문법 단위로 분석해 변수명 단축, 죽은 코드 제거, 안전한 구조 변형까지 수행해 압축률이 훨씬 높습니다.
  • 권장 사용법: 원본 소스는 그대로 유지하고, 배포 시점에 빌드 도구가 자동으로 압축본을 생성하도록 구성하는 것이 정석입니다.

결과는 꼭 검증하세요

간이 압축은 코드를 문법적으로 완전히 이해하지 못하므로, 드물게 예상과 다른 결과가 나올 수 있습니다. 압축 후 코드가 정상 동작하는지 실제 환경에서 확인하고, 원본 파일은 반드시 별도로 보관하세요.

자주 묻는 질문

압축하면 코드 동작이 바뀌나요?
아닙니다. minify는 실행에 필요 없는 주석과 공백만 제거하므로, 압축 전과 후의 코드는 브라우저에서 똑같이 동작합니다. 사람이 읽기 어려워질 뿐 기능은 그대로입니다. 다만 간이 압축의 특성상 특수한 코드에서 드물게 문제가 생길 수 있으니 결과는 확인하는 것이 좋습니다.
어떤 언어를 압축할 수 있나요?
이 도구는 CSS와 JS(자바스크립트) 두 가지를 지원합니다. 상단 탭에서 언어를 고른 뒤 코드를 붙여넣으면 됩니다. HTML이나 다른 언어는 지원하지 않으며, 각 언어의 주석·공백 규칙에 맞춰 처리합니다.
정확히 무엇이 제거되나요?
CSS에서는 /* */ 블록 주석과 줄바꿈·들여쓰기, 중괄호·콜론·세미콜론 같은 기호 주변의 불필요한 공백이 제거됩니다. JS에서는 /* */ 블록 주석과 // 라인 주석, 그리고 줄 앞뒤 공백·빈 줄이 제거됩니다. 변수·함수 이름, 문자열 값, 실행에 필요한 문법 기호는 모두 보존됩니다.
압축된 코드를 다시 원래대로 되돌릴 수 있나요?
주석과 공백은 삭제되므로 완전히 똑같은 원본으로 자동 복원할 수는 없습니다. 다만 이 도구는 변수·함수 이름을 바꾸지 않기 때문에 구조 자체는 남아 있어, 코드 포매터(prettier 등)로 들여쓰기를 다시 넣으면 읽기 좋은 형태로 정리할 수 있습니다. 그래도 원본 소스는 항상 따로 보관하는 것이 안전합니다.
minify와 gzip은 뭐가 다른가요?
minify는 코드 자체에서 문자를 지워 파일을 작게 만드는 것이고, gzip·brotli는 서버가 파일을 전송할 때 적용하는 압축입니다. 둘은 서로 대체가 아니라 보완 관계라, minify로 문자를 줄인 파일에 전송 압축까지 적용하면 최종 전송량이 더 작아집니다.
실제 서비스 배포에도 이 도구를 써도 되나요?
간단한 코드 조각을 빠르게 줄이는 용도로는 좋지만, 규모 있는 서비스라면 Terser·esbuild·SWC(JS)나 cssnano·Lightning CSS(CSS) 같은 빌드 도구로 배포 과정에서 자동 압축하는 것을 권장합니다. 전문 도구는 문법을 분석해 더 높은 압축률과 안정성을 제공합니다. 이 도구로 압축했다면 배포 전 실제 동작을 반드시 확인하세요.

관련 도구