v1.0.2 업데이트
주요 변경
- 최신 php 문법으로 개선
- 최신 Rhymix 문법으로 개선
- 기타 안정성
주요 특징
- files 테이블에 첨부하는 이미지 파일을 압축 합니다.
- 압축 대상: jpg(jpeg), png, gif, svg, webp
- 효과: 운영중인 사이트에 첨부된 이미지 파일을 압축하여 약 5.5GB SSD 용량을 확보함.
(direct_download=Y 조건의 첨부 파일이 약 57,000건 첨부되어 있음)
매뉴얼
관심이 있으시다면: https://elkha.kr/rx/downloads/157
코어에서 지원하지 않는 부분을 적절하게 채워 주는 좋은 자료로군요.
코어 개발자 입장에서 몇 가지 피드백을 드립니다. 비판이 아니라 더 유용한 자료가 되었으면 하는 마음에서 드리는 말씀이니, 님이 생각하고 계신 이 자료의 방향성과 맞지 않는다면 반영하지 않으셔도 무방합니다.
1. MyISAM/InnoDB 테이블 타입은 라이믹스/XE 설치시 사용자가 선택하거나 자동으로 선택되고, 선택한 타입이 설정 파일에 기록됩니다. 라이믹스/XE 기반으로 동작하는 모듈이라면 이 설정을 따르는 것을 추천합니다. 만약 로그 테이블에만 특정 타입을 선택해야 할 필요가 있다 하더라도, 현재 선택된 기본값을 알려주면 좋을 것 같습니다.
2. 실제 이미지 압축은 내부적으로 HTTP 요청을 해서 처리하고 있는데, 비동기식으로 처리하는 것도 아니면서 굳이 별도의 요청을 하는 것은 비효율적으로 보입니다. 시간은 똑같이 걸리고, 서버 프로세스를 하나 더 잡아먹을 뿐이지요. exec.php에 파일명을 넘기고 외부에서 임의로 호출하지 못하도록 막는 과정에서 보안취약점이 발생할 가능성도 배제할 수 없고요. 라이믹스 모듈의 컨트롤러 파일에서도 얼마든지 자체적으로 vendor/autoload.php를 인클루드하고 외부 라이브러리를 끌어와서 작업할 수 있으므로, 이 과정을 별도의 파일로 분리할 필요가 없습니다.
3. 실제 적용사례에서 5.5GB의 용량이 절약되었다고 하셨는데, 원본 파일의 갯수만 언급하시고 원본의 총 용량을 알 수 없어서 그게 몇%나 절약된 건지 체감이 되지 않네요. 대부분의 이미지 포맷은 화질 설정을 조금만 바꿔도 수십%가 오락가락하기 때문에, 객관적인 비교 기준이 있으면 좋겠습니다. 화질을 그대로 유지하면서 용량만 줄여 준다는 것인지, 아니면 일정 수준의 화질로 자동 조정된다는 것인지...