v1.0.1 업데이트
주요 변경
- 개선: proc_open 함수 가능하고 ip.txt 파일을 작성하지 않았다면 curl 없이 proc_open 사용함.
기존: ip.txt 파일 유무에 관계없이 항상 curl 처리하여 php-fpm 띄우는 비효율. - 변경: myisam, innodb 둘 중에 db 설정된 type 만 create table 쿼리 버튼을 표시함.
기존: myisam, innodb 선택권으로 초보(?)에게 혼동을 줄 수 있음.
기타 변경
- 개선: ip.txt 파일을 작성하지 않았다면 관리자 화면에 config 항목이 불필요하므로 비활성화
요약
- 성능과 보안이 조금 나아졌고 매뉴얼도 조금 친절해 졌습니다.
주요 특징
- files 테이블에 첨부하는 이미지 파일을 압축 합니다.
- 압축 대상: jpg(jpeg), png, gif, svg, webp
- 효과: 운영중인 사이트에 첨부된 이미지 파일을 압축하여 약 5.5GB SSD 용량을 확보함.
(direct_download=Y 조건의 첨부 파일이 약 57,000건 첨부되어 있음)
작동 방식
- optimize old images: 이미 첨부된 과거 파일을 대상 (수동)
- insert trigger (require): 첨부하는 신규 파일을 대상 (자동)
이미지인 파일이 첨부 완료되면 압축을 실행합니다.
압축에 성공하면 덮어씌우고 용량을 기록, 압축에 실패했다면 건너뜁니다.
설치 요구조건
- Rhymix (XE 배제하진 않았으나 테스트하지 않았음)
- 다음 명령어를 실행 가능해야 합니다: (일반 웹 호스팅 사용 불가!)
composer install (modules/imgopt 경로에서 실행, 설치 링크)- Ubuntu
sudo apt-get install jpegoptim optipng pngquant gifsicle webp
sudo npm install -g svgo - Fedora/RHEL/CentOS
sudo dnf install epel-release
sudo dnf install jpegoptim optipng pngquant gifsicle libwebp-tools
sudo npm install -g svgo - MacOS
brew install jpegoptim optipng pngquant gifsicle webp
npm install -g svgo
- Ubuntu
라이센스
- GPL v2
- https://github.com/spatie/image-optimizer - The MIT License (MIT). Please see License File for more information.
매뉴얼
관심이 있으시다면: https://tradia.me/diablo2/rhymix/12111732
코어에서 지원하지 않는 부분을 적절하게 채워 주는 좋은 자료로군요.
코어 개발자 입장에서 몇 가지 피드백을 드립니다. 비판이 아니라 더 유용한 자료가 되었으면 하는 마음에서 드리는 말씀이니, 님이 생각하고 계신 이 자료의 방향성과 맞지 않는다면 반영하지 않으셔도 무방합니다.
1. MyISAM/InnoDB 테이블 타입은 라이믹스/XE 설치시 사용자가 선택하거나 자동으로 선택되고, 선택한 타입이 설정 파일에 기록됩니다. 라이믹스/XE 기반으로 동작하는 모듈이라면 이 설정을 따르는 것을 추천합니다. 만약 로그 테이블에만 특정 타입을 선택해야 할 필요가 있다 하더라도, 현재 선택된 기본값을 알려주면 좋을 것 같습니다.
2. 실제 이미지 압축은 내부적으로 HTTP 요청을 해서 처리하고 있는데, 비동기식으로 처리하는 것도 아니면서 굳이 별도의 요청을 하는 것은 비효율적으로 보입니다. 시간은 똑같이 걸리고, 서버 프로세스를 하나 더 잡아먹을 뿐이지요. exec.php에 파일명을 넘기고 외부에서 임의로 호출하지 못하도록 막는 과정에서 보안취약점이 발생할 가능성도 배제할 수 없고요. 라이믹스 모듈의 컨트롤러 파일에서도 얼마든지 자체적으로 vendor/autoload.php를 인클루드하고 외부 라이브러리를 끌어와서 작업할 수 있으므로, 이 과정을 별도의 파일로 분리할 필요가 없습니다.
3. 실제 적용사례에서 5.5GB의 용량이 절약되었다고 하셨는데, 원본 파일의 갯수만 언급하시고 원본의 총 용량을 알 수 없어서 그게 몇%나 절약된 건지 체감이 되지 않네요. 대부분의 이미지 포맷은 화질 설정을 조금만 바꿔도 수십%가 오락가락하기 때문에, 객관적인 비교 기준이 있으면 좋겠습니다. 화질을 그대로 유지하면서 용량만 줄여 준다는 것인지, 아니면 일정 수준의 화질로 자동 조정된다는 것인지...