썸네일로 이미지 최적화

Thumbor를 사용하면 필요에 따라 이미지 크기를 조절하고 압축하고 변환하는 데 자유롭게 사용할 수 있습니다.

Katie Hempenius
Katie Hempenius

Thumbor는 이미지를 쉽게 압축하고, 크기를 조절하고, 변환할 수 있는 무료 오픈소스 이미지 CDN입니다. 이 게시물을 통해 아무것도 설치하지 않고도 Thumbor를 직접 사용해 볼 수 있습니다. http://34.67.235.246:8888에서 사용해 볼 수 있도록 샌드박스 Thumbor 서버를 설정했습니다. 실험하려는 이미지는 http://34.67.235.246:8888/unsafe/https://web.dev/backdrop-filter/hero.jpg에서 제공됩니다.

기본 요건

이 게시물에서는 이미지 CDN이 로드 성능을 개선하는 방법을 이해하고 있다고 가정합니다. 그렇지 않은 경우 이미지 CDN을 사용하여 이미지 최적화를 참조하세요. 또한 이전에 기본 웹사이트를 구축한 경험이 있다고 가정합니다.

Thumbor URL 형식

이미지 CDN을 사용하여 이미지 최적화에서 언급한 대로 각 이미지 CDN은 이미지에 대해 약간 다른 URL 형식을 사용합니다. 그림 1은 Thumbor의 형식을 보여줍니다.

<ph type="x-smartling-placeholder">
</ph> Thumbor URL에는 출처, 보안 키, 크기, 필터, 이미지 구성요소가 있습니다.
Thumbor의 URL 형식

출발지

모든 출처와 마찬가지로, Thumbor URL의 출처는 스키마 (거의 항상 http 또는 https), 호스트, 포트라는 세 부분으로 구성됩니다. 이 예에서 호스트는 IP 주소를 사용하여 식별되지만 DNS 서버를 사용하는 경우 thumbor-server.my-site.com와 같이 표시될 수 있습니다. 기본적으로 Thumbor는 포트 8888을 사용하여 이미지를 제공합니다.

보안 키

URL의 unsafe 부분은 보안 키 없이 Thumbor를 사용하고 있음을 나타냅니다. 보안 키를 사용하면 사용자가 이미지 URL을 무단으로 변경하는 것을 방지할 수 있습니다. 이미지 URL을 변경하면 사용자가 서버 및 호스팅 요금을 사용하여 이미지의 크기를 조절하거나 더 악의적으로 서버에 과부하를 일으킬 수 있습니다. 이 가이드에서는 Thumbor의 보안 키 기능 설정을 다루지 않습니다.

크기

URL의 이 부분은 원하는 출력 이미지 크기를 지정합니다. 이미지 크기를 변경하지 않으려면 생략할 수 있습니다. Thumbor는 다른 URL 매개변수에 따라 원하는 크기를 얻기 위해 자르기 또는 크기 조정과 같은 다양한 접근 방식을 사용합니다. 이 게시물의 다음 섹션에서는 이미지 크기를 조절하는 방법을 자세히 설명합니다.

직접 해보기:

  1. 다음 URL을 클릭하여 새 탭에서 원본 크기로 제공되는 이미지를 확인합니다. http://34.67.235.246:8888/unsafe/https://web.dev/backdrop-filter/hero.jpg

    <ph type="x-smartling-placeholder">
    </ph> 원본 크기의 이미지
    원본 이미지
  2. 이미지 크기를 100x100픽셀로 조절합니다. http://34.67.235.246:8888/unsafe/100x100/https://web.dev/backdrop-filter/hero.jpg

<ph type="x-smartling-placeholder">100x100픽셀 이미지</ph>
이미지 크기를 100x100픽셀로 조정함

필터

필터는 이미지를 변환합니다. URL 세그먼트의 필터 부분은 filters:로 시작하고 그 뒤에 콜론으로 구분된 필터 목록이 옵니다. 필터를 사용하지 않는 경우 생략할 수 있습니다. 개별 필터의 문법은 0개 이상의 인수를 포함하는 함수 호출 (예: grayscale())과 유사합니다.

직접 해보기:

  1. 단일 필터 적용: 반경 25픽셀의 가우시안 블러 효과: http://34.67.235.246:8888/unsafe/filters:blur(25)/https://web.dev/backdrop-filter/hero.jpg

    <ph type="x-smartling-placeholder">
    </ph> 블러 처리된 이미지
    흐리게 처리된 이미지
  2. 여러 필터를 적용합니다. 그레이 스케일로 변환하고 이미지를 90도 rotate합니다. http://34.67.235.246:8888/unsafe/filters:grayscale():blur(90)/https://web.dev/backdrop-filter/hero.jpg

<ph type="x-smartling-placeholder">90도 회전한 그레이 스케일 이미지</ph>
그레이 스케일, 회전된 이미지

이미지 변환

이 섹션에서는 성능과 가장 관련성이 높은 Thumbor 기능(파일 형식 간 압축, 크기 조절, 변환)에 중점을 둡니다.

압축

품질 필터는 JPEG 이미지를 원하는 이미지 품질 수준 (1~100)으로 압축합니다. 품질 수준이 제공되지 않으면 Thumbor는 이미지를 80 품질 수준으로 압축합니다. 이는 좋은 기본값입니다. 품질 수준 80~85는 일반적으로 이미지 품질에 별다른 영향을 미치지 않지만 이미지 크기를 30~40% 줄입니다.

직접 해보기:

  1. 이미지를 1의 품질로 압축합니다 (매우 나쁨). http://34.67.235.246:8888/unsafe/filters:quality(1)/https://web.dev/backdrop-filter/hero.jpg

    <ph type="x-smartling-placeholder">
    </ph> 저화질 이미지
    저화질 이미지
  2. 다음 Thumbor의 기본 압축 설정을 사용하여 이미지를 압축합니다. http://34.67.235.246:8888/unsafe/filters:quality()/https://web.dev/backdrop-filter/hero.jpg

<ph type="x-smartling-placeholder">눈에 띄는 품질 문제가 없는 압축 이미지</ph>
압축 이미지

크기 조정

원래 비율을 유지하면서 이미지 크기를 조절하려면 URL 문자열의 size 부분에 있는 $WIDTHx0 또는 0x$HEIGHT 형식을 사용합니다.

직접 해보기:

  1. 원래 비율을 유지하면서 이미지 너비를 200픽셀로 조절합니다. http://34.67.235.246:8888/unsafe/200x0/https://web.dev/backdrop-filter/hero.jpg

    <ph type="x-smartling-placeholder">너비 200픽셀 이미지</ph>
    너비 200픽셀로 이미지 크기 조정됨
  2. 원래 비율을 유지하면서 이미지 높이 500픽셀로 이미지 크기를 조절합니다. http://34.67.235.246:8888/unsafe/0x500/https://web.dev/backdrop-filter/hero.jpg

<ph type="x-smartling-placeholder">높이가 500픽셀인 이미지</ph>
높이 500픽셀로 이미지 크기 조정됨

비례 필터를 사용하여 이미지 크기를 원본 대비 백분율로 조정할 수도 있습니다. 크기를 비율 필터와 함께 지정하면 이미지의 크기가 조정된 다음 비율 필터가 적용됩니다.

직접 해보기:

  1. 이미지 크기를 원본 50% 로 조절합니다. http://34.67.235.246:8888/unsafe/filters:proportion(.5)/https://web.dev/backdrop-filter/hero.jpg

    <ph type="x-smartling-placeholder">
    </ph> 원본 크기의 50% 이미지
    이미지 크기를 원본 크기의 50% 로 조정함
  2. 너비가 1, 000픽셀이 되도록 이미지 크기를 조절한 다음 이미지를 현재 크기의 10% 로 조절합니다. http://34.67.235.246:8888/unsafe/1000x/filters:proportion(.1)/https://web.dev/backdrop-filter/hero.jpg

<ph type="x-smartling-placeholder">너비 100픽셀 이미지</ph>
너비 100픽셀로 이미지 크기 조정됨

이러한 메서드는 Thumbor의 수많은 자르기 및 크기 조절 옵션 중 일부일 뿐입니다. 다른 옵션에 대해 알아보려면 사용량을 확인하세요.

파일 형식

format 필터는 이미지를 jpeg, webp, gif 또는 png로 변환합니다. 성능을 최적화하려면 PNG 및 GIF 파일이 훨씬 더 크고 압축도 되지 않기 때문에 JPEG 또는 WebP를 사용해야 합니다.

직접 해보기:

  1. 이미지를 WebP로 변환합니다. DevTools의 Network 패널을 열면 문서의 Content-Type 응답 헤더에 서버가 WebP 이미지를 반환했다고 표시됩니다. http://34.67.235.246:8888/unsafe/filters:format(webp)/https://web.dev/backdrop-filter/hero.jpg
<ph type="x-smartling-placeholder">이미지의 콘텐츠 유형 (WebP)을 보여주는 DevTools 스크린샷</ph>
DevTools에 표시된 content-type 응답 헤더

다음 단계

hero.jpg 이미지에서 다른 필터와 변환을 사용해 봅니다.

자체 Thumbor 설치를 사용 중인 경우, thumbor.conf 파일을 사용하는 방법과 이유를 설명하는 아래 부록을 확인하세요.

부록: thumbor.conf

이 게시물에서 설명한 여러 구성 옵션을 비롯한 여러 구성 옵션은 thumbor.conf 구성 파일을 설정하고 사용하여 기본값으로 설정할 수 있습니다. URL 문자열 매개변수로 재정의하지 않는 한 thumbor.conf 파일의 설정은 모든 이미지에 적용됩니다.

  1. thumbor-config 명령어를 실행하여 새 thumbor.conf 파일을 만듭니다.

    thumbor-config > ./thumbor.conf
    
  2. thumbor.conf 파일을 엽니다. thumbor-config 명령어로 모든 Thumbor 구성 옵션을 나열하고 설명하는 파일이 생성되었습니다.

  3. 줄 주석 처리를 삭제하고 기본값을 변경하여 설정을 구성합니다. 다음과 같이 설정하는 것이 유용할 수 있습니다.

    • QUALITY
    • AUTO_WEBP
    • MAX_WIDTHMAX_HEIGHT
    • ALLOW_ANIMATED_GIFS
  4. thumbor.conf 설정을 사용하려면 --conf 플래그와 함께 Thumbor를 실행합니다.

    thumbor --conf /path/to/thumbor.conf