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 패턴, 병렬 처리, 에러 핸들링까지 포함된 스크립트를 생성한다.