이미지 처리좀 쉽게할 수 없나?


요약

블로그는 로딩 속도가 생명이다. 무손실 고용량 이미지로 방문객들의 트래픽을 낭비할 필요가 없다. 어떻게 하면 생각없이 이미지를 업로드하면서도 페이지 빌드 과정에서 자동으로 유저에게 가벼운 이미지로 변환할 수 있을까?

목표

이미지를 올리고 본문 영역에서 이용하면 리사이징이나 파일 형식 변환(PNG,JPG -> AVIF,WEBP 등)을 자동으로 수행할 수 있을까?

  • 결과적으로 브라우저 트래픽을 줄여야 함
    • 대충 CSS로 장난쳐서 보이는 이미지 크기만 줄이는 것을 원하는 건 아님
    • 원본 파일 및 리사이징된 파일 여러개가 생기는 것을 원함
  • 직접 imagemagick을 다루는 일은 없었으면 좋겠다
  • Aspect ratio는 유지해야 함
  • 가능하면 싸고 간편한 방법이라야 함

선택지

하하, 역시 이미 툴이 있었네?

astro-imagetools에서 모든것을 다 해주고 있었다.

외부 SaaS 서비스를 이용하는 방법

보니까 imagekit.io라는 서비스에서 내가 원하는 기능을 거의 맞춰서 제공하고 있다. 다만 이 사이트의 경우 parameter을 URL에 바로 넣고, 그 URL 째로 캐시 및 제공하는 서버가 따로 있어 보였다. 쌈마이한 기능을 원하는 내 입장에선 이렇게 하면 static webpage builder를 쓰는 장점이 전혀 생기질 않아서 좋아보이진 않았다.

Makefile 삽질?

어차피 static한 입력 파일들이기 때문에 빌드 과정에 이미지들을 우겨넣는 것도 가능해 보였다. 다만 빌드 결과를 본문에 다시 적용하는게 조금 자연스럽지 않아보였다.

결론

어지간한 것들은 이미 다 구현되어 있는 경우가 많으니 검색부터 잘 해보자.