시스템 설계 · 심화
대용량 파일 업로드 시스템을 설계해주세요. (유튜브, 드롭박스 등)
힌트 · 청크 분할 업로드, Presigned URL, 재개 가능한 업로드, 인코딩 파이프라인을 설명해보세요.
분할 업로드CDN객체 스토리지로드 밸런싱체크섬
모범답안
대용량 파일 업로드 시스템은 여러 핵심 요소로 구성됩니다. 먼저, 클라이언트에서는 파일을 작은 '청크'로 분할하여 업로드합니다. 이는 네트워크 불안정 시에도 전체 파일을 다시 보낼 필요 없이 실패한 청크만 재전송할 수 있게 하여 '재개 가능한 업로드'를 지원합니다.
서버에서는 각 청크를 임시로 저장하고, 업로드 완료 후 이를 합칩니다. 이때, 데이터 무결성을 위해 '체크섬'을 활용하여 파일이 손상되지 않았는지 검증합니다.
업로드 요청 시, 서버는 클라이언트에게 'Presigned URL'을 발급하여 직접 객체 스토리지(예: S3)에 파일을 업로드하도록 합니다. 이는 서버 부하를 줄이고 보안을 강화하는 방법입니다.
대규모 트래픽 처리를 위해 '로드 밸런싱'을 통해 여러 서버로 요청을 분산시키고, 업로드된 파일은 'CDN'을 통해 사용자에게 빠르게 전달될 수 있도록 합니다.
마지막으로, 업로드된 파일은 필요에 따라 '인코딩 파이프라인'을 거쳐 다양한 형식으로 변환됩니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.