📋

PRD (제품 요구사항 명세서)

프로젝트 전체 기능 명세, 아키텍처, 배포 가이드

📄 PRD.md 📏 -줄 💾 - 🌐 ad.uschool.kr

톡탁(TokTak) 클론 - Product Requirements Document (PRD)

프로젝트명: TokTak Clone (ad.uschool.kr)
버전: 1.0.0
작성일: 2026-03-09
도메인: https://ad.uschool.kr
기술 스택: PHP 8.2+ / MySQL 8.0 / Redis 7 / Nginx / Docker
원본 서비스: https://toktak.ai (보다플레이 VodaPlay)

1. 프로젝트 개요

1.1 목적

AI 기반 SNS 콘텐츠 자동화 플랫폼. 사용자가 상품 URL 하나만 입력하면 AI가 자동으로 쇼츠 영상, SNS 카드뉴스, 블로그 글을 동시에 생성하고, 연동된 SNS 채널에 자동 업로드까지 완료하는 풀오토메이션 시스템.

1.2 핵심 가치

  • 원클릭 콘텐츠 생성: URL → 영상 + 이미지 + 블로그 (6크레딧/회)
  • AI 감지 회피: 사람이 쓴 것처럼 자연스러운 한국어 콘텐츠
  • 스마트 자동 업로드: SNS별 최적 시간대에 자동 게시
  • 수익 창출: 파트너스 + 어필리에이트 + 구독 기반 수익모델

2. 시스템 아키텍처

2.1 기술 스택

구분기술버전
BackendPHP (Custom MVC)8.2+
DatabaseMySQL8.0
Cache/SessionRedis7
Web ServerNginxAlpine
AI EngineOpenAI API (GPT-4, TTS, DALL-E)Latest
VideoFFmpeg6.0+
FrontendTailwind CSS + Alpine.js + HTMX3.x
ContainerDocker + Docker Compose3.8
CI/CDGitHub ActionsLatest
SSLLet's Encrypt (Certbot)Latest
결제Stripe2024-04-10

2.2 디렉토리 구조

code
toktak-clone/
├── app/
│   ├── Config/          # Database, Router 핵심 설정
│   ├── Controllers/     # 10개 컨트롤러 (Auth, Content, SNS, Partner 등)
│   │   ├── Api/         # API 컨트롤러 (Voice, ContentSettings)
│   │   └── Admin/       # 관리자 컨트롤러 (Revenue)
│   ├── Services/        # 비즈니스 로직
│   │   ├── AI/          # ContentGenerator, ImageGenerator, VideoGenerator, HumanizeService
│   │   ├── SNS/         # SnsUploader
│   │   └── Scheduler/   # SnsScheduler (자동 업로드)
│   └── Views/           # PHP 템플릿 (10개 뷰)
├── chrome-extension/    # 크롬 확장프로그램 (Manifest V3)
├── config/              # app, database, services 설정
├── database/migrations/ # SQL 마이그레이션 (2개)
├── docker/              # Nginx, PHP 설정
├── public/              # index.php (진입점)
├── routes/              # web.php (80+ 라우트)
└── Docker/CI 파일들

2.3 인프라 구성도

code
[사용자] → [Nginx (443/SSL)] → [PHP-FPM (9000)]
                                      ↓
                              [MySQL] [Redis]
                                      ↓
                          [OpenAI API] [FFmpeg]
                                      ↓
                      [SNS APIs: YouTube, Instagram, TikTok, Twitter, Naver]

3. 핵심 기능 명세

3.1 콘텐츠 생성 파이프라인

Flow: URL 입력 → 스크래핑 → AI 분석 → 콘텐츠 생성 → 결과 표시

단계기능파일
Step 0URL 입력 + "생성하기" 버튼Views/dashboard/index.php
Step 1콘텐츠 타입/템플릿/시간 선택Views/content/create.php
Step 2스크립트 편집, 음성 미리듣기, 자막/BGM 설정Views/content/create-step2.php
Step 3AI 분석 진행 (4단계 프로그레스)Views/content/analysis.php
Step 4결과 (영상 + 이미지 + 블로그)Views/content/result.php

생성물 (1회 = 6크레딧):

  • 9:16 세로 영상 (15s / 30s / 60s) + TTS 나레이션 + 자막 + BGM
  • SNS 카드뉴스 이미지 (4가지 템플릿)
  • SEO 최적화 블로그 글 (1000~2000자)

3.2 음성 미리듣기 시스템

10개 AI 보이스 (6 여성 + 4 남성):

ID이름OpenAI Voice성별
documentary_female다큐 나레이션nova
ai_assistant_femaleAI 어시스턴트shimmer
ad_narrator_female광고 나레이터echo
news_anchor_female뉴스 앵커alloy
kindergarten_female유치원 선생님nova (pitch)
asmr_femaleASMRshimmer (slow)
finance_male경제 전문가onyx
radio_dj_male라디오 DJfable
lecturer_male강사/교수echo (male)
business_male비즈니스onyx (formal)
  • TTS API 미리듣기 + Web Speech API 폴백
  • 세션 기반 오디오 캐싱 (1시간 TTL)
  • 속도 조절 (0.75x ~ 2.0x)

3.3 SNS 자동 업로드 스케줄러

파일: app/Services/Scheduler/SnsScheduler.php

플랫폼주간 빈도최적 시간대요일
YouTube주 2-3회14:00-18:00화/목/토
Instagram일 1-2회11:00-13:00, 19:00-21:00매일
TikTok일 1-3회07:00-09:00, 12:00-14:00, 19:00-22:00매일
Twitter/X일 3-5회08:00-09:00, 12:00-13:00, 18:00-19:00매일
네이버 블로그일 1회09:00-11:00평일 위주

Human-like 패턴:

  • ±15~45분 랜덤 지터 (정확한 시간 회피)
  • 8~20% 확률로 업로드 건너뛰기
  • 주말 패턴 차별화 (늦은 시작, 적은 빈도)
  • 연속 업로드 간 최소 30분 간격

3.4 AI 감지 회피 시스템 (HumanizeService)

파일: app/Services/AI/HumanizeService.php

기법설명
톤 변환격식체 → 비격식체 (ㅎㅎ, ㅋㅋ, 진짜, 완전 등)
감정 삽입개인 경험/감정 문구 자동 추가 ("저도 써봤는데 대박이에요")
의도적 불완전성3% 확률 띄어쓰기 오류, 5% 마침표 누락
플랫폼별 톤Instagram=캐주얼, YouTube=친근전문, Blog=상세존댓말, TikTok=초캐주얼
메타데이터 자연화기기/앱 정보 시뮬레이션, 수정 이력 생성
구조 변형문장 순서 셔플, 접속사/간투사 삽입

3.5 멀티 플랫폼 스크래핑

파일: app/Services/Scraper/ProductScraper.php

지원 플랫폼: 쿠팡, 알리익스프레스, 네이버 스마트스토어, 11번가, G마켓, 아마존, 일반 웹페이지

추출 데이터: 상품명, 가격, 이미지(최대 10장), 상세 설명, 평점, 리뷰 수, 카테고리

24시간 캐시 + User-Agent 로테이션

3.6 크롬 확장프로그램

디렉토리: chrome-extension/

  • Manifest V3 기반
  • 7개 쇼핑몰 자동 인식 + 상품 데이터 추출
  • 원클릭 콘텐츠 생성 (팝업 UI)
  • 실시간 진행률 추적 + 완료 알림
  • Bearer 토큰 인증 (chrome.storage)

4. 수익 모델

상세 문서: REVENUE_MODEL.md

4.1 주요 수익원

수익원모델예상 비중
구독 요금제무료/₩19,900/₩49,900/₩89,900 월45%
크레딧 추가 구매₩9,900~₩119,900 패키지25%
파트너스 수수료추천 커미션 10~30%15%
어필리에이트쿠팡/알리 제휴 링크 전환10%
API 판매개발자용 콘텐츠 생성 API5%

4.2 구독 플랜 상세

플랜월 가격크레딧SNS 채널AI 모드주요 기능
무료₩0302개기본15초 영상
스타터₩19,900100+50보너스5개기본30초, 비디오 에디팅, 블로그
프로₩49,900300+100보너스무제한프로60초, 에이전트, 다국어, 분석
엔터프라이즈₩89,9001000+300보너스무제한엔터프라이즈API, 화이트라벨, 전담매니저

연간 결제: 20% 할인

4.3 12개월 수익 예측

유료 사용자월 매출(₩)
1502,670,000
32008,310,000
655020,280,000
121,20037,360,000
연간 합계₩220,400,000

5. 데이터베이스 스키마

5.1 마이그레이션 파일

파일테이블 수설명
001_create_tables.sql17개핵심 테이블 (users, contents, sns_channels 등)
002_revenue_tables.sql8개수익 관련 (subscription_plans, referral_codes 등)

5.2 핵심 테이블 목록 (총 25개)

사용자/인증: users, audit_logs

콘텐츠: contents, content_items, scrape_cache

SNS: sns_channels, upload_jobs, upload_logs

수익: subscription_plans, credit_packages, credit_transactions, subscriptions

파트너스: partners, partner_earnings, referral_codes, referral_tracking

어필리에이트: affiliate_links, short_url_clicks

결제: stripe_sessions, payout_requests

기타: multi_links, multi_link_items, follow_exchanges, notifications


6. API 엔드포인트

6.1 웹 라우트 (80+)

그룹라우트 수인증 필요
Auth (인증)7일부
Dashboard2O
Content (콘텐츠)7O
SNS (소셜)10O
MultiLink6O
Follow5O
Pricing (요금)4일부
Partner (파트너스)5O
Credits (크레딧)1O
Guide2X
Profile5O
Admin (관리자)12O (admin)
API14API Key
Webhook1Signature
Health1X

6.2 주요 API 엔드포인트

code
POST /api/content/generate       # AI 콘텐츠 생성
POST /api/scrape/url             # URL 스크래핑
POST /api/voice/preview          # 음성 미리듣기
POST /api/content/save-settings  # 설정 저장
POST /api/content/recommend-style # AI 스타일 추천
POST /api/upload/sns             # SNS 업로드
GET  /api/credits/balance        # 크레딧 조회
GET  /api/analytics/overview     # 통계 개요

7. 보안 설정

7.1 Nginx 보안 헤더

  • X-Frame-Options: SAMEORIGIN
  • X-Content-Type-Options: nosniff
  • X-XSS-Protection: 1; mode=block
  • Content-Security-Policy
  • Strict-Transport-Security (HSTS)
  • Referrer-Policy: strict-origin-when-cross-origin

7.2 애플리케이션 보안

  • CSRF 토큰 (모든 POST 요청)
  • Stripe Webhook 서명 검증
  • OAuth 2.0 (Google, Facebook)
  • Bearer Token API 인증
  • Rate Limiting (API: 1000r/m, Upload: 10r/m)
  • SESSION_SECURE=true, SESSION_DOMAIN=ad.uschool.kr

7.3 SSL/TLS

  • Let's Encrypt 자동 갱신 (Certbot)
  • TLSv1.2 + TLSv1.3
  • HTTP → HTTPS 자동 리다이렉트

8. 배포 가이드

8.1 서버 요구사항

항목최소권장
CPU2 vCPU4 vCPU
RAM4 GB8 GB
Storage50 GB SSD100 GB SSD
OSUbuntu 22.04Ubuntu 22.04
Docker24.0+Latest

8.2 배포 단계

bash
# 1. 서버에 프로젝트 업로드
scp toktak-clone.zip user@ad.uschool.kr:~/

# 2. 압축 해제
unzip toktak-clone.zip && cd toktak-clone

# 3. 환경 설정
cp .env.docker .env
nano .env  # API 키, DB 비밀번호 등 수정

# 4. SSL 인증서 발급
docker-compose -f docker-compose.yml -f docker-compose.prod.yml run certbot

# 5. Docker 빌드 및 실행
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build

# 6. DB 마이그레이션 확인
docker exec toktak-app php -r "echo 'PHP OK';"

# 7. 헬스 체크
curl https://ad.uschool.kr/health

8.3 필수 환경변수 (.env)

code
APP_URL=https://ad.uschool.kr
OPENAI_API_KEY=sk-...                    # OpenAI API 키 (필수)
DB_PASSWORD=<강력한비밀번호>               # MySQL 비밀번호
REDIS_PASSWORD=<강력한비밀번호>            # Redis 비밀번호
STRIPE_SECRET_KEY=sk_live_...            # Stripe 결제 키
GOOGLE_CLIENT_ID=...                      # Google OAuth
YOUTUBE_API_KEY=...                       # YouTube 업로드용
INSTAGRAM_APP_ID=...                      # Instagram 연동
TIKTOK_CLIENT_KEY=...                     # TikTok 연동

9. 파일 목록 (86개)

9.1 코드 통계

구분파일 수코드 라인
PHP (Controllers)12~5,500
PHP (Services)7~3,200
PHP (Views)10~4,500
PHP (Config/Routes)8~1,800
SQL (Migrations)2~880
JS (Chrome Ext)3~1,050
HTML/CSS3~500
Docker/CI/Deploy8~550
합계86~16,000

9.2 주요 파일 경로

code
# 핵심 코드
app/Controllers/ContentController.php        # 콘텐츠 생성 위자드
app/Controllers/PartnerController.php        # 파트너스 시스템
app/Services/AI/ContentGenerator.php         # GPT-4 콘텐츠 생성
app/Services/AI/VideoGenerator.php           # FFmpeg 영상 합성
app/Services/AI/HumanizeService.php          # AI 감지 회피
app/Services/Scheduler/SnsScheduler.php      # 자동 업로드 스케줄러
app/Services/Scraper/ProductScraper.php      # 멀티플랫폼 스크래핑

# 프론트엔드
app/Views/content/create-step2.php           # 음성 미리듣기 (핵심 UI)
app/Views/pricing/index.php                  # 요금제 페이지
app/Views/partner/dashboard.php              # 파트너스 대시보드

# 데이터베이스
database/migrations/001_create_tables.sql    # 17개 핵심 테이블
database/migrations/002_revenue_tables.sql   # 8개 수익 테이블

# 크롬 확장
chrome-extension/manifest.json               # Manifest V3
chrome-extension/content/content-script.js   # 상품 추출
chrome-extension/popup/popup.html            # 팝업 UI

# 배포
docker-compose.yml                           # 개발 환경
docker-compose.prod.yml                      # 프로덕션 환경
docker/nginx/default.conf                    # Nginx (ad.uschool.kr)
.github/workflows/deploy.yml                 # CI/CD

10. 향후 로드맵

Phase 2 (3~6개월)

  • [ ] 모바일 앱 (React Native)
  • [ ] Chrome 확장프로그램 프리미엄 (₩4,900/월)
  • [ ] 쓰레드(Threads) / 블루스카이 SNS 추가
  • [ ] A/B 테스트 시스템

Phase 3 (6~12개월)

  • [ ] AI 학습 마켓플레이스
  • [ ] 브랜드 협업 매칭 시스템
  • [ ] 다국어 지원 (일본어, 영어, 베트남어)
  • [ ] 어드민 대시보드 고도화

Phase 4 (12~18개월)

  • [ ] B2B SaaS 솔루션
  • [ ] 해외 시장 진출 (일본, 동남아)
  • [ ] 자체 AI 모델 파인튜닝
  • [ ] 월 ₩490M 매출 목표

부록

A. 관련 문서

  • ANALYSIS.md - 원본 TokTak 서비스 상세 분석
  • REVENUE_MODEL.md - 수익 모델 상세 (969줄)
  • README.md - 프로젝트 개요
  • SETUP.md - 설치 가이드

B. 외부 의존성

  • OpenAI API (GPT-4, TTS, DALL-E)
  • Stripe (결제)
  • Google/Facebook OAuth
  • YouTube/Instagram/TikTok/Twitter/Naver API
  • FFmpeg (영상 합성)
  • Let's Encrypt (SSL)

C. 라이선스

학습 및 참고용 프로젝트. 상업적 사용 시 원본 서비스(toktak.ai) 라이선스 확인 필요.