피드로 돌아가기
GeekNewsInfrastructure
원문 읽기
Files SDK - 모든 blob 스토리지를 위한 단일 API
29종 Blob 스토리지 통합을 위한 단일 API 기반 추상화 레이어 설계
AI 요약
Context
S3, R2, GCS 등 다양한 Blob 스토리지 제공자별 서로 다른 API 규격으로 인한 벤더 종속성 발생. 개별 네이티브 SDK 도입 시 발생하는 코드 중복과 교체 비용의 증가를 해결하기 위한 통합 인터페이스 필요성 대두.
Technical Solution
- 40개 이상의 어댑터를 단일 인터페이스로 캡슐화하여 벤더 독립적인 Write Once, Store Anywhere 구조 구현
- Native SDK를 optional peer dependency로 설계하여 실제 사용 어댑터에 대해서만 의존성을 가지는 경량화 전략 채택
- HTTP 206 Partial Content 매핑을 통한 Ranged Read 구현으로 Video Seek 및 다운로드 재개 기능 확보
- Async Iterable 기반의 Listing 처리와 제한적 동시성 제어를 통한 대규모 파일 목록 순회 최적화
- 병렬 Multipart Upload 로직을 통한 대용량 바디 및 무제한 스트림의 효율적 분할 전송 처리
- Lifecycle Hook(onAction, onRetry, onError)을 생성자 수준에서 정의하여 모든 어댑터 작업에 공통 적용하는 일관된 예외 처리 구조
실천 포인트
1. 다중 클라우드 전략 도입 시 개별 SDK 대신 어댑터 패턴 기반의 추상화 레이어 검토
2. 대용량 파일 처리 시 메모리 효율을 위한 Async Iterable 및 Multipart Upload 적용 여부 확인
3. 벤더 교체 비용 최소화를 위해 인터페이스 수준에서 공통 메서드(upload, download, list 등) 정의