first
This commit is contained in:
369
기획/제안서.md
Normal file
369
기획/제안서.md
Normal file
@@ -0,0 +1,369 @@
|
||||
# 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. 기대 효과
|
||||
|
||||
### 사용자 측면
|
||||
|
||||
- 기존 솔루션 대비 **빠른 파일 관리 경험** 제공
|
||||
- 단순 저장소를 넘어선 **실사용 중심 파일 작업 공간**
|
||||
- 대용량 업로드·공유·미리보기의 편의성 향상
|
||||
|
||||
### 개발·운영 측면
|
||||
|
||||
- 현대 기술 스택 기반 **유지보수성 향상**
|
||||
- 저장소와 메타데이터 분리로 **확장성 확보**
|
||||
- 단계적 기능 확장 — 파일 호스팅 → 팀 공유 → 커뮤니티 플랫폼
|
||||
Reference in New Issue
Block a user