급여 시스템에 첨부파일을 업로드하는 기능이 있다. 증빙 서류 스캔 이미지, 신분증 사본 등이다. 고해상도 이미지를 그대로 저장하면 스토리지 비용이 증가한다. 이미지 리사이저처럼 적절한 크기로 줄여서 저장하는 게 효율적이다.
적정 해상도
급여 증빙 서류는 텍스트가 읽히면 된다. 원본이 4000x3000 픽셀이라도 1200x900 정도면 충분하다. 모바일 카메라로 찍은 사진은 특히 용량이 크니 리사이징이 필수다.
입장하기.kr/image-resizer에서 이미지 크기를 조절해볼 수 있다.
서버 사이드 처리
업로드 시 서버에서 자동으로 리사이징한다. Node.js에서는 sharp 라이브러리가 빠르다.
const sharp = require("sharp"); sharp(inputBuffer).resize(1200, 900, { fit: "inside" }).jpeg({ quality: 80 }).toBuffer();
썸네일 생성
목록에서 미리보기로 표시할 썸네일도 별도로 생성한다. 200x150 정도 작은 이미지를 만들어두면 로딩이 빠르다. 이미지 리사이저로 다양한 크기를 테스트해보고 적정 크기를 결정한다.
포맷 최적화
JPEG은 사진에, PNG는 텍스트/도표에 적합하다. 최신 브라우저를 타겟하면 WebP가 용량 대비 품질이 좋다.
원본 보존 정책
리사이징된 이미지만 저장할지, 원본도 보관할지 정책이 필요하다. 법적 증빙이 필요한 문서는 원본을 아카이브에 보관하고, 일상 조회는 최적화 버전을 사용한다.
스토리지 비용 계산
직원 5000명이 연간 10개 파일을 업로드하고, 파일당 평균 2MB라면 연 100GB다. 리사이징으로 500KB로 줄이면 25GB로 75% 절감된다.
마치며
이미지 최적화는 스토리지 비용과 로딩 속도에 직접 영향을 준다. 이미지 크기 조절이 필요하면 온라인 이미지 리사이저를 활용해보자.