topic난이도

Sharp — 이미지 일괄 처리

Node.js 고성능 이미지 처리 라이브러리. 리사이즈, 포맷 변환, 크롭, 워터마크를 C++ 속도로 처리.

#Sharp#이미지#리사이즈#WebP
왜 배우는가

썸네일 생성, 이미지 최적화, 워터마크 삽입 — 웹 서비스에서 이미지 처리는 피할 수 없다. Sharp는 Node.js의 이미지 편집기로, libvips 기반이라 Photoshop 없이도 배치 처리가 가능하다.

Sharp는 Node.js의 이미지 편집기다. Photoshop을 열지 않고 코드 한 줄로 이미지 리사이즈, 포맷 변환, 크롭, 블러, 워터마크를 처리한다. C++ 기반 libvips 엔진을 사용해 Jimp보다 수십 배 빠르다.

용도설명
썸네일 생성업로드 이미지를 200x200으로 자동 축소
포맷 변환PNG → WebP 변환 (용량 60% 절감)
워터마크로고를 이미지 우하단에 합성
배치 처리폴더 내 이미지 1000장 일괄 리사이즈
javascript
// npm install sharp
import sharp from "sharp";

await sharp("input.jpg")
  .resize(800, 600)          // 800x600으로 리사이즈
  .webp({ quality: 80 })     // WebP로 변환 (품질 80%)
  .toFile("output.webp");

// 워터마크 합성
await sharp("photo.jpg")
  .composite([{ input: "logo.png", gravity: "southeast" }])
  .toFile("watermarked.jpg");

메서드 체이닝으로 변환 파이프라인을 구성한다. `resize()` → `webp()` → `toFile()` 순서로 처리. `composite()`로 이미지를 겹칠 수 있다.

Claude Code 팁: "Sharp로 uploads 폴더의 모든 이미지를 WebP로 변환하고 썸네일도 만들어줘"라고 하면 glob 패턴, 병렬 처리, 에러 핸들링까지 포함된 스크립트를 생성한다.