Files
cloud-sharp-docs/기획/제안서.md
2026-03-16 16:17:17 +09:00

369 lines
11 KiB
Markdown

# Cloud# 서비스 제안서
## 목차
1. 프로젝트 개요
2. 문제 정의
3. 해결 방향
4. 핵심 가치 제안 및 차별점
5. 타겟 사용자
6. 기능 로드맵
7. 기술 아키텍처
8. 데이터 모델
9. 비기능 요구사항
10. 개발 일정
11. 성공 지표 (KPI)
12. 리스크 및 대응 전략
13. 기대 효과
---
## 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 시장 공백
```mermaid
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. 기술 아키텍처
```mermaid
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. 기대 효과
### 사용자 측면
- 기존 솔루션 대비 **빠른 파일 관리 경험** 제공
- 단순 저장소를 넘어선 **실사용 중심 파일 작업 공간**
- 대용량 업로드·공유·미리보기의 편의성 향상
### 개발·운영 측면
- 현대 기술 스택 기반 **유지보수성 향상**
- 저장소와 메타데이터 분리로 **확장성 확보**
- 단계적 기능 확장 — 파일 호스팅 → 팀 공유 → 커뮤니티 플랫폼