구글 검색 결과는 페이지 랭크에 따라 앞쪽에 등장하는데, 이 페이지 랭크에 페이지 로딩 속도가 관여한다는 소식을 접했습니다. 제 다른 사이트는 정적 사이트임에도 그다지 좋은 속도가 안 나오네요. 그래서 속도 늘리기 대책 겸 웹 리소스 압축에 대해 찾아본 결과를 정리해 봤습니다.
HTML 압축하기
HTML 압축하기는 HTMLMinifier를 사용할 수 있습니다. 아래 커맨드로 쉽게 설치할 수 있습니다.
npm i -g html-minifier
사용 방법은 옵션이 길어서 좀 귀찮을 수 있습니다.
html-minifier --collapse-whitespace \
--remove-comments \
--remove-redundant-attributes \
--remove-tag-whitespace \
--minify-css true \
--minify-js true \
-o output.html input.html
위 명령은 input.html 파일을 압축해서 output.html로 압축해주는 명령의 예제입니다. 자주 사용할 것 같다면 alias 같은 것으로 만들어둬도 될 것 같습니다.
위의 스크린숏은 제 다른 사이트의 index를 위 커맨드로 압축해 본 것인데 그다지 효과가 좋지는 않네요. 아마도 원본에 들여쓰기가 거의 없어서 그다지 드라마틱한 결과가 안 나오는 것 같습니다.
물론 옵션에 따라 달라질 수도 있으니 매뉴얼을 잘 읽어봅시다.
CSS 압축하기
CSS 압축은 개인적으로 CSSO가 커맨드라인 도구를 제공해서 가장 쉽게 쓸 수 있었습니다.
아래 커맨드로 설치할 수 있습니다.
npm i -g csso-cli
사용 방법도 간단합니다.
csso input.css --output output.css
위 명령은 input.css 파일을 output.css 로 압축해 줍니다.
css 압축은 제법 효과를 본 것 같습니다. HTML 파일에 비해 공통적으로 사용되기 때문에 조금만 줄여도 효과를 많이 볼 것 같습니다.
Javascript 압축하기
자바스크립트 압축은 UglifyJS를 사용해 봤습니다.
아래 커맨드로 설치할 수 있습니다.
npm i -g uglify-js
다행히도 이 도구도 사용 방법은 어렵지 않았습니다.
uglifyjs -c -m -o output.js input.js
위 명령은 input.js 파일을 output.js 파일로 압축하는 예제입니다.
자바스크립트 압축 테스트는 유명한 jquery 무압축본을 이용해 봤습니다. 엄청난 결과가 나오네요.
관련 링크
'기술적인 이야기 > 웹 개발' 카테고리의 다른 글
Electron에서 iframe 사용하기(?) (264) | 2022.01.23 |
---|---|
Electron + Svelte로 데스크톱 앱 개발 시작해보기 (382) | 2022.01.16 |
비동기 웹 서버 C 구현체 httpserver.h (0) | 2019.12.17 |
연산자(Operators) | JS & ES6 공부 노트 #6 (275) | 2019.08.21 |
electron-vue에서 process를 못 찾는 문제 (242) | 2019.08.03 |
댓글