개발자

백엔드에서 이미지 저장 로직 관련해서 궁금한 점이 있습니다!

2023년 12월 21일조회 598

관계형 데이터베이스에서 이미지 처리에 대해 이 방법이 최선인지 궁금합니다. 1. 프론트에서 이미지 파일 형태로 서버로 보냅니다. 2. 서버에서 받은 이미지를 aws s3에 저장합니다. 3. 서버에서 데이터베이스의 s3에 저장된 이미지의 주소를 저장합니다. 프론트에서 이미지를 인코딩하고 보내거나 백엔드에서 인코딩해서 저장하는 방법도 있지만 이거는 잘 사용하지 않는 것으로 알고 있는데 위 방법이 최선일까요??

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 2

종윤님의 프로필 사진

DB에는 경로나 파일명만을 남기고 이미지 자체를 저장하지 않는 방법이 일반적입니다. 최선인지 아닌지에 대한 여부는 직접 DB에 넣는 것을 고려해서 말씀하신건지 잘모르겠지만 그렇게 할 경우 DB가 지는 부담이 크게 되어 그렇게는 하지 않는 것으로 알고있습니다.

빈센트님의 프로필 사진

관계형 데이터베이스에 이미지를 인코딩해서 또는 바이너리 형식으로 담는 경우 이미지 사이즈에 대해서 고려하여야 합니다. 너무 큰 데이터 파일이 들어오거나, 데이터가 크기 자체가 커서 RDB에 병목이 발생할 수 있기 때문이에요. 따라서 S3와 같은 스토리지 서버를 따로 두고 이미지를 저장하고 RDB 에는 identifier 만 두는 방식이 이용됩니다. 다만 순서를 달리해서 pre-signed URL 이라는 방식이 있는데, 미리 서명된 URL을 통해서 프론트에서 s3 버킷으로 바로 업로드 한다고 알고 있습니다.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!