ToolDeck

CSS Minifier

공백과 주석을 제거하여 CSS 압축

예시 시도

CSS 입력

압축된 CSS

로컬에서 실행 · 시크릿 붙여넣기 안전
압축된 CSS가 여기에 표시됩니다…
이것도 써보세요:CSS FormatterCSS 단위 변환기

CSS 미니피케이션이란?

CSS 미니피케이션은 스타일시트의 동작을 변경하지 않으면서 불필요한 모든 문자를 제거하는 과정입니다. 공백, 줄바꿈, 주석, 후행 세미콜론과 불필요한 따옴표 같은 중복 문법을 제거합니다. 브라우저는 미니파이된 CSS와 원본 CSS를 동일하게 파싱합니다. W3C CSS Syntax Module은 문법을 정의하며, 토큰 사이의 공백은 식별자를 구분하는 경우를 제외하고 선택 사항입니다. 미니피케이션은 이를 활용하여 최소한의 필수 문자만 남깁니다.

온라인 CSS 미니파이어는 서식이 있는 스타일시트를 받아 전송 크기에 최적화된 압축 버전을 생성합니다. 일반적인 절감 효과는 소스의 공백과 주석 양에 따라 15%~40%입니다. 50KB 스타일시트를 기준으로 하면 페이지 로드마다 네트워크 전송 데이터가 7~20KB 줄어듭니다. 서버의 gzip 또는 Brotli 압축과 함께 사용하면 최종 전송 크기가 더욱 줄어듭니다. 이미 미니파이된 CSS를 압축하면 서식 있는 원본을 압축하는 것보다 더 작은 결과를 얻을 수 있습니다.

미니피케이션은 프론트엔드 빌드 파이프라인의 표준 단계입니다. cssnano, clean-css, esbuild 같은 도구는 빌드 과정에서 미니피케이션을 실행합니다. 그러나 개발 중에는 단일 스니펫을 테스트용으로 미니파이하거나, 중요 CSS 블록을 인라인으로 삽입하거나, 번들 설정에 추가하기 전에 스타일시트 크기를 확인해야 할 때가 있습니다. 이때 브라우저 기반 CSS 미니파이어가 유용합니다. CSS를 붙여넣고 미니파이된 결과를 얻어 복사하면 됩니다.

Before · css
After · css
/* Main navigation styles */
.nav {
  display: flex;
  align-items: center;
  padding: 1rem 2rem;
  background-color: #1e293b;
}

/* Links inside nav */
.nav a {
  color: #e2e8f0;
  text-decoration: none;
  margin-right: 1.5rem;
  transition: color 0.2s ease;
}

.nav a:hover {
  color: #818cf8;
}
.nav{display:flex;align-items:center;padding:1rem 2rem;background-color:#1e293b}.nav a{color:#e2e8f0;text-decoration:none;margin-right:1.5rem;transition:color .2s ease}.nav a:hover{color:#818cf8}

이 CSS 미니파이어를 사용하는 이유

어떤 CSS든 붙여넣으면 수 밀리초 안에 압축된 결과를 얻을 수 있습니다. 빌드 도구 설정, CLI 명령, 계정 생성이 필요 없습니다.

즉시 압축
입력하거나 붙여넣는 즉시 결과가 업데이트됩니다. 빌드 단계를 기다릴 필요 없이 압축된 결과와 절감된 바이트 크기를 바로 확인할 수 있습니다.
🔒
개인정보 보호 우선 처리
모든 미니피케이션은 JavaScript를 사용하여 브라우저에서 로컬로 실행됩니다. CSS는 기기 밖으로 나가지 않으며 어떤 서버에도 전송되지 않습니다.
📦
정확한 크기 보고
원본 크기, 압축된 크기, 감소 비율을 나란히 확인할 수 있습니다. 빌드 파이프라인 변경을 결정하기 전에 성능 향상 효과를 추정하는 데 유용합니다.
📋
로그인 불필요
페이지를 열고, CSS를 붙여넣고, 결과를 복사하면 됩니다. 회원가입, 요청 횟수 제한, 기능 제한이 없습니다. 매번 방문할 때마다 전체 기능을 사용할 수 있습니다.

CSS 미니파이어 활용 사례

프론트엔드 성능 최적화
HTML head 요소에 인라인으로 삽입하기 전에 중요 CSS를 미니파이하세요. 인라인 CSS가 작을수록 특히 모바일 연결에서 First Contentful Paint가 빨라집니다.
백엔드 이메일 템플릿
이메일 클라이언트는 외부 스타일시트를 무시하고 엄격한 크기 제한이 있습니다. 인라인 CSS를 미니파이하여 이메일 HTML이 클리핑 임계값(Gmail 기준 102KB)을 넘지 않도록 하세요.
DevOps 및 빌드 검증
빌드 도구의 미니파이 결과와 이 도구의 결과를 비교하여 cssnano 또는 clean-css가 올바르게 설정되어 최적의 결과를 내는지 검증하세요.
QA 크기 예산 관리
벤더 스타일시트를 붙여넣어 미니파이된 크기가 성능 예산에 맞는지 확인하세요. 프로젝트에 추가하기 전에 트리 쉐이킹이나 교체가 필요한지 판단할 수 있습니다.
데이터 엔지니어링 및 웹 스크래핑
크롤링한 페이지에서 CSS를 추출할 때, 비교나 저장 전에 미니파이하여 소스 간 공백 차이를 정규화하세요.
CSS 최적화 학습
학습자는 CSS를 붙여넣어 미니파이어가 어떤 문자를 제거하는지 정확히 확인할 수 있습니다. 입력과 출력을 비교하면 CSS 문법에서 브라우저에 의미 있는 부분과 순전히 형식적인 부분이 어떻게 다른지 배울 수 있습니다.

CSS 미니피케이션 기법

CSS 미니파이어는 파일 크기를 줄이기 위해 여러 변환을 적용합니다. 각 기법은 소스의 서로 다른 유형의 중복을 대상으로 합니다. 아래 표는 주요 기법과 서식 있는 스타일시트에서의 일반적인 절감 효과를 보여줍니다.

기법수행 내용일반적인 절감 효과
Whitespace removalStrips spaces, tabs, and newlines between tokens15–25%
Comment strippingRemoves /* ... */ block comments5–15%
Zero shortening0px → 0, 0.5 → .51–3%
Shorthand colors#ffffff → #fff, #aabbcc → #abc1–2%
Semicolon removalDrops the last semicolon before }<1%
Quote removalfont-family: "Arial" → font-family: Arial<1%

절감 비율은 입력에 따라 다릅니다. 주석이 많은 파일은 주석 제거의 효과가 크고, 이미 압축된 파일은 절감 효과가 작습니다. 가장 안정적인 효과는 공백 제거와 단축 속성 최적화에서 나옵니다. cssnano 같은 고급 미니파이어는 중복 선택자 병합, 롱핸드 속성을 단축 속성으로 축소(margin-top + margin-right + margin-bottom + margin-left를 margin으로), 재정의된 선언 제거도 수행합니다.

미니피케이션 vs. gzip 압축

미니피케이션과 압축은 상호 대체 관계가 아니라 보완 관계입니다. 서로 다른 레이어에서 동작하며 함께 적용할 수 있습니다.

CSS 미니피케이션 (이 도구)
CSS 문법 레벨에서 동작합니다. 공백, 주석을 제거하고 단축 속성 값을 재작성합니다. 빌드 시 한 번 실행됩니다. 결과물은 브라우저가 직접 파싱하는 유효한 CSS입니다. 일반적인 감소율: 원본 파일 크기의 15~40%.
gzip / Brotli 압축
범용 압축 알고리즘을 사용하여 바이트 레벨에서 동작합니다. 웹 서버가 모든 응답에 적용하거나 배포 시 미리 압축합니다. 모든 파일 형식에 적용됩니다. 일반적인 감소율: 미니파이된 크기의 60~80%. 두 가지를 함께 사용하면 최소한의 전송 크기를 달성할 수 있습니다.

코드 예제

다양한 언어와 환경에서 CSS를 프로그래밍 방식으로 미니파이하는 방법입니다.

JavaScript (cssnano + PostCSS)
import postcss from 'postcss'
import cssnano from 'cssnano'

const input = `
.nav {
  display: flex;
  padding: 0px 1rem;
  color: #ffffff;
  /* TODO: update color */
}
`

const result = await postcss([cssnano]).process(input, { from: undefined })
console.log(result.css)
// → ".nav{display:flex;padding:0 1rem;color:#fff}"
Python (csscompressor)
import csscompressor

css = """
.nav {
  display: flex;
  padding: 0px 1rem;
  color: #ffffff;
  /* navigation styles */
}
"""

minified = csscompressor.compress(css)
print(minified)
# → ".nav{display:flex;padding:0 1rem;color:#fff}"
Go (tdewolff/minify)
package main

import (
	"fmt"
	"github.com/tdewolff/minify/v2"
	"github.com/tdewolff/minify/v2/css"
)

func main() {
	m := minify.New()
	m.AddFunc("text/css", css.Minify)

	input := ".nav { display: flex; padding: 0px 1rem; color: #ffffff; }"
	output, _ := m.String("text/css", input)
	fmt.Println(output)
	// → ".nav{display:flex;padding:0 1rem;color:#fff}"
}
CLI (cssnano / clean-css)
# Using cssnano via PostCSS CLI
npx postcss styles.css --use cssnano -o styles.min.css

# Using clean-css CLI
npx clean-css-cli styles.css -o styles.min.css

# Quick one-liner with Node.js
node -e "const CleanCSS=require('clean-css');console.log(new CleanCSS().minify('body { margin: 0px; }').styles)"
# → "body{margin:0}"

자주 묻는 질문

CSS 미니피케이션과 CSS 압축의 차이는 무엇인가요?
미니피케이션은 동일한 동작을 유지하면서 불필요한 문자(공백, 주석, 중복 문법)를 제거하여 CSS 소스 코드를 다시 작성합니다. 압축(gzip, Brotli)은 전송 레이어에서 파일의 바이트를 더 압축된 바이너리 형식으로 인코딩합니다. 미니피케이션은 디스크의 CSS 파일 크기를 줄이고, 압축은 HTTP로 전송되는 바이트를 줄입니다. 모범 사례는 둘 다 적용하는 것입니다. 먼저 미니파이한 다음 서버가 미니파이된 결과를 압축하게 하세요.
CSS를 미니파이하면 문제가 생기나요?
표준 미니피케이션은 CSS 동작을 보존합니다. content 속성과 같은 문자열 값 내부의 공백은 모든 주요 미니파이어가 보존합니다. 그러나 선택자 병합이나 속성 재정렬 같은 공격적인 최적화는 특이성이나 재정의 순서를 변경할 수 있습니다. cssnano의 기본 프리셋을 사용하면 이러한 위험한 변환은 비활성화됩니다. 이 도구는 안전한 미니피케이션만 수행합니다. 공백 제거, 주석 제거, 단축 속성 최적화가 해당됩니다.
미니피케이션 후 CSS 크기는 얼마나 줄어드나요?
일반적인 감소율은 원본 서식 파일 크기의 15~40%입니다. 공백이 많고 주석이 풍부한 파일은 범위의 상한에 가깝습니다. 주석 없이 이미 간결하게 작성된 CSS는 10~15%만 줄어들 수 있습니다. 정확한 절감 효과는 코딩 스타일, 주석 밀도, 단축 속성으로 축소 가능한 롱핸드 속성 사용 여부에 따라 달라집니다.
CSS를 수동으로 미니파이해야 하나요, 아니면 빌드 도구를 사용해야 하나요?
프로덕션 빌드에는 항상 빌드 도구를 사용하세요(cssnano를 사용하는 PostCSS, esbuild, 또는 webpack의 css-minimizer-webpack-plugin). 자동화된 미니피케이션은 매번 빌드 시 실행되어 모든 파일을 처리합니다. 브라우저 기반 미니파이어는 일회성 작업에 유용합니다. 중요 CSS 스니펫 인라인 삽입, 벤더 스타일시트의 미니파이 크기 확인, 공유 전 빠른 프로토타입 미니파이 등이 해당됩니다.
이 도구로 SCSS나 LESS를 미니파이할 수 있나요?
이 도구는 표준 CSS를 미니파이합니다. SCSS와 LESS는 CSS로 컴파일되는 전처리기 언어입니다. SCSS나 LESS를 먼저 CSS로 컴파일(sass 또는 lessc 사용)한 다음 컴파일된 결과를 붙여넣으세요. 원시 SCSS 문법을 미니파이하면 컴파일 동작을 제어하는 주석(예: //! 보존 주석이나 @use 애노테이션)이 제거될 수 있습니다.
미니파이된 CSS는 디버깅하기 어려운가요?
네, 미니파이된 CSS는 서식 없이 한 줄로 작성되어 DevTools에서 읽기 어렵습니다. 표준 해결책은 소스 맵입니다. PostCSS와 esbuild 같은 빌드 도구는 .map 파일을 생성하여 브라우저가 미니파이된 버전을 로드하는 동안 DevTools에서 원본 서식 소스를 표시할 수 있게 합니다. 소스 맵 없이 프로덕션 디버깅을 할 경우 미니파이된 CSS를 CSS 포매터에 붙여넣어 가독성을 복원하세요.
CSS 미니파이어와 CSS 압축기의 차이는 무엇인가요?
일반적인 사용에서 두 용어는 같은 의미입니다. 둘 다 파일 크기를 줄이기 위해 CSS에서 불필요한 문자를 제거하는 것을 의미합니다. 일부 도구는 이름에 '압축기'를 사용하지만(예: Python의 csscompressor) 표준 미니피케이션을 수행합니다. '압축'은 서버 레벨의 별도 처리인 gzip/Brotli 인코딩을 의미하기도 합니다. 'CSS 압축기'를 보면 거의 항상 gzip이 아닌 미니피케이션을 의미합니다.