잡다한 백엔드 지식

2가지 파일 업로드 방식 알아보기 (feat. pre-uploading (프리 업로드, 먼저 업로드) 방식과 일반 업로드 방식)

Jake Seo 2024. 2. 5. 20:47

업로드 방식

일반적인 파일 업로드 방식

  • 제목, 내용, 파일을 한 번에 받아 업로드한다.
  • 업로드 버튼을 눌른 이후에 업로드가 시작되었을 때, 사용자는 앱이 약간 느리다고 느낄 수 있다.
  • 파일이 여러개가 되거나 첨부파일의 용량이 커질수록 이러한 불편을 느낄 확률이 커진다.

먼저 업로드 하는 방식 (Pre-uploading, Background uploading)

  • 첨부파일을 선택하는 순간에 이미 업로드는 시작된다.
  • 업로드된 파일은 임시 폴더에 잠시 저장된다.
  • 첨부파일 업로드 뒤에 게시글 작성 시 첨부파일 경로만 추가해준다.
  • S3 presigned url 을 사용하면 많이 사용되는 방식이다.

장단점 비교

일반적인 파일 업로드 방식

  • 체감 속도: 길다
  • 서버 과부하: 한 번의 요청만 받게 되므로 상대적으로 유리하다.
  • 엔드포인트 관리: 파일 업로드 관련 세팅을 매번 해주어야 한다.
  • 파일 관리: 잉여 파일이 생길 가능성이 적다.

먼저 업로드 하는 방식 (Pre-uploading, Background uploading)

  • 체감 속도: 이미지가 먼저 골라지고 글을 쓰는 방식일 때, 글을 쓰는 동안 이미지가 업로드 되어 체감 속도가 매우 빠르다.
  • 서버 과부하: 이미지 선택 시마다 업로드가 진행되어 부하가 더 크다. 이미지를 올리려다가 마는 경우, 서버의 리소스만 사용한다.
  • 엔드포인트 관리: 공통 이미지 업로드 엔드포인트로 모든 이미지 업로드를 한번에 관리할 수 있다.
  • 파일 관리: 선택한 이미지를 삭제하거나 변경했을 때 쓸모없는 파일이 생길 수 있어서 주기적으로 삭제해주어야 한다.

추가적으로 올리려는 파일에 에러가 있는 경우, 먼저 업로드하는 방식에서는 오류를 미리 알려줄 수 있기 때문에 유리하다.

업로드 시에 네트워크 부하에 대처하기도 용이하다. 파일의 사이즈를 미리 알고 부하를 예측한 뒤에 리소스를 효율적으로 배분할 수 있다.

반응형