GYMMI 프로젝트를 진행하며 이미지관련 고려사항이 생겨 정리해보려 합니당.
이미지는 s3PresignedUrl로 s3의 주소를 받아오고 있고 Image 컴포넌트의 loader를 통해 받아온 경로를 요청하여 이미지를 불러옴. 이미지의 경로만 캐싱되지(useQuery로 인해) 이미지 자체가 캐싱되지 않아 페이지 렌더링시 매번 대량의 이미지를 불러오는 요청이 날라감 → 요청횟수대로 s3 비용이 부과되기에 비용 문제 발생.
-> 캐싱을 적용,.,.
이미지 크기가 너무 크다. 로딩 시간이 너무 오래걸림. 이미지 최적화가 필요

import imageCompression from 'browser-image-compression';
export const compressingImage = async (
e: React.ChangeEvent<HTMLInputElement>,
) => {
const reader = new FileReader();
const file = e.target.files?.[0];
if (!file) return;
const compress = await imageCompression(file, {
initialQuality: 0.3,
});
reader.readAsDataURL(compress);
console.log('original', Math.ceil(file.size / 1000), 'KB');
console.log(Math.ceil(compress.size / 1000), 'KB');
return compress;
};