11 KiB
11 KiB
Cloud# 서비스 제안서
목차
- 프로젝트 개요
- 문제 정의
- 해결 방향
- 핵심 가치 제안 및 차별점
- 타겟 사용자
- 기능 로드맵
- 기술 아키텍처
- 데이터 모델
- 비기능 요구사항
- 개발 일정
- 성공 지표 (KPI)
- 리스크 및 대응 전략
- 기대 효과
1. 프로젝트 개요
| 항목 | 내용 |
|---|---|
| 서비스명 | Cloud# |
| 한 줄 소개 | 느린 웹 기반 파일 관리의 UX를 개선하고, S3 성능과 확장성을 갖춘 차세대 파일 호스팅 서비스 |
| Backend | ASP.NET Core |
| Frontend | Blazor (Server 또는 WASM + API 조합 검토) |
| 업로드 방식 | tus 프로토콜 (재개 가능한 대용량 업로드) |
| 저장소 | S3 호환 Object Storage (MinIO / AWS S3 / Ceph RGW) |
| 개발 방식 | 단계별 로드맵 — MVP → 확장 기능 → 커뮤니티 플랫폼 |
2. 문제 정의
기존 파일 관리 솔루션은 두 가지 방향에서 한계를 드러냅니다.
2.1 Nextcloud 계열의 한계
- 웹 UI 전반의 체감 반응성 저하 — 탐색, 공유 설정, 미리보기, 페이지 전환에서 답답함 발생
- 구형 기술 스택 기반으로 성능 최적화 및 유지보수 비용 증가
- 무거운 기능 구조로 인해 기본적인 파일 관리 경험조차 느리게 느껴짐
2.2 S3 저장소의 한계
- 성능과 안정성은 우수하나 파일 관리 UX 기능 부족
- 폴더 구조, 공유 링크, 미리보기, 파일 정리 기능이 불친절하거나 부재
- 비개발자/일반 사용자에게 높은 진입 장벽 존재
2.3 시장 공백
flowchart TB
A["Nextcloud<br/>기능은 풍부<br/>UX가 느림"]
B["S3 저장소<br/>성능은 우수<br/>UX가 불친절"]
C["Cloud#<br/>빠르고 · 쉽고 · 안정적"]
A --> C
B --> C
3. 해결 방향
"Nextcloud의 기능성 + S3의 성능/확장성 + 현대적인 웹 UX"
| 기능성 | 성능·확장성 | 현대적 UX |
|---|---|---|
| Nextcloud 수준의 파일 관리 | S3/Object Storage 기반 인프라 | Blazor + 빠른 API 응답 |
4. 핵심 가치 제안 및 차별점
4.1 핵심 가치 제안
| 가치 | 설명 |
|---|---|
| ⚡ 빠르다 | 클릭·탐색·미리보기 반응 속도 개선 |
| 🎯 쉽다 | 폴더·공유·정리 기능의 직관적 UX |
| 🔒 안정적이다 | tus 기반 대용량 업로드 중단 후 재개 가능 |
| 📈 확장 가능하다 | S3 기반으로 저장소 교체·증설 용이 |
4.2 경쟁 서비스 대비 차별점
| 구분 | Nextcloud | S3 직접 사용 | Cloud# |
|---|---|---|---|
| UI 반응 속도 | 느림 | 제한적 | 빠름 (최우선 목표) |
| 대용량 업로드 안정성 | 보통 | 지원 | tus 기반 완전 지원 |
| 일반 사용자 친화성 | 보통 | 낮음 | 높음 (직관적 UX) |
| 저장소 확장성 | 제한적 | 우수 | 우수 (S3 호환) |
| WebDAV 지원 | 지원 | 미지원 | 2차 개발 예정 |
| 커뮤니티/협업 기능 | 제한적 | 미지원 | 3차 개발 예정 |
5. 타겟 사용자
5.1 1차 타겟
- 개인 개발자 / 홈서버 운영자
- 소규모 팀 (스터디, 프로젝트 팀, 동아리)
- NAS/클라우드 대체 솔루션을 탐색 중인 사용자
5.2 2차 타겟
- 크리에이터/디자이너 — 파일 공유·미리보기 수요 높음
- 내부 자료 공유가 필요한 팀/조직
- WebDAV 기반 마운트를 원하는 파워유저
5.3 사용자 니즈
- 빠른 업로드·다운로드
- 쉬운 폴더·파일 정리
- 링크 공유 및 권한 제어
- 브라우저에서의 미리보기
- OS 탐색기에서 직접 접근 (WebDAV)
6. 기능 로드맵
Phase 1 — MVP (4~8주)
목표: 실사용 가능한 최소 제품 완성
회원/인증
- 회원가입, 로그인/로그아웃
- JWT + Refresh Token 인증
- 비밀번호 재설정 (이메일 기반)
파일 관리
- 파일 업로드 — tus 기반, 재개 가능
- 파일 다운로드 (Range 지원)
- 폴더 생성·이동·이름 변경·삭제
- 파일 이름 변경·이동·삭제
- 파일 목록 조회 (정렬/검색 기본)
- 휴지통 (소프트 삭제)
공유
- 공유 링크 생성
- 만료일·비밀번호 설정
- 읽기 전용 공유
- 링크 비활성화
미리보기
- 이미지 미리보기
- 텍스트/코드 파일 미리보기
- PDF 미리보기 (브라우저 내장 뷰어)
관리자/운영
- 사용자별 저장 용량 제한 (Quota)
- 파일 업로드 크기 제한
- 관리자용 사용자·용량 현황 조회
Phase 2 — 확장 기능 (3~6주)
목표: 파워유저·운영자 사용성 강화
WebDAV 지원
- OS 탐색기/Finder에서 네트워크 드라이브처럼 접근
- 사용자별 권한 반영
- Windows/macOS 우선 지원
외부 다운로드/수집
- URL 기반 파일 가져오기 (Remote Fetch)
- 서버 측 다운로드 큐 처리 및 진행률 표시
고급 파일 관리
- 태그·즐겨찾기
- 최근 파일
- 버전 관리 (간단 버전)
- 중복 파일 탐지 (해시 기반)
운영 기능
- 감사 로그 (업로드·삭제·공유 생성)
- 관리자 권한 정책 (RBAC)
- 알림 — 공유 링크 만료, 용량 초과 등
Phase 3 — 커뮤니티 플랫폼 (추후)
목표: 파일 공유 중심 커뮤니티 플랫폼으로 확장
공유 스페이스
- 주제/팀 단위 공간 생성
- 공간별 권한 (관리자/멤버/읽기전용)
- 공간별 저장소·용량 할당
커뮤니티/채팅
- 파일 중심 채팅·피드
- 파일 업로드 후 즉시 공유·대화
- 링크·미디어·문서 프리뷰
- 파일·메시지 통합 검색
장기 확장
- 봇/자동화 업로드
- 팀 워크플로우 연동
- 실시간 협업 편집기 연동
7. 기술 아키텍처
flowchart TB
Client["클라이언트<br/>Blazor UI + tus client"]
API["API 서버<br/>ASP.NET Core — 인증/인가, 메타데이터,<br/>공유 링크, WebDAV(2차), 관리자 API"]
Upload["업로드 서비스<br/>tus 세션 관리<br/>청크 병합<br/>이벤트 발행"]
DB["메타데이터 DB<br/>PostgreSQL / MySQL<br/>사용자·폴더·파일·공유<br/>링크·감사로그 관리"]
Storage["S3 호환 Object Storage<br/>MinIO / AWS S3 / Ceph RGW<br/>파일 본문(binary) · 썸네일·미리보기 캐시"]
Worker["비동기 작업자 (선택)<br/>썸네일 생성 · 미리보기 변환<br/>바이러스 스캔 · 원격 URL 다운로드"]
Client --> API
API --> Upload
API --> DB
Upload --> Storage
Storage --> Worker
기술 선택 근거
| 기술 | 선택 이유 |
|---|---|
| ASP.NET Core | 높은 성능, WebDAV/S3 SDK 지원, 풍부한 생태계 |
| Blazor | C# 풀스택으로 컨텍스트 전환 최소화 |
| tus 프로토콜 | 표준화된 재개 가능 업로드 — 네트워크 중단에 강인 |
| S3 호환 저장소 | MinIO(온프레미스)~AWS S3까지 교체 가능한 유연한 구조 |
8. 데이터 모델
| 엔티티 | 설명 |
|---|---|
User |
사용자 계정 — 인증 정보, 저장 용량 Quota |
Workspace |
개인/공유 공간 단위 |
Folder |
폴더 메타데이터 — 계층 구조 |
FileItem |
파일 메타데이터 — 이름, 크기, MIME, 해시, S3 저장 키 |
FileVersion |
파일 버전 정보 (선택) |
ShareLink |
공유 링크 — 만료일, 비밀번호, 권한 |
Permission |
사용자/공간/폴더 권한 |
UploadSession |
tus 업로드 상태 — 청크 진행률, 재개 정보 |
PreviewAsset |
썸네일·미리보기 캐시 |
AuditLog |
주요 이벤트 로그 — 업로드·삭제·공유 생성 |
9. 비기능 요구사항
9.1 성능
- 목록 조회·폴더 이동 UI 빠른 응답 — 체감 속도 최우선
- 대용량 업로드 안정성 보장 (재개 가능)
- 썸네일·미리보기 캐싱으로 반복 요청 최적화
9.2 안정성
- 업로드 중단·재시도 처리
- 저장소 장애 대응 (재시도/에러 처리)
- 파일 메타데이터와 저장 객체 정합성 검증 배치
9.3 보안
- JWT 인증/인가 분리
- 공유 링크 권한·만료·비밀번호 보호
- 악성 파일 업로드 대응 (백신 스캔 연계)
- 감사 로그 / 접근 로그
- HTTPS 전제
9.4 확장성
- 저장소 백엔드 교체 가능 (MinIO ↔ AWS S3 등)
- 모듈형 설계 — WebDAV·커뮤니티 기능 추가 용이
- API/도메인 분리로 수평 확장 대응
10. 개발 일정
| 단계 | 기간 | 주요 내용 |
|---|---|---|
| Phase 0 — 기획/설계 | 1~2주 | 요구사항 확정, IA/화면 흐름 설계, DB·저장소 구조 설계, PoC (tus + S3 + 미리보기) |
| Phase 1 — MVP | 4~8주 | 인증/회원, 파일/폴더 CRUD, tus 업로드·다운로드, 공유 링크, 미리보기 기본 |
| Phase 2 — 확장 기능 | 3~6주 | WebDAV, URL 가져오기, 관리자 기능 강화, 감사 로그·알림 |
| Phase 3 — 커뮤니티 | 추후 협의 | 공유 스페이스, 채팅·피드, 공간 권한·통합 검색 |
실제 일정은 인원수·숙련도·디자인 리소스에 따라 조정 필요
개발 우선순위
| 우선순위 | 항목 |
|---|---|
| Must | 인증/회원, 파일/폴더 메타데이터, tus 업로드, 다운로드, 공유 링크, 이미지/PDF/텍스트 미리보기, Quota 설정 |
| Should | 휴지통, 즐겨찾기/최근 파일, 관리자 대시보드, 썸네일 캐싱 고도화 |
| Could | WebDAV, URL 가져오기, 파일 버전 관리, 커뮤니티/채팅, 고급 검색/태그 |
11. 성공 지표 (KPI)
MVP 단계
| 지표 | 설명 |
|---|---|
| 업로드 성공률 | 목표: 99%+ |
| 업로드 재개 성공률 | 중단 후 재개 성공 비율 |
| 파일 목록 조회 응답시간 | 목표: 200ms 이하 |
| 미리보기 생성 성공률 | 이미지·PDF·텍스트 기준 |
| 공유 링크 사용률 | 생성 대비 다운로드 전환율 |
| DAU/WAU | 초기 사용자 활성도 |
UX 중심
| 지표 | 설명 |
|---|---|
| TTFU | 첫 파일 업로드까지 걸리는 시간 |
| 공유 링크 생성 클릭 수 | 생성까지 평균 클릭 수 최소화 |
| 사용자 만족도 | 체감 속도·사용성 설문 |
12. 리스크 및 대응 전략
| 리스크 | 원인 | 대응 전략 |
|---|---|---|
| 빠른 UX 달성 실패 | 서버 렌더링 지연, DB 쿼리 비효율 | 목록·탐색 API 최적화, 캐시 적용, 미리보기 비동기 생성, 성능 지표 관리 |
| 대용량 업로드 안정성 | 네트워크 중단, 청크 정합성 문제 | tus 채택, 업로드 세션 상태 관리, 재시도 정책·체크섬 검증 |
| WebDAV 호환성 | OS별 클라이언트 동작 차이 | 2차 기능으로 분리, Windows/macOS 우선, 점진적 확장 |
| 저작권·불법 사용 | 외부 다운로드 기능 악용 가능성 | 사용자 소유/허가 콘텐츠 한정, 이용약관 명시, 신고·차단·로그 정책 마련 |
13. 기대 효과
사용자 측면
- 기존 솔루션 대비 빠른 파일 관리 경험 제공
- 단순 저장소를 넘어선 실사용 중심 파일 작업 공간
- 대용량 업로드·공유·미리보기의 편의성 향상
개발·운영 측면
- 현대 기술 스택 기반 유지보수성 향상
- 저장소와 메타데이터 분리로 확장성 확보
- 단계적 기능 확장 — 파일 호스팅 → 팀 공유 → 커뮤니티 플랫폼