이미지 파일 업로드 과정은 회사 또는 보안, 성능의 중요도에 따라 전체적인 구조는 완전히 다를 수 있습니다.
브라우저에서 사용자가 업로드할 이미지 파일을 선택합니다.
브라우저에서 선택된 파일을 변수에 저장합니다.
=> 변수에 담긴 내용을 파일 객체
라고 하며 파일 사이즈, 파일 이름 등 파일에 대한 정보를 담고 있습니다.
이제 브라우저에서는 파일 객체를 백엔드 서버에 업로드 요청을 합니다.
백엔드 서버에서는 API(파일 업로드를 하는 API)를 통해 받은 파일을 Storage에 파일을 저장합니다.
Storage에서는 파일을 저장한 결과로 사진을 다운로드 할 수 있는 Image-url를 반환합니다.
백엔드에서는 반환된 주소를 브라우저로 보내주게 됩니다.
Storage service:
용량이 큰 파일들을 무제한으로 저장할 수 있는 Cloud Storage Service를 말합니다.
Storage service를 제공하는 대표적인 회사로 AWS, GCP, Azure가 있으며 이를 Cloud Provider
라고 부릅니다.
DB에도 파일을 저장 할 수 있으며, DB에 파일 저장 시
BLOB
타입으로 저장하게 됩니다.
파일은 기본적으로 많은 용량을 차지하기 때문에 모든 파일을 DB에 저장하는 것은 비효율적입니다.
📍 BLOB타입 : 0과 1로 구성된 이진 데이터
데이터베이스는 각각의 타입 (text, integer 등등..)이 있습니다.
데이터 베이스에 이미지가 저장될 때 사진은 0과 1로 변환해서 저장됩니다.
=> 이미지 주소는 문자열로 들어가면 text, 실제 이미지가 들어가면 blob 타입으로 변환되어 저장됩니다.