프로젝트 로드맵
🗺️ 프로젝트 로드맵: SurfAI 최종 업데이트: 2025년 9월 13일
이 문서는 SurfAI 프로젝트의 단기 및 장기 개발 계획을 정의합니다. 로드맵은 시장 상황과 사용자 피드백에 따라 유연하게 변경될 수 있습니다.
✅ Phase 1: MVP 및 핵심 기능 구축 (완료)
목표: 서비스의 핵심적인 생성-인증-배포 파이프라인을 완성하고, 안정적인 클라우드 기반을 마련합니다.
- [완료] 인증 시스템 구축:
JWT(Access/Refresh Token) 기반 인증 시스템 구현.HttpOnly,Secure쿠키를 이용한 안전한 토큰 전달.Google Sign-In및 일반 이메일/비밀번호 로그인 동시 지원.- 역할 기반 접근 제어(
RBAC)를 위한RolesGuard구현.
- [완료] 핵심 생성 파이프라인:
Generate페이지에서 템플릿 선택 및 파라미터 입력을 통한 생성 요청 기능.WebSocket을 이용한 실시간 진행 상태 및 결과물 수신.SessionGallery를 통해 현재 세션의 결과물을 임시로 확인하는 기능.- [완료] 코인 잔액 실시간 업데이트: 이미지 생성 시 프론트엔드에서 코인 잔액을 낙관적으로 업데이트하고, 백엔드 실패 시
fetchUserProfile을 통해 실제 값으로 롤백. - [완료] 0코인 생성 방지: 프론트엔드와 백엔드에서 코인 부족 시 이미지 생성을 차단하는 로직 구현.
- [완료] 결과물 관리 시스템:
- 생성된 결과물(이미지/비디오)을
Cloudflare R2에 업로드. - 생성 기록 메타데이터를
PostgreSQL데이터베이스에 저장. - 미리 서명된 URL을 통한 안전한 파일 조회 및 다운로드 기능.
- 데이터 보존 정책 수립 (파일 x일 후 자동 삭제, DB 기록은 보존).
- 생성된 결과물(이미지/비디오)을
- [완료] 인프라 및 배포 자동화:
- 프론트엔드/백엔드
Dockerfile작성. Google Cloud Run을 이용한 서비스 배포 및 커스텀 도메인(surfai.org,api.surfai.org) 연결.GitHub Actions를 이용한 CI/CD 파이프라인 구축 완료.
- 프론트엔드/백엔드
🚀 Phase 2: 서비스 안정화 및 관리자 기능 완성 (단기 목표)
목표: 관리자가 서비스를 완전히 제어할 수 있는 기능을 완성하고, 사용자가 자신의 과거 기록을 관리할 수 있도록 하여 서비스의 완성도를 높입니다.
- [완료] 관리자 페이지 - 워크플로우 CRUD:
- 관리자가 워크플로우 템플릿을 생성(Create), 조회(Read), 수정(Update), 삭제(Delete)할 수 있는 전체 기능 완성.
- [완료] 사용자 히스토리 페이지:
- 사용자가
app/history페이지에서 자신의 모든 생성 기록을 조회하고, '더 보기' 버튼을 통해 추가 기록을 불러올 수 있는 기능 완성.
- 사용자가
- [완료] 관리자 페이지 - 사용자 관리:
- 관리자 전용 페이지에서 모든 사용자 목록을 조회하고, 각 사용자에게 코인을 추가하거나 차감할 수 있는 기능 구현.
- 사용자 목록을 ID 내림차순으로 정렬.
- 코인 조정 입력 폼의 초기값 설정, 입력 후 초기화, 숫자만 입력 가능하도록 개선.
- 보안 강화:
- [예정] Refresh Token 순환(Rotation) 및 탈취 감지 로직 구현.
- [예정]
NestJS의@nestjs/throttler를 이용한 API 요청 속도 제한 적용.
🌟 Phase 3: 사용자 경험 향상 및 확장 (중기 목표)
목표: 사용자 편의성을 극대화하고, 연산 서버를 클라우드로 이전하여 완전한 클라우드 네이티브 서비스를 구축합니다.
- [완료] LLM 기능 연동을 위한 Python 서버 구축:
FastAPI와LangChain을 사용하여 LLM 기능을 제공하는 별도의 Python 서버를 구축합니다.- 기존 NestJS 백엔드를 API 게이트웨이로 활용하여, 중앙화된 인증을 유지하면서 내부적으로 FastAPI 서버와 통신하는 아키텍처를 구현합니다.
- 연산 서버 클라우드 이전:
- [예정] 로컬 PC의
ComfyUI서버를Google Compute Engine(GCE)의 GPU 가상 머신으로 이전. - [예정] 비용 최적화를 위해
On-demand인스턴스와Spot VM을 상황에 맞게 사용하는 전략 수립.
- [예정] 로컬 PC의
- 사용자 편의 기능:
- [예정] RAG 기반 PDF 채팅 기능:
- 사용자가 PDF 파일을 업로드하면, 해당 문서의 내용에 대해 질문하고 답변을 받을 수 있는 기능.
- 세부 구현 계획:
- 아키텍처 설계:
comfy-langchain서버에 RAG 파이프라인을 구축하고, 기존PostgreSQL에pgvector를 도입하여 벡터 데이터베이스로 활용. - 백엔드 구현:
LangchainModule을 확장하여 PDF 업로드(R2저장) 및 채팅 요청을comfy-langchain으로 전달하는 API 엔드포인트 추가. - 프론트엔드 구현: PDF 업로드 및 채팅을 위한 전용 UI/UX 개발.
- 아키텍처 설계:
- [예정] 소셜 미디어 연동 및 원클릭 게시 기능:
- 프로필 설정에서 유튜브, X 등 SNS 계정을 직접 연동.
- 생성 결과물에 'SNS에 업로드' 버튼을 추가하고, 모달을 통해 게시할 플랫폼을 선택하여 한 번에 업로드 요청.
- 백그라운드 큐를 이용한 안정적인 업로드 처리.
- 세부 구현 계획:
- DB 기반 마련:
social_connections테이블을 위한 TypeORM Entity 및 마이그레이션 파일 생성. - API 골격 준비:
SocialModule,SocialController,SocialService등 NestJS 모듈 뼈대 구축. - 계정 연동 로직 구현: 유튜브(Google)를 시작으로 OAuth 2.0 기반의 SNS 계정 연동 및 토큰 저장/관리 로직 구현.
- 게시 기능 구현: NestJS의 작업 큐(Job Queue)를 이용하여 안정적인 백그라운드 업로드 기능 구현.
- DB 기반 마련:
- [예정] "나만의 워크플로우" 기능: 사용자가 자주 사용하는 파라미터 조합을 자신의 계정에 저장하고, 언제든지 다시 불러와 사용할 수 있는 기능.
- [예정] 태그 기반 템플릿 필터링 및 검색 기능 UI 구현.
- [예정] 생성 결과물 공유 기능 (공유 전용 링크 생성).
- [예정] RAG 기반 PDF 채팅 기능:
💰 Phase 4: 수익화 및 생태계 확장 (장기 비전)
목표: API 서비스를 제공하고 구독 모델을 도입하여 서비스의 지속 가능성을 확보하고, 커뮤니티 기능을 통해 생태계를 확장합니다.
- API 서비스 제공:
- [예정] 외부 개발자들이 SurfAI의 생성 기능을 자신의 서비스에 연동할 수 있도록 공개 API 및 관련 문서를 제공.
- [예정] API 키 발급 및 사용량 관리 시스템 구축.
- 수익 모델 도입:
- [예정] 구독 기반 요금제(
Free,Pro,Enterprise등) 도입. - [예정] 요금제별로 생성 가능 횟수, 동시 작업 수, 고급 기능 사용 여부 등을 제한.
- [예정] 구독 기반 요금제(
- 커뮤니티 기능:
- [예정] 사용자들이 자신의 생성 결과물을 공유하고 "좋아요"를 누르며 소통할 수 있는 갤러리/커뮤니티 기능.
- [예정] 인기 템플릿, 인기 생성물 등을 보여주는 랭킹 시스템.