1 파일 업로드 전략 개요
- 파일 업로드 전략은 다양하며, 각 프로젝트의 요구사항에 따라 적절한 전략을 선택해야 합니다.
- 주요 전략들은 다음과 같습니다
- Direct Upload (서버 직접 업로드)
- Server-Side Cloud Upload (서버 측 클라우드 업로드)
- Client-Side Cloud Upload (클라이언트 측 클라우드 업로드)
2 서버 직접 업로드 전략
2.1 작동 방식
- 사용자가 멀티파트 폼을 통해 서버로 파일/이미지를 직접 업로드합니다.
- 서버는 파일을 검증한 후 로컬 하드 드라이브에 저장합니다.
2.2 장점
- 구현이 간단합니다 (예: Node.js의 Multer 패키지 사용).
- 추가 인프라 없이 빠르게 구축 가능합니다.
- 소규모 프로젝트나 프로토타입에 적합합니다.
2.3 단점
- 확장성(Scalability) 문제:
- 서버 하드 디스크 용량의 제한
- 다중 서버 환경에서 부하 분산의 어려움
- 가용성(Availability) 문제:
- 백업과 복구 의 복잡성
- CDN 통합의 어려움
2.4 확장성 문제 해결 방안
- Consistent hashing 또는 Rendezvous hashing 사용
- 서버 간 공유 하드 드라이브 사용
3 서버 측 클라우드 업로드 전략
3.1 작동 방식
- 클라이언트가 서버로 파일을 업로드합니다.
- 서버가 파일을 임시로 저장합니다.
- 서버가 해당 파일을 클라우드 스토리지(예: AWS S3)에 업로드합니다.
- 서버가 클라우드 스토리지의 파일 URL을 데이터베이스에 저장합니다.
3.2 장점
- 첫 번째 전략보다 확장성이 뛰어납니다.
- 서버 간 파일 공유가 용이합니다.
3.3 단점