Skip to content

rhymix

RXE 이미지 압축

조회 수 208 추천 수 0

주요 특징

  • files 테이블에 첨부하는 이미지 파일을 압축 합니다.
  • 압축 대상: jpg(jpeg), png, gif, svg, webp
  • 효과: 본 사이트에 첨부된 이미지 파일을 압축하여 약 5.5GB SSD 용량을 확보함.
    (direct_download=Y 조건의 첨부 파일이 약 57,000건 첨부되어 있음)

작동 방식

  1. optimize old images: 이미 첨부된 과거 파일을 대상 (수동)
  2. insert trigger (require): 첨부하는 신규 파일을 대상 (자동)
    이미지인 파일이 첨부 완료되면 압축을 실행합니다.
    압축에 성공하면 덮어씌우고 용량을 기록, 압축에 실패했다면 건너뜁니다.

설치 요구조건

  • Rhymix (XE 배제하진 않았으나 테스트하지 않았음)
  • 다음 명령어를 실행 가능해야 합니다: (일반 웹 호스팅 사용 불가!)
    composer install
    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

매뉴얼 (=관리자 화면)

imgopt manual

캡쳐에 나온 순서대로 서술하겠습니다.

  1. test optimize: 님의 서버에서 이미지 압축이 작동하는지 테스트 합니다.
  2. optimize old images: 이미 첨부된 과거 파일을 압축합니다.
    숫자 값을 20, endless loop 체크해서 optimize 버튼을 누르면 최근 첨부된 이미지를 시작으로 20개 단위로 압축합니다.
    중간에 오류가 나거나 브라우저 탭을 껐다면 다시 endless loop 체크해서 실행하면 됩니다.
  3. insert trigger: 새로 첨부되는 이미지 파일이 압축됩니다.
  4. logs
    • optimize old images: 의해 절약된 용량
    • by trigger (file.insertFile): 의해 절약된 용량
    • bi widget (or test optimize): 추가 기능 개발하다가 의미 없게됨.
  5. create table
    • 압축 결과를 DB 에 기록합니다.
    • 통계가 필요없다면 테이블을 생성하지 않아도 됩니다.
    • InnoDB, MyISAM 둘 중 하나를 선택할 수 있습니다.
      파일 업로드가 빈번하면 InnoDB 형식을 추천합니다.
      참고로 이 사이트에는 MyISAM 선택 했습니다.
  6. config (optional)
    disable_functions 옵션으로 php-fpm 에서 proc_open 등의 명령어를 제한할 경우 이 옵션이 필요합니다.
    curl 받는 내부 아이피를 ip.txt 파일을 생성 및 작성합니다. (ip.sample.txt 참조)

라이센스

  • GPL v2
  • https://github.com/spatie/image-optimizer - The MIT License (MIT). Please see License File for more information.
트디개발자
등록된 소개글이 없습니다.
  • 도그마 2023.05.29 17:34
    안녕하세요 설치 문의 드립니다
    설치 요구 조건에서 다음 명령어 실행 부분이 잘 이해가 가질 않는데
    참고할 만한 것이 있을까요? 초보라서 최대한 찾아보면서 하고 있는데 생각보다 복잡하네요 ㅠㅠ
  • 트디개발자 2023.05.30 00:32
    어느 단계에서 막히는지 알려주시겠어요?
  • 도그마 2023.05.30 13:31
    fastcomet 터미널에서 https://getcomposer.org/download/
    위 링크를 참고하여 컴포저 설치를 했는데요 이후 이미지 압축 테스트를 하면 실패했다고 뜹니다
  • 트디개발자 2023.05.30 23:29
    1. 사용중이신 호스팅 상품명이나 링크를 알려주셔야 적용 가능 여부를 파악할 수 있습니다.
    2. composer install 이후 님의 운영체제에 맞는 라이브러리 (jpegoptim optipng pngquant gifsicle webp 등) 설치가 필요합니다. 본문에 기재되어 있듯이 일반 웹 호스팅은 권한이 없으므로 설치가 불가능합니다.
  • 도그마 2023.05.31 17:12
    https://my.fastcomet.com/cart.php
    플러스 상품 사용 중 입니다
    호스팅에 따라 적용이 안될수도 있나보군요...ㅠㅠ
  • 트디개발자 2023.05.31 20:33
    해당 상품은 sudo 권한이 없어서 관련 설치가 안 될 확률이 높습니다.
  • 도그마 2023.06.01 13:19
    답변 감사합니다 나중에 다시 시도해봐야겠네요 ㅠㅠ

rhymix

번호 제목 글쓴이 최근 수정일 조회
공지 마이로그 - 매뉴얼 트디개발자 2024.04.24 367
공지 게시판 푸시 알림 / 통합 앱 서비스 33 file 트디개발자 2025.10.10 917.6k
> RXE 이미지 압축 7 file 트디개발자 2023.06.01 208
공지 라이믹스 실시간 호스팅 [부제: RXE 채팅 솔루션] 2 file 트디개발자 2023.06.22 433
47 소켓 서버 관련 문의 드립니다. 4 ICT 2025.02.11 35
46 채팅방을 다크모드로 만들고싶은데 혹시 어디를 수정하면 될까요? 8 닥똥컴퓨터 2025.02.09 100
45 너무 잘쓰고 있습니다 ^_^ 한가지 문의드립니다. 1 레티아스 2025.01.12 30
44 안녕하세요 RXE 채팅 솔루션 질문드립니다. 9 secret 채팅문의 2025.01.10 0
43 좋은 자료 많이 배포 해주셔서 고맙습니다 2 궁뎅이 2024.12.02 36
42 안녕하세요 궁금한 점이 있어 글을 남겨봅니다.. 7 secret 감사합니다 2024.08.11 6
41 입력 키보드가 내려가는 증상 4 커뮤니티 2024.08.05 35
40 현재 접속자 안보이는 증상 4 file 커뮤니티 2024.08.05 40
39 모바일에서 친구보기 버튼을 클릭하면 1 secret 커뮤니티 2024.08.05 2
38 X버튼안눌러지는 증상 1 file 커뮤니티 2024.08.05 34
37 아이폰의 완료 버튼제거 1 file 커뮤니티 2024.08.05 60
36 안녕하세요. 채팅솔루션 문의 드립니다. 2 file 레티아스 2024.07.14 43
35 귓속말 혹은 1:1 대화 사리지는 증상 3 커뮤니티 2024.07.13 44
34 1:1 대화방 버그 5 커뮤니티 2024.07.13 54
33 채팅 솔루션 1.1.0 업데이트 유의사항 6 file 트디개발자 2024.07.01 66
32 쪽지함 l 닫기 커스텀 2 커뮤니티 2024.06.25 48
31 1:1 대화 내용 삭제 기능이 부재 합니다. 9 커뮤니티 2024.06.25 50
30 채팅창에서 화살표 위를 누르면 기존에 작성한 내용이 지워져서 불편합니다. 4 file 커뮤니티 2024.06.24 52
29 socket.elkha.kr에서 응답하는 데 시간이 너무 오래 걸립니다. 3 커뮤니티 2024.05.01 133
28 list_count (documents, comments) 값이 저장이 안됩니다. 1 이온디 2024.04.30 43