피드로 돌아가기
Show GN: smol-image-processor – EXIF/메타데이터 제거 후 WebP로 정규화하는 마이크로서비스 (Bun/Elysia)
GeekNewsGeekNews
Backend

Show GN: smol-image-processor – EXIF/메타데이터 제거 후 WebP로 정규화하는 마이크로서비스 (Bun/Elysia)

Bun-Elysia 기반 이미지 정규화 및 DoS 방어 마이크로서비스 설계

levish2026년 6월 5일2intermediate

Context

다양한 이미지 포맷 유입에 따른 저장 및 렌더링 파이프라인의 복잡성 증가. EXIF 메타데이터 포함으로 인한 개인정보 노출 및 Orientation 처리 미흡으로 인한 이미지 회전 오류 발생.

Technical Solution

  • Sharp 라이브러리의 기본 동작을 활용한 EXIF 및 ICC 프로파일의 일괄 제거 및 WebP 단일 포맷 정규화
  • .rotate() 메서드를 선행 적용하여 메타데이터 삭제 전 이미지 방향성을 픽셀 레벨에서 보존하는 구조 설계
  • limitInputPixels 설정을 통한 Decompression Bomb 공격 방어 및 메모리 팽창 제어
  • MAX_PAGES 제한을 통한 대규모 프레임 애니메이션 이미지의 CPU/Memory 고갈 DoS 차단
  • 처리 후 width, height, size 등 메타데이터를 Response Header에 포함하여 DB 저장 단계의 추가 연산 제거
  • Bun Runtime과 Elysia 프레임워크 조합을 통한 경량 HTTP 인터페이스 구현

- 사용자 업로드 이미지 처리 시 EXIF 제거 전 Orientation 보정 단계 필수 적용 - 파일 크기가 아닌 픽셀 수(MAX_PIXELS) 기반의 입력 제한으로 메모리 릭 방지 - 이미지 처리 결과물과 메타데이터를 동시에 반환하여 파이프라인 단계 최적화 - 애니메이션 이미지 처리 시 프레임 수 제한을 통한 리소스 고갈 방지책 마련

원문 읽기