Files SDK는 객체(Object) 및 블롭(Blob) 백엔드를 위한 통합 스토리지 SDK이다.
단일 API(Single API)를 통해 간결하고 일관된 인터페이스를 제공하며, 웹 표준 I/O(Web-standards I/O)를 지원한다.
네이티브 클라이언트(Native Client)가 필요한 경우, 탈출구(Escape Hatch)를 제공하여 유연성을 확보했다.
Files SDK는 객체 스토리지(Object Storage)와 블롭 스토리지(Blob Storage)를 위한 단일 API(Single API)를 제공하여 개발자가 각기 다른 백엔드(Backend)에 대한 별도의 학습 비용(Learning Cost)을 줄여준다.
API 일관성(API Consistency): 다양한 스토리지 백엔드(Storage Backend) 간의 일관된 인터페이스(Consistent Interface)를 제공하여 코드의 재사용성(Code Reusability)을 높인다.
추상화(Abstraction): 스토리지 백엔드의 세부 구현을 추상화(Abstraction)하여 개발자가 특정 기술에 종속되지 않도록 한다.
결과적으로 개발자는 Files SDK를 통해 스토리지 백엔드(Storage Backend)의 종류에 관계없이 동일한 방식으로 데이터를 관리할 수 있다.
Files SDK는 웹 표준 I/O(Web-standards I/O)를 지원하여 브라우저(Browser) 환경 및 서버(Server) 환경 모두에서 호환성(Compatibility)을 확보한다.
Fetch API(Fetch API) 기반: Fetch API(Fetch API)를 사용하여 HTTP 요청(HTTP Request)을 처리하므로, 브라우저(Browser) 환경에서 손쉬운 사용(Ease of Use)을 제공한다.
스트림(Stream) 지원: 스트림(Stream)을 지원하여 대용량 파일(Large File)을 효율적으로 처리하고, 메모리 사용량(Memory Usage)을 최적화한다.
서버 사이드 렌더링(Server-Side Rendering) 지원: 서버(Server) 환경에서도 Files SDK를 사용하여 스토리지(Storage)에 접근할 수 있다.
이러한 특징은 Files SDK가 다양한 환경에서 유연하게 사용(Flexible Usage)될 수 있도록 한다.
Files SDK는 필요한 경우, 네이티브 클라이언트(Native Client)를 사용할 수 있는 탈출구(Escape Hatch)를 제공하여 유연성을 극대화한다.
네이티브 클라이언트(Native Client) 직접 접근: 특정 스토리지 백엔드(Storage Backend)의 고급 기능(Advanced Feature)을 사용하거나, Files SDK가 지원하지 않는 기능을 사용해야 할 때 유용하다.
성능 최적화(Performance Optimization): 네이티브 클라이언트(Native Client)를 직접 사용함으로써, Files SDK의 추상화(Abstraction)로 인한 성능 저하(Performance Degradation)를 피할 수 있다.
유지보수 용이성(Maintainability): Files SDK의 업데이트(Update)에 관계없이, 네이티브 클라이언트(Native Client)를 사용하여 기존 코드(Existing Code)를 유지할 수 있다.
결론적으로, Files SDK는 개발자에게 유연성(Flexibility)과 성능(Performance) 사이의 균형을 제공한다.