웹 개발에서 CSS(Cascading Style Sheets) 파일을 축소(minification)하는 것은 오랫동안 최적화의 필수 단계로 여겨져 왔습니다. 하지만 최근 연구에 따르면, 단순히 공백과 주석을 제거하는 수준의 CSS 축소는 실제 웹 성능 향상에 거의 기여하지 않으며, 오히려 코드 가독성을 떨어뜨리는 불필요한 과정일 수 있다는 주장이 제기되었습니다.
이 분석은 대규모 CSS 라이브러리인 부트스트랩(Bootstrap)을 예로 들어 설명합니다. 원본 147KB의 부트스트랩 CSS 파일은 gzip 압축만으로 22KB까지 줄어듭니다. 여기에 축소를 적용한 후 gzip 압축을 해도 20KB로, 축소로 인한 추가 절감 효과는 단 2KB에 불과합니다. 또한, 무작위 공백을 포함한 CSS 파일을 대상으로 한 파싱(parsing) 실험에서도 10,000개 선언 블록은 9~10ms, 100,000개 블록은 95~105ms에 파싱되었으며, 현실적인 1,000개 규모에서는 공백 유무에 따른 차이를 측정하기 어려울 정도로 빨랐습니다. 저사양 기기와 느린 연결 환경에서의 웹페이지 테스트(WebPageTest) 결과 역시 축소 여부에 따른 최대 차이가 1,000개 블록에서 54ms에 불과했고, 더 큰 스타일시트에서는 오히려 차이가 줄어드는 경향을 보였습니다.
이는 CSS 축소가 다운로드 크기나 파싱 시간에 미치는 영향이 대부분의 웹사이트에서는 사용자가 체감하기 어려울 정도로 미미하다는 것을 의미합니다. 특히 gzip이나 Brotli와 같은 효과적인 전송 압축 기술이 보편화된 현재, 단순히 공백과 주석을 제거하는 축소 작업은 그 이점보다 코드 가독성 저하라는 단점이 더 클 수 있습니다. 물론 밀리초 단위의 성능 개선이 막대한 수익으로 직결되는 초대형 서비스나 극도로 제약된 임베디드 환경에서는 여전히 의미가 있을 수 있지만, 대부분의 일반적인 웹사이트에는 과도한 최적화일 수 있다는 결론입니다.
결론적으로, CSS 축소는 성능 이점이 거의 없는 대신 코드를 난독화하며, 브라우저에 코드 정리 기능이 있어 별도 처리 단계를 둘 필요도 없다는 시각이 힘을 얻고 있습니다. 따라서 스타일시트의 신호 대 잡음비가 극단적으로 낮고 밀리초마다 막대한 수익이 걸린 대기업이 아니라면, gzip 또는 Brotli 압축만으로도 충분하며, 코드 가독성을 유지하는 것이 개발 및 유지보수 측면에서 더 효율적일 수 있습니다. 이는 웹 개발자들이 최적화 전략을 수립할 때, 실제 효과가 미미한 작업에 리소스를 낭비하기보다 사용자 경험에 더 큰 영향을 미치는 요소에 집중해야 함을 시사합니다.