Image Upload Process (이미지 업로드 절차) 란?
실제 이미지는 Storage에 저장하고, 주소를 활용해 처리하는 것.
이미지 업로드의 가장 기본적인 방식
- 브라우저에서 사용자가 업로드할 이미지 파일을 선택합니다.
- 브라우저에서 선택된 파일을 변수에 저장합니다.
- 이제 브라우저에서는 파일 객체를 백엔드 서버에 업로드 요청을 합니다.
- 백엔드 서버에서는 API를 통해 받은 파일을 DB에 저장 시
BLOB
타입으로 저장하게 됩니다.
하지만 파일은 큰 용량을 차지하기 때문에 모든 파일을 DB에 저장하는 것은 비효율적이여서 Storage service를 이용하게 됩니다.
Storage service를 제공하는 대표적인 회사로 AWS, GCP, Azure가 있으며 이를 Cloud Provider라고 부릅니다.
위의 회사에 비용을 지불하면 용량이 큰 파일들을 무제한으로 저장할 수 있는 Cloud Storage Service를 이용할 수 있습니다.
storage에 저장되는 과정
- 브라우저에서 파일 첨부 후 파일 업로드 API를 요청하면 Storage에 파일을 저장합니다.
- Storage에서는 파일을 저장한 결과로 사진을 다운로드 할 수 있는 주소를 반환합니다.
- 백엔드에서는 반환된 주소를 브라우저로 보내주게 됩니다.
<DB에 저장하는 과정>
- 브라우저에서 게시글을 작성하게되면 title, content, 업로드한 파일의 URL를 포함해서 게시물 등록 API를 요청합니다.
- 요청된 API를 통해 DB에 저장이 되며 테이블구조에 따라 게시글 테이블에 함께 저장되거나
이미지는 이미지테이블에 따로 저장되는 구조를 가지게 됩니다.