Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- apk파일 추출
- 오블완
- 경우의 수
- bfs dfs
- 구현
- 해외 대외활동
- 폴더구조
- 휴대폰 기기
- ReactNative
- BFS
- React Natvive
- 상속 관계 매핑
- 백준 1992
- 원복
- 창의충전소
- React Native
- 완전탐색
- springboot
- react
- web view
- Project Bee
- FlatList
- Navigation
- 이영직
- 티스토리챌린지
- 비트마스킹
- 버튼 활성화
- 자료구조
- 노마드코더
- multipart upload
Archives
- Today
- Total
유미의 기록들
Multipart Upload 방식 vs Pre-signedURL 방식 본문
728x90
반응형
Multipart Upload 방식과 Pre-signed URL 방식 각각의 장단점이 있어, 상황에 따라 적합한 방식을 선택하는 것이 좋습니다. 비교해볼게요.
1. Multipart Upload 방식
장점
- 서버에서 모든 처리를 관리: 서버가 파일을 나누어 업로드하고, 업로드 완료 요청까지 전부 관리하므로, 업로드 진행 상태나 에러 처리를 서버에서 완벽하게 제어할 수 있습니다.
- 중간 에러 복구 용이: 네트워크 에러나 업로드 중 문제가 생겨도, 실패한 파트만 다시 업로드하면 되므로 효율적입니다.
- 큰 파일 업로드에 유리: 대용량 파일의 경우 한 번에 업로드할 필요가 없으므로 메모리 사용량이 줄어들고 속도가 개선될 수 있습니다.
단점
- 서버 부하 증가: 모든 파일 업로드 작업이 서버에서 이루어지므로 서버 자원 소모가 큽니다. 특히 대용량 파일을 자주 업로드해야 하는 경우 서버의 네트워크와 처리 속도가 느려질 수 있습니다.
- S3 권한 관리: 서버가 직접 업로드를 처리하기 때문에, S3에 대한 쓰기 권한이 서버에 필요합니다.
2. Pre-signed URL 방식
장점
- 클라이언트에서 직접 업로드 가능: 서버는 pre-signed URL만 제공하고 업로드는 클라이언트가 수행하므로, 서버 부하가 줄어듭니다.
- 간단한 구현: 서버는 URL만 발급하고 클라이언트는 해당 URL로 직접 업로드하므로, 서버-클라이언트 간 통신이 간소화됩니다.
- 보안 강화: pre-signed URL은 제한된 시간 동안만 유효하고, 클라이언트가 직접 업로드하므로 서버에서 S3 접근 권한을 줄 필요가 없습니다.
단점
- 에러 관리가 복잡: 업로드 도중 네트워크 문제가 발생할 경우, 클라이언트 쪽에서 이를 감지하고 재시도를 구현해야 하므로 복잡할 수 있습니다.
- 클라이언트 구현 필요: 클라이언트가 직접 업로드 작업을 처리해야 하기 때문에, 클라이언트 쪽 구현이 더 복잡할 수 있습니다.
어느 방식이 좋은지?
- 대용량 파일 업로드와 서버 제어가 필요한 경우: Multipart Upload 방식이 적합합니다. 예를 들어, 동영상 강의 업로드와 같이 서버가 파일 업로드의 성공 여부를 제어해야 하는 경우 이 방식이 유리합니다.
- 서버 부하를 줄이고 클라이언트가 업로드를 담당하는 경우: Pre-signed URL 방식이 좋습니다. 특히 모바일 앱이나 브라우저에서 파일을 직접 업로드하는 경우, 서버 비용을 절감할 수 있습니다.
결론
두 방식 모두 장단점이 뚜렷합니다. 서버 리소스와 대용량 파일 업로드 빈도에 따라 적절한 방법을 선택하는 것이 중요하며, 상황에 따라 두 방식을 함께 적용할 수도 있습니다. 예를 들어, 대용량 파일에는 Multipart Upload를 사용하고, 일반 파일 업로드에는 Pre-signed URL을 사용하는 방법도 가능합니다.
728x90
반응형
'대외활동 기록 > 내일배움캠프' 카테고리의 다른 글
[최종 프로젝트] Signed URL 적용 (0) | 2024.11.13 |
---|---|
[최종 프로젝트] CDN 적용하여 강의 컨텐츠 조회 성능 최적화 (1) | 2024.11.12 |
[최종 프로젝트] SpringBoot 프로젝트 EC2 배포 (2) | 2024.11.11 |
[최종 프로젝트] Reflection을 이용한 테스트 코드 (1) | 2024.11.10 |
[최종 프로젝트] AWS Multipart Upload로 대용량 파일 업로드 (0) | 2024.11.09 |
Comments