<aside> 💡 Bob : S3를 활용한 이미지 업로드 전략을 프론트-백 모두 살펴보고 결정해야 할 것 같습니다!

</aside>

이미지 업로드 전략

1. 브라우저 → S3

브라우저에서 Amazon S3 S3로 사진 업로드

브라우저와 S3에 직접 이미지 업로드

저장이 성공할 경우 브라우저는 S3로 부터 저장된 이미지의 URL endpoint만 받아서 서버에 전송한다.

장점 : 백엔드 성능에 부담이 되지 않는다.

단점 : 프론트 코드 유지보수 비용, 이미지에 대한 검증 체계 미비, 암호화 문제

access key , secret key를 프론트 엔드 서버에 환경 변수로 보관해야 하는데 비용이 든다.

이미지 업로드를 취소했을 때 호출하는 delete 로직?

사진 업로드 api가 털리면? s3 요금 폭탄

2. 브라우저 → 서버 → S3 ✅

브라우저에서 서버에 이미지 업로드

서버가 이미지를 s3에 업로드하고 url을 받아와서 db에 저장한다.

장점 : 프론트 서버 로직 간결화(url만 보내면 되니까), 이미지 검증

단점 : 백엔드 성능 저하(이미지 업로드 무거움), 백엔드 코드 유지보수 비용

의미있는 검증을 해야한다.