리눅스로 웹서버를 운영하다 보면 다량의 이미지 파일을 업로드하게 되어 대부분의 트래픽을 차지하게 됩니다. 각 CMS 마다 이미지 퀄리티를 조절하는 플러그인이 존재하는데 워드프레스 같은 경우에는 ewww image optimizer나 wp smush it 같은 플러그인으로 이미지 파일을 압축해서 트래픽을 절감할 수 있는데요.
CMS상에서 구동되는 플러그인은 PHP 연산을 거쳐 처리되고 플러그인 속도에 차등을 두고 유료로 유도하는 경우도 있어 동작 속도가 느립니다. 더군다나 이미지 파일이 몇천개나 될 경우에는 몇시간이나 걸리게 되죠.
만일 블로그나 사이트를 운영하면서 웹서버 관리자라면 웹에서 구동되는 프로그램 말고 리눅스 상에서 빠르게 jpg 이미지를 압축할 수 있습니다.
목차
jpegoptim 설치
# apt-get install jpegoptim // 데비안&우분투 # yum install epel-release // Centos # dnf install epel-release // 페도라 22 이상
jpg 이미지를 압축하기 위해 jpegoptim를 설치합니다.
사용 방법
# jpegoptim 파일명.jpg # jpegoptim -옵션 파일명.jpg
기본 syntax는 다음과 같습니다. 하지만 파일을 하나하나 압축하지는 않기 때문에 필자는 다음과 같은 명령어로 웹서버 폴더 전체 이미지를 압축했습니다.
# find ./* -name '*.jpg' -exec jpegoptim {} \;
리눅스를 잘 사용하시는 분들은 잘 활용하실 테지만, 초보자를 위해 예시를 들어 봤습니다. 웹에 퍼블리싱되는 루트 폴더로 이동한 다음 위 명령어로 디렉토리 하위 모든 jpg 파일을 압축합니다.
보통 8~10%정도의 이미지 압축률을 보이고 처리 속도 또한 플러그인과는 비교할 바가 안되기 때문에 5000개 정도의 이미지를 압축하는데 20분이 채 걸리지 않았습니다. 물론 서버 사양에 따라 다르겠지만요.
아쉬운 점을 굳이 들자면 jpegoptim는 싱글코어로 작동합니다. 4코어에서 CPU 사용률이 20% 전후에서 왔다갔다 하네요.
# man jpegoptim # jpegoptim --help
좀더 자세한 jpegoptim 옵션을 보고 싶다면 위 명령어로 옵션을 찾아 활용해 보세요.