🎯 개요
핵심 전략
초기 스타트업(인력 부족)을 위한 현실적인 아키텍처
- ✅ 단계적 성장: 정보 플랫폼 → 제품 판매
- ✅ 언어 통일: JavaScript로 프론트+백엔드 (Node.js)
- ✅ 단계적 배포: rsync → Railway → CI/CD
- ✅ 모놀리식 구조 (개발 속도 우선)
- ✅ 무료/저비용 티어 최대 활용
- ✅ 외부 AI API (자체 개발 X)
💡 비즈니스 모델 변화
| 단계 | 목적 | 수익원 |
|---|---|---|
| Phase 0 | 피부 정보 관리 플랫폼(Pilot 데모) (제품 판매 없음) |
분석 서비스 검토 |
| Phase 1 | 피부 정보 관리 플랫폼(Beta Test 서비스) (제품 판매 없음) |
분석 서비스 판매 3,000~5,000원/건 |
| Phase 2 | 맞춤형 화장품 판매 (자사 제품 출시 후) |
분석 서비스 + 제품 판매 마진 40~50% |
🎯 핵심: 타사 제품 사용자도 환영! → 피부 정보 자체가 가치 → 호기심으로 고객 유입 → 나중에 자사 제품 자연스럽게 연결
🔄 원본 설계 vs 현실적 설계
| 항목 | 원본 설계 (이상적) | 현실적 MVP |
|---|---|---|
| 아키텍처 | 마이크로서비스 | 모놀리식 |
| 인프라 | AWS ECS + RDS + ElastiCache | Railway + Supabase |
| AI | 자체 GPU 서버 (EC2 g4dn) | 외부 API (Replicate) |
| 개발 기간 | 6개월 | 2~3개월 |
| 필요 인력 | 7~10명 (동시 채용 어려움) | 1~2명 (경험자) |
| 인건비 | 6,400만원/월 | 830만원/월 |
| 총 개발 비용 | 4.04억원 (6개월 인건비 + 인프라 구축) |
3,000만원 (3개월 인건비 + 인프라 구축) |
| 인프라 월 비용 | $1,500~2,000/월 | $10~30/월 |
❌ 원본 설계의 문제점(검토 미비점)
- 마이크로서비스 (초기에는 과도한 복잡도)
- Auto Scaling, Multi-AZ (불필요한 비용)
- ECS Fargate, GPU 인스턴스 (높은 인프라 비용)
- RabbitMQ, Redis Cluster (운영 부담)
💀 치명적 문제: 대규모 인력 필요
7~10명의 개발팀이 필요합니다:
프론트엔드 2명 + 백엔드 3명 + DevOps 2명 + AI 2명 + PM 1명
⚠️ 인력 구성의 현실적 어려움
| 직군 | 필요 인원 | 현실적 문제 |
|---|---|---|
| 프론트엔드 | 2명 | Svelte 경험자 채용 어려움 |
| 백엔드 | 3명 | Python + Node.js 동시 필요, 언어 혼재 |
| DevOps | 2명 | AWS 전문가, 마이크로서비스 경험 필요 |
| AI 엔지니어 | 2명 | 높은 연봉, 채용 경쟁 치열 |
| PM | 1명 | 기술 이해 + 관리 능력 필요 |
🚨 핵심 문제:
→ 이 정도 인력을 동시에 구하기는 거의 불가능
→ 단계적 채용 필요 (채용 기간만 2~3개월)
→ 팀 빌딩 + 협업 프로세스 구축 필요 (추가 1개월)
→ 실제로는 9~12개월 소요
💸 막대한 인건비 부담
| 직군 | 인원 | 월 평균 급여 | 월 총액 |
|---|---|---|---|
| 프론트엔드 (중급) | 2명 | 500만원 | 1,000만원 |
| 백엔드 (중급~고급) | 3명 | 600만원 | 1,800만원 |
| DevOps (고급) | 2명 | 700만원 | 1,400만원 |
| AI 엔지니어 (고급) | 2명 | 800만원 | 1,600만원 |
| PM | 1명 | 600만원 | 600만원 |
| 월 총 인건비 | 6,400만원 | ||
💰 총 비용 계산
개발 기간: 6개월 (채용 완료 후)
→ 6,400만원/월 × 6개월 = 3.84억원
+ 채용 비용: 약 1,000만원 (헤드헌팅 수수료)
+ 사무실/장비: 약 1,000만원
+ AWS 인프라: $1,500/월 × 6개월 = 약 1,200만원
총계: 약 4.04억원 💸💸💸
⚠️ 결론: 초기 스타트업에는 현실적으로 불가능
- 4억원 이상의 자금 필요 (시드 투자 수준)
- 7~10명 동시 채용 불가능 (3~6개월 소요)
- 팀 빌딩 + 실제 개발 = 9~12개월
- 출시 전 매출 없음 (순수 비용)
- → 인력/자금 부족 스타트업에는 부적합
🗄️ 현실적인 데이터베이스 전략
💡 현실적인 접근: 처음부터 DB 사용 + JSON 컬럼 활용
Phase 0 (Pilot)에서도 최소한의 웹서비스는 필요합니다:
✅ 사용자 로그인 → users 테이블 필수
✅ 검사 결과 저장 → 히스토리 관리 필요
✅ 데이터 조회 → DB 없이 불가능
🎯 Phase 0 전략: MySQL + JSON 컬럼 (빠른 파일럿)
• 기존 MySQL 서버 활용 (이미 있음)
• 기본 테이블만 간단하게 (users, analyses)
• 자주 변경되는 데이터는 JSON 컬럼에 저장
• 빠르게 데모 완성, 투자 유치 집중!
🎯 Phase 1 전략: Supabase로 새로 시작 (정식 서비스) ⭐
• 투자 받은 후 처음부터 제대로 만들기
• JSONB 컬럼 + Auth + Storage 올인원
• 클라우드 네이티브로 자동 확장
• Phase 0 경험을 바탕으로 완벽하게 설계!
⚠️ 초기 Pilot 단계의 특징
투자 유치 / 바이어 데모용 개발은:
❌ 검사 결과 상세 항목이 자주 변경됨
❌ 분석 항목 추가/삭제가 빈번함
❌ UI 표시 형식이 계속 바뀜
하지만 변하지 않는 것들:
✅ 사용자 정보 (id, email, password, 가입일)
✅ 검사 기본 정보 (검사ID, 사용자ID, 날짜)
✅ 파일 정보 (업로드 이미지 URL)
💡 전략: 안정적인 부분은 테이블, 변하는 부분은 JSON!
| 단계 | 데이터베이스 | 추천 이유 | 비용 |
|---|---|---|---|
| Phase 0 (Pilot/데모) |
MySQL (기존 서버) |
✅ 기존 MySQL 서버 활용 (이미 있음) ✅ 빠른 파일럿 개발 (익숙한 환경) ✅ JSON 컬럼으로 유연성 확보 ✅ 간단한 스키마 (2~3개 테이블) ✅ 로그인 직접 구현 (간단히) ⚠️ 투자 유치/데모용 임시 구조 |
$0 (기존 서버) |
| Phase 1 (정식 출시) |
Supabase PostgreSQL 무료 티어 ⭐ |
✅ 처음부터 새로 설계! (Phase 0 경험 반영) ✅ Supabase Auth (로그인 자동) ✅ JSONB 컬럼 + 인덱싱 ✅ Storage 1GB 무료 (이미지) ✅ Row Level Security 보안 ✅ 클라우드 네이티브, 자동 확장 |
$0 |
| Phase 2 (성장기) |
Supabase Pro ⭐ |
✅ 용량 증가 (8GB → 무제한) ✅ Point-in-time Recovery 백업 ✅ 우선 기술 지원 ✅ 일일 백업 7개 유지 ✅ 성능 향상 (더 많은 리소스) |
$25/월 |
🎯 Phase 0: MySQL + JSON 컬럼 (빠른 파일럿)
Phase 0 스키마 설계 (최소한, 데모용)
-- 1. 사용자 테이블 (간단하게!)
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
name VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 2. 검사 결과 테이블 (JSON 컬럼 활용!) ⭐
CREATE TABLE skin_analyses (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT NOT NULL,
image_url VARCHAR(500),
result_json JSON, -- 여기에 모든 분석 결과! (유연하게)
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id)
);
-- 끝! 이게 전부입니다. 빠르게 데모 만들기!
Phase 1: Supabase PostgreSQL로 새로 시작! ⭐
-- Phase 0 경험을 바탕으로 처음부터 제대로!
-- 1. 사용자 프로필 (Supabase Auth 자동 연동)
CREATE TABLE profiles (
id UUID PRIMARY KEY REFERENCES auth.users(id),
name TEXT,
phone TEXT,
avatar_url TEXT,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- 2. 검사 결과 테이블 (JSONB로 업그레이드!)
CREATE TABLE skin_analyses (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES auth.users(id),
image_url TEXT,
result_json JSONB, -- JSONB로 인덱싱 가능! ⭐
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- JSONB 인덱스로 빠른 검색
CREATE INDEX idx_skin_analyses_result ON skin_analyses USING GIN (result_json);
-- Row Level Security (보안 강화!)
ALTER TABLE profiles ENABLE ROW LEVEL SECURITY;
ALTER TABLE skin_analyses ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Users can view own profile" ON profiles
FOR SELECT USING (auth.uid() = id);
CREATE POLICY "Users can view own analyses" ON skin_analyses
FOR SELECT USING (auth.uid() = user_id);
Phase 0: JSON 컬럼 활용 (Node.js + MySQL)
// 검사 결과 저장 (JSON으로 자유롭게!)
const resultJson = {
skinType: 'oily',
concerns: ['acne', 'pores'],
scores: {
moisture: 45,
elasticity: 60,
wrinkles: 30
},
// 나중에 추가되는 필드도 자유롭게!
newFeature: 'dynamically added'
};
await db.query(
'INSERT INTO skin_analyses (user_id, image_url, result_json) VALUES (?, ?, ?)',
[userId, imageUrl, JSON.stringify(resultJson)]
);
// 조회 시
const results = await db.query(
'SELECT * FROM skin_analyses WHERE user_id = ?',
[userId]
);
const parsed = JSON.parse(results[0].result_json);
console.log(parsed.skinType); // 'oily'
Phase 0 장점 (MySQL + JSON):
- ✅ 기존 서버 활용 (추가 비용 없음)
- ✅ 빠른 개발 (익숙한 환경)
- ✅ JSON 컬럼으로 유연성
- ✅ 로그인, 히스토리 관리 가능
- ⚠️ 데모/투자 유치용 임시 구조
Phase 1: JSONB 컬럼 활용 (Supabase SDK) ⭐
import { createClient } from '@supabase/supabase-js';
const supabase = createClient(SUPABASE_URL, SUPABASE_KEY);
// 검사 결과 저장 (JSONB로 자유롭게!)
const resultJson = {
skinType: 'oily',
concerns: ['acne', 'pores'],
scores: { moisture: 45, elasticity: 60, wrinkles: 30 },
// Phase 0 경험으로 추가된 새 필드들
aiConfidence: 0.95,
recommendations: ['product1', 'product2']
};
const { data, error } = await supabase
.from('skin_analyses')
.insert({
user_id: userId,
image_url: imageUrl,
result_json: resultJson // 자동으로 JSONB로 변환!
});
// 조회 시 (자동 파싱!)
const { data: analyses } = await supabase
.from('skin_analyses')
.select('*')
.eq('user_id', userId);
console.log(analyses[0].result_json.skinType); // 'oily'
// JSONB 쿼리 (특정 필드로 검색!)
const { data: oilySkin } = await supabase
.from('skin_analyses')
.select('*')
.eq('result_json->skinType', 'oily'); // JSONB 내부 검색!
Phase 1 장점 (Supabase + JSONB):
- ✅ Auth (로그인) 자동 - 직접 구현 불필요!
- ✅ Storage (이미지) 1GB 무료 - S3 필요 없음!
- ✅ JSONB 인덱싱으로 빠른 검색
- ✅ Row Level Security 보안
- ✅ 자동 백업, API 자동 생성
- ✅ 클라우드 네이티브, 자동 확장
- ✅ Phase 0 경험을 바탕으로 완벽하게!
- ✅ 관리 UI 제공
- ✅ Row Level Security (보안)
💡 Phase 0 (MySQL) vs Phase 1 (Supabase) 비교
| 항목 | Phase 0 (MySQL) | Phase 1 (Supabase) ⭐ |
|---|---|---|
| 목적 | 파일럿/데모/투자 유치 | 정식 서비스 출시 |
| 개발 방식 | 빠르게 임시로 | 처음부터 제대로! |
| 데이터베이스 | MySQL + JSON 컬럼 | PostgreSQL + JSONB ⭐ |
| 인증 | 직접 구현 (간단히) | Supabase Auth (자동) ⭐ |
| 파일 저장 | 서버 디스크 또는 별도 서비스 | Supabase Storage 1GB ⭐ |
| 배포 | rsync (수동) | Vercel/Railway (자동) ⭐ |
| 비용 | $0 (기존 서버) | $0 (무료 티어) |
| 데이터 이전 | - | 선택적 마이그레이션 or 새로 시작 |
🔄 Phase 0 → Phase 1 전환 전략
✅ 투자 유치 완료
✅ 사용자 피드백 충분히 수집
✅ 비즈니스 모델 검증 완료
✅ 정식 서비스 준비 완료
옵션 A: 처음부터 새로 만들기 (추천!) ⭐
• Phase 0 경험을 바탕으로 완벽하게 재설계
• Supabase에서 깨끗하게 시작
• Phase 0 데이터는 테스트 데이터로만 활용
• 사용자에게 "정식 오픈" 알리고 재가입 유도
→ 가장 깔끔하고 빠른 방법!
옵션 B: 데이터 마이그레이션
• MySQL → Supabase 데이터 이전
• 스크립트 작성 필요 (1~2일)
• 사용자 비밀번호 재설정 필요
• 이미지 파일도 Storage로 이전
→ Phase 0 사용자가 많다면 고려
Phase 0 데이터는 투자 유치/데모용이므로 버려도 됩니다.
정식 서비스는 Phase 0 경험을 바탕으로 완벽하게 만드세요!
🎯 Phase 1 Supabase 무료 티어로 충분!
| 리소스 | 무료 티어 제공량 | Phase 1 예상 사용량 | 충분 여부 |
|---|---|---|---|
| DB 용량 | 500MB | ~200MB (사용자 1,000명) | ✅ 충분 |
| Storage | 1GB | ~500MB (이미지 500장) | ✅ 충분 |
| Auth 사용자 | 무제한 | ~1,000명 | ✅ 충분 |
| API 요청 | 무제한 | 월 50,000건 | ✅ 충분 |
→ Phase 1을 무료로 운영 가능! 🎉
→ Phase 2부터 Pro ($25/월)로 업그레이드!
📝 Phase 0 → Phase 1 전환 (개발팀 필요 : 새로 시작!)
⚠️ 중요: Phase 1은 처음부터 새로 만듭니다!
Phase 0 (Pilot/데모 - MySQL):
• users 테이블 (로그인 직접 구현)
• skin_analyses 테이블 (result_json JSON 활용)
• 기존 서버 rsync 배포
• 간단한 구조, 빠른 개발
• → 투자 유치/데모용 임시 시스템
Phase 1 (정식 서비스 - Supabase):
• auth.users (Supabase Auth, 자동 관리) ⭐
• profiles 테이블 (사용자 정보)
• skin_analyses 테이블 (result_json JSONB로 업그레이드!) ⭐
• products 테이블 (제품 정보)
• orders 테이블 (주문 관리)
• reviews 테이블 (리뷰 관리)
• Supabase Storage (이미지 1GB 무료)
• Vercel/Railway 자동 배포
• Row Level Security (RLS) 보안 강화
• → Phase 0 경험을 바탕으로 완벽하게 재설계!
💡 핵심: Phase 0는 버리고 새로 시작!
→ Phase 0는 투자 유치/학습용
→ Phase 1은 Phase 0 경험으로 완벽하게
→ 필요하면 데이터만 선택적 마이그레이션
→ 깔끔한 시작으로 기술 부채 없음!
✅ 사용자가 실제로 어떤 기능을 쓰는지
✅ 어떤 데이터가 필요한지
✅ UI/UX에서 개선할 점
✅ 비즈니스 모델 검증
→ 이 경험으로 Phase 1을 더 완벽하게 만들 수 있습니다!
💻 단계별 기술 스택
Phase 0: Pilot/데모 (투자 유치, 빠른 파일럿)
| 구성요소 | 솔루션 | 비용 | 이유 |
|---|---|---|---|
| 프론트엔드 | Svelte (rsync 배포) | $0 | 기존 서버 활용 |
| 데이터베이스 | MySQL (JSON 컬럼 활용!) | $0 | 기존 서버 DB, 로그인/검사 이력 |
| 인증 | JWT 직접 구현 (간단히) | $0 | 빠른 구현, 임시용 |
| 파일 저장 | 서버 디스크 또는 S3 | $0~5/월 | 피부 사진 업로드 (간단히) |
| 백엔드 | Node.js Express (간단) | $0 | rsync로 함께 배포 |
| AI | Replicate API (저렴한 티어) | $0~1/월 | 실제 AI 분석 (100건 이하) |
| 총계 | $0~6/월 | 기존 서버 활용! | |
🎯 Phase 0 목표: 8~12주 만에 데모 완성, 투자 유치/바이어 미팅
핵심: 기존 MySQL 서버로 빠르게 파일럿 개발!
스키마: 간단한 2개 테이블 + JSON 컬럼으로 유연성 확보
⚠️ 임시 시스템: Phase 1에서 Supabase로 새로 시작!
📝 Phase 0 최소 스키마 (MySQL + JSON)
users: id, email, password_hash, name, created_at
skin_analyses: id, user_id, image_url, result_json, created_at
→ 설정 시간: 10분 (기존 MySQL 활용)
→ result_json (JSON 타입)에 모든 변하는 데이터 저장
→ 빠르게 만들고 투자 유치에 집중!
📝 Phase 1 스키마 (Supabase + JSONB) ⭐
auth.users (Supabase 자동 관리) ⭐
profiles: id, name, phone, avatar_url, created_at
skin_analyses: id, user_id, image_url, result_json, created_at
products: id, name, price, description, images, stock
orders: id, user_id, product_id, status, created_at
reviews: id, user_id, product_id, rating, comment
→ 설정 시간: 30분 (Supabase 세팅 + 스키마 작성)
→ result_json (JSONB 타입)으로 인덱싱 가능!
→ Phase 0 경험을 바탕으로 완벽하게 설계!
Phase 1: 정식 출시 (Supabase로 새로 시작!) ⭐
| 구성요소 | 솔루션 | 비용 | 변경 사항 |
|---|---|---|---|
| 프론트엔드 | Svelte (Vercel/Netlify) ⭐ | $0 | rsync → 자동 배포로 전환 |
| 데이터베이스 | Supabase PostgreSQL (새로 시작!) ⭐ | $0 (500MB) | MySQL → Supabase로 전환 |
| 인증 | Supabase Auth (자동!) ⭐ | $0 | JWT 직접 구현 → Supabase Auth |
| 파일 저장 | Supabase Storage (자동!) ⭐ | $0 (1GB) | 서버 디스크/S3 → Supabase Storage |
| 백엔드 서버 | Railway (Node.js Express) ⭐ | $5~20/월 | rsync → Railway 자동 배포 |
| AI 분석 | Replicate API | $5~30/월 | 사용량 증가 |
| 이메일 | Resend | $0 (3,000건) | 추가 |
| 총계 | $10~50/월 | Railway + AI | |
🎯 Phase 1 목표: 사용자 1,000명까지 확보, 정식 서비스 출시
전환 조건: 투자 확보 + Phase 0 경험 축적
핵심 변화: MySQL → Supabase로 전환 (새로 시작!)
배포: rsync → Railway/Vercel 자동 배포
💡 Phase 0 경험을 바탕으로 완벽하게 재설계!
Phase 2: 성장기 (사용자 1,000명+)
| 구성요소 | 솔루션 | 비용 |
|---|---|---|
| Supabase Pro | 8GB 스토리지, 일일 백업 | $25/월 |
| Railway (스케일업) | 더 많은 리소스 | $20~50/월 |
| AI API | 사용량 증가 | $30~100/월 |
| 총계 | $75~175/월 | |
🚀 단계별 배포 전략
Phase 0: rsync 배포 (현재) ✅
방식: 로컬에서 빌드 → rsync로 서버에 전송
# frontDeploy.sh (현재 사용 중)
#!/bin/bash
yarn build
rsync -avz build/ user@server:/var/www/html/
장점:
- 간단하고 직관적
- 비용: $0 (서버 있으면)
- 빠른 반복 개발
- 외부 의존성 없음
단점:
- 수동 배포 (실수 가능)
- 롤백 어려움
- 팀 협업 시 충돌
Phase 1: Railway/Render 전환 (사용자 1,000명+)
전환 시점: 사용자 증가 시 관리 부담 증가할 때
방식: Git Push → 자동 배포
# Railway 배포 (자동)
git push origin main
→ Railway가 자동 감지
→ 빌드 + 배포 + HTTPS 설정
장점:
- 자동 배포 (실수 방지)
- 자동 HTTPS
- 롤백 간단 (클릭 한 번)
- 모니터링 내장
- Auto Scaling
비용: $5~20/월 (트래픽에 따라)
Phase 2: CI/CD 자동화 (사용자 10,000명+)
전환 시점: 팀 규모 증가, 배포 빈도 높아질 때
방식: GitHub Actions → 테스트 → 자동 배포
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: npm test
deploy:
needs: test
runs-on: ubuntu-latest
steps:
- run: railway deploy
장점:
- 자동 테스트 (버그 방지)
- 자동 배포 (인력 절감)
- Blue-Green 배포 (무중단)
- 실패 시 자동 롤백
비용: GitHub Actions 무료 (월 2,000분)
| 단계 | 배포 방식 | 적합한 시점 | 비용 |
|---|---|---|---|
| 현재 | rsync 스크립트 | 개발 초기, 1~2명 | $0 |
| Phase 1 | Railway/Render | 사용자 1,000명+ | $5~20/월 |
| Phase 2 | CI/CD (GitHub Actions) | 팀 3명+, 사용자 10,000명+ | $0 (무료) |
🤔 백엔드 언어: Python vs Node.js
⭐ 결론: Node.js 추천!
🎯 COTELEAF Project는 AI를 외부 API로 사용합니다.
→ Python의 핵심 장점(AI/ML 라이브러리)이 필요 없습니다!
→ Node.js가 모든 면에서 더 유리합니다!
- AI 모델 직접 개발
- GPU 서버 운영
- 이미지 처리 직접 구현
- 외부 AI API 사용
- 언어 통일 (프론트+백)
- 빠른 개발, 낮은 비용
🆚 상세 비교
| 항목 | Python | Node.js | 승자 | 비고 |
|---|---|---|---|---|
| AI 직접 개발 | ⭐⭐⭐⭐⭐ PyTorch, TensorFlow GPU 최적화 |
⭐⭐ 가능하지만 약함 라이브러리 부족 |
🐍 Python | 별도 AI 서버 개발 시 사용 사용자 10만명 이상일 때 |
| 외부 API 호출 | ⭐⭐⭐ 동기/비동기 혼용 requests, httpx |
⭐⭐⭐⭐⭐ 비동기 I/O 최적화 fetch, axios |
🟢 Node.js | COTELEAF Project 적합 AI는 외부 API 사용 |
| 성능(처리속도) | ⭐⭐⭐ 단일 스레드 CPU 집약적 작업 느림 |
⭐⭐⭐⭐ 이벤트 루프 I/O 작업 빠름 |
🟢 Node.js | API 서버에 유리 동시 접속 처리 우수 |
| 언어 통일 | ❌ JavaScript와 다름 팀 분리 필요 |
✅ 프론트와 동일 코드 재사용 가능 |
🟢 Node.js | 생산성 최대화 개발자 1명 가능 |
| 개발자 구하기 | ⭐⭐⭐ 보통 백엔드 전문가 |
⭐⭐⭐⭐⭐ 풀스택 JS 많음 프론트도 가능 |
🟢 Node.js | 채용 비용 절감 연봉 10-20% 저렴 |
| 학습 곡선 | ⭐⭐⭐ 독립 학습 필요 문법 새로 배움 |
⭐⭐⭐⭐⭐ 프론트 개발자 즉시 가능 추가 학습 최소 |
🟢 Node.js | 빠른 시작 1주일 안에 생산 가능 |
| 배포 간단함 | ⭐⭐⭐ gunicorn, uvicorn 가상환경 관리 |
⭐⭐⭐⭐⭐ node server.js 패키지 관리 쉬움 |
🟢 Node.js | Railway/Render 최적화 자동 배포 지원 |
| npm/pip 생태계 | ⭐⭐⭐⭐ 270만 패키지 AI/데이터 강세 |
⭐⭐⭐⭐⭐ 350만 패키지 웹 개발 강세 |
🟢 Node.js | 웹 서비스 최적 모든 기능 패키지 존재 |
✅ Node.js의 핵심 장점 (COTELEAF Project)
- 언어 통일: Svelte (프론트) + Node.js (백엔드) = JavaScript만! 코드 재사용, 쉬운 디버깅
- 풀스택 가능: 개발자 1명이 전체 개발 가능, 인건비 50% 절감
- 비동기 I/O 성능: 외부 API 호출(Replicate, Supabase, 결제)이 많은 우리 서비스에 최적!
- 높은 동시성: 이벤트 루프로 수천 명 동시 접속 처리, Python보다 2-3배 빠름
- 쉬운 채용: 풀스택 JS 개발자 연봉이 Python 전문가보다 10-20% 저렴
- 빠른 학습: 프론트엔드 개발자가 1주일 안에 백엔드 개발 가능
- 배포 간편: Railway/Render에서 Node.js 자동 감지 및 최적화 지원
💡 핵심: 우리는 AI를 직접 개발하지 않으므로 Python의 장점(PyTorch, TensorFlow)이 필요 없습니다!
외부 API 호출 중심 서비스 → Node.js가 압도적으로 유리합니다.
🐍 Python은 언제 사용?
⚠️ AI를 직접 개발할 때만 필요합니다!
전환 시점
- 사용자 10만명 이상: 외부 API 비용 월 $10,000 초과 시
- 월 100만건 분석: 외부 API 비용이 GPU 서버보다 비쌀 때
- 정확도 80% 미만: 범용 AI가 우리 서비스에 맞지 않을 때
전환 효과
| 비용 절감: | 외부 API $0.01/건 → 자체 모델 $0.0001/건 (100배 절감) |
| 정확도: | 범용 모델 75% → 커스텀 모델 90%+ |
| 속도: | 외부 API 3-5초 → 자체 서버 0.5초 |
분리 아키텍처 (하이브리드)
초기 (지금):
[Node.js 백엔드] → [Replicate API] ← 외부 서비스
나중 (10만명 이후):
[Node.js 백엔드] → [Python AI 서버] ← GPU (자체)
(FastAPI)
💡 Node.js는 그대로 유지!
AI 서버만 별도 추가
📌 핵심: 초기에는 Node.js만 사용! Python은 매출이 나고 투자를 받은 후 고려하세요.
외부 API로 검증 → 성공하면 자체 AI 개발 → 비용 절감
🏗️ 단계별 시스템 아키텍처
Phase 0: Pilot/데모 (투자 유치용, 빠른 임시 시스템)
[사용자]
↓
[기존 서버] (프론트엔드 - Svelte / rsync 배포)
↓
[Node.js Express] (백엔드 - 간단한 API / rsync 배포)
↓
[MySQL] (기존 서버의 DB)
├─ users (로그인 직접 구현)
└─ skin_analyses (result_json JSON 컬럼!)
↓
[Replicate API] (AI 분석 - 저렴한 티어)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 목표: 2~4주 만에 데모 완성, 투자 유치
💡 핵심: 기존 서버 활용, 빠르게 만들기!
JSON 컬럼으로 유연하게 개발!
⚠️ 임시: 데모/파일럿용, 버려도 됨
💰 비용: $0 (기존 서버 활용)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase 1: 정식 출시 (새로 시작! Supabase) ⭐
[사용자]
↓
[Vercel/Netlify] (프론트엔드 - Svelte 5 / 자동 배포) ⭐
↓
[Railway] (백엔드 - Node.js Express / 자동 배포) ⭐
↓
[Supabase] (All-in-One 백엔드! 처음부터 제대로!) ⭐⭐⭐
├─ Auth (로그인 자동 - 구현 불필요!)
├─ PostgreSQL DB (Phase 0 경험 반영)
│ ├─ auth.users (Supabase 자동 관리)
│ ├─ profiles (사용자 정보)
│ ├─ skin_analyses (JSONB로 업그레이드!) ⭐
│ ├─ products (제품 정보)
│ ├─ orders (주문 관리)
│ └─ reviews (리뷰 관리)
└─ Storage (이미지 1GB 무료)
↓
[Replicate API] (AI 분석 - 사용량 증가)
↓
[토스페이먼츠] (결제 연동)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 목표: 사용자 1,000명, 제품 판매 시작
💡 핵심: Phase 0 MySQL → Supabase로 전환!
Phase 0 경험으로 완벽하게 재설계
자동 배포 (Railway/Vercel)
DB + Auth + Storage 올인원!
💰 비용: $11~36/월 (Railway + AI, Supabase 무료!)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase 3: 자체 AI 개발 (선택, 매우 나중)
[Node.js 백엔드]
↓
[Python AI 서비스] (GPU 서버, 별도 구축)
↓
[자체 학습 모델]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ 전환 조건:
• 사용자 100,000명 이상
• 외부 AI API 비용 월 $10,000 이상
• 별도 AI 전문 개발자 채용 가능
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✨ 단계별 기능 로드맵
🎯 비즈니스 전략
1단계: 피부 정보 관리 플랫폼 → 사용자 확보 + 데이터 축적
2단계: 자사 화장품 출시 → 본격적인 수익화
💡 핵심: 타사 제품 사용자도 이용 가능하게! → 피부 정보 자체가 가치, 호기심으로 고객 유입
📅 Phase 0: Pilot/데모 (투자 유치, 바이어 미팅용)
기간: 2~4주
목적: 빠른 검증, 투자자/바이어 설득
특징: 기획 변경 빈번, 최소 기능 구현
- ✅ 기본 웹사이트 (Svelte, rsync 배포)
- ✅ Supabase DB (로그인 + 검사 이력) ⭐
- ✅ Supabase Auth (회원 가입/로그인)
- ✅ 피부 사진 업로드 (Supabase Storage)
- ✅ AI 분석 (Replicate API, 저렴한 티어)
- ✅ 검사 결과 저장 (result_json 컬럼)
- ✅ 간단한 이력 조회
💡 핵심: Supabase 무료로 모든 기능!
→ DB + Auth + Storage 한 번에
→ JSON 컬럼으로 유연하게 개발
• users: id, email, password, created_at
• skin_analyses: id, user_id, image_url, result_json, created_at
result_json 예시: {skinType: "oily", concerns: ["acne"], scores: {...}}
📅 Phase 1: 피부 정보 플랫폼 (2~3개월)
※ 참고: 경험 많은 풀스택 개발자 1~2명 기준
목표: 피부 분석 서비스로 사용자 확보 (제품 판매 없음)
- ✅ 회원가입/로그인 (Supabase Auth)
- ✅ 피부 사진 업로드 + AI 분석 (외부 API)
- ✅ 피부 정보 저장 및 관리 (내 피부 데이터베이스)
- ✅ 분석 이력 조회 (과거 데이터 비교)
- ✅ 간단한 결과 페이지 (웹 기반)
- ✅ 일반적인 피부 관리 팁 제공 (브랜드 중립적)
- ✅ 기본 분석 유료화 (3,000~5,000원)
수익 모델: 분석 서비스 판매 (제품 판매 없음)
배포: rsync → Railway/Render 전환 (관리 편의성)
📅 Phase 2: 자사 제품 연동 (6~12개월)
전제 조건: 자사 화장품 개발 완료 시
목표: 축적된 피부 데이터 기반 맞춤형 제품 판매
- ⏳ 자사 제품 추천 시스템 (사용자 피부 데이터 기반)
- ⏳ 제품 결제 연동 (토스페이먼츠)
- ⏳ 주문/배송 관리
- ⏳ 제품 사용 후기 및 재구매
- ⏳ PDF 리포트 생성 (프리미엄 기능)
수익 모델: 분석 서비스 + 제품 판매
배포: CI/CD 자동화 (GitHub Actions)
📅 Phase 3: 고도화 (12개월+)
- ⏳ PCR 마이크로바이옴 검사 연동
- ⏳ 정기 구독 서비스
- ⏳ 모바일 앱 (React Native or Flutter)
- ⏳ AI 챗봇 상담
- ⏳ 자체 AI 모델 (비용 절감)
💰 단계별 인프라 비용
Phase 0: Pilot/데모 (투자 유치, 바이어 미팅)
규모: 개발 중, 사용자 0~50명
기간: 2~4주
⚠️ 옵션 A: 자체 서버 (rsync 배포)
| 개발 서버 (rsync 배포) | $70~90/월 (8~10만원) |
| 운영 서버 (프로덕션) | $70~90/월 (8~10만원) |
| 도메인 | $1/월 |
| Supabase 자체 호스팅 (선택) | $30~50/월 (서버 증설 필요) ⚠️ |
| Replicate AI API (100건 이하) | $0~1/월 |
| 총계 (개발+운영) | $141~232/월 (약 16~26만원) ❌ |
| 사용자 확장시 (+100명) | +$50~70/월 (서버 리소스 증설) |
⚠️ 문제점:
→ 초기 비용이 너무 높음 (수익 전 월 16~26만원)
→ 서버 관리 부담 (보안, 업데이트, 백업)
→ 사용자 증가시 서버 증설 필요 (추가 비용)
→ Supabase 자체 호스팅은 관리 복잡도 증가
→ Pilot 단계에서 비추천!
✅ 옵션 B: 클라우드 네이티브 (추천)
| Vercel/Netlify (프론트엔드, 자동 배포) | $0 (무료 티어) |
| Railway/Render (백엔드, 자동 배포) | $0~5/월 |
| 도메인 | $1/월 |
| Supabase (DB+Auth+Storage) | $0 (무료 티어) ⭐ |
| Replicate AI API (100건 이하) | $0~1/월 |
| 총계 | $1~7/월 (약 1~8천원) ⭐⭐⭐ |
| 사용자 확장시 (+100명) | 무료 티어 내 가능 ✅ |
→ 거의 무료! 완전한 웹서비스 가능! 🎉
💡 핵심 장점:
✅ Supabase 무료로 모든 인프라 (로그인 + DB + 이미지 저장)
✅ 자동 배포 (Git push만 하면 배포 완료)
✅ 자동 확장 (사용자 증가에 자동 대응)
✅ 서버 관리 불필요 (보안, 백업 자동)
✅ 설정 5분, 마이그레이션 필요 없음
→ 초기 자본 부담 23배 절감 (26만원 → 1만원)
| 구분 | 자체 서버 | 클라우드 | 절감 |
|---|---|---|---|
| 초기 비용 | 16~26만원/월 | 1~8천원/월 | 95~97% ↓ |
| 관리 시간 | 주 5~10시간 | 거의 없음 | 100% ↓ |
| 확장성 | 수동 증설 | 자동 확장 | - |
| 배포 시간 | 수동 rsync | 자동 (Git push) | 90% ↓ |
🔄 Phase 0 → Phase 1 전환 (배포 방식 변경만!)
전환 시점:
✅ 투자 유치 완료 또는 매출 발생
✅ 사용자 50명 이상 확보
✅ 수동 배포(rsync)가 번거로워질 때
변경 사항:
1. 프론트엔드: rsync → Vercel/Netlify (자동 배포)
2. 백엔드: rsync → Railway (자동 배포)
3. DB: Supabase 그대로 유지!
4. 필요시 테이블 추가 (products, orders 등)
💡 핵심: DB 마이그레이션 불필요!
→ 기존 데이터 그대로 사용
→ 배포 자동화만 적용
소요 시간: 반나절 (Railway 연동 + Vercel 연동)
Phase 1: 피부 정보 플랫폼 (정식 출시, 자동 배포)
규모: 사용자 50 → 1,000명, 월 100~500건 분석
DB: Supabase PostgreSQL (Phase 0와 동일)
💰 기본 비용 (사용자 ~500명)
| Vercel/Netlify 프론트 (자동 배포) | $0 |
| Railway 백엔드 (자동 배포) ⭐ | $5~10/월 |
| Supabase (무료 티어, 동일) | $0 |
| Replicate AI API (500건) | $5~20/월 |
| 도메인 | $1/월 |
| 총계 | $11~31/월 (약 1.2~3.5만원) ⭐ |
📈 사용자 확장에 따른 비용
| 사용자 수 | Railway 백엔드 | Supabase DB | 월 비용 합계 |
|---|---|---|---|
| ~500명 | $5~10/월 | $0 (무료) | $11~31/월 |
| 500~1,000명 | $10~15/월 | $0 (무료) | $16~36/월 |
| 1,000~2,000명 | $15~20/월 | $25/월 (Pro 전환) | $45~65/월 |
초기 (100명):
• 수익: 월 100명 × 4,000원 = 40만원
• 비용: 1.2~3.5만원
• 순이익: 36.5~38.8만원 (92~97% 수익률)
성장기 (500명):
• 수익: 월 500명 × 4,000원 = 200만원
• 비용: 1.2~3.5만원
• 순이익: 196.5~198.8만원 (98~99% 수익률)
확장기 (1,000명):
• 수익: 월 1,000명 × 4,000원 = 400만원
• 비용: 4.5~6.5만원
• 순이익: 393.5~395.5만원 (98~99% 수익률)
Phase 2: 제품 판매 시작 (6~12개월)
규모: 사용자 1,000 → 10,000명, 월 3,000건 분석
💰 기본 인프라 비용
| Railway 백엔드 (스케일업) | $20~30/월 |
| Supabase Pro | $25/월 |
| Replicate AI (3,000건) | $30~50/월 |
| 결제 수수료 (토스) | 매출의 3% |
| 이메일 (Resend) | $0 (3,000건 무료) |
| 고정 비용 | $75~105/월 (약 8.5~12만원) |
📈 사용자 확장에 따른 추가 비용
| 사용자 수 | Railway | Supabase | AI API | 월 비용 합계 |
|---|---|---|---|---|
| 1,000~3,000명 | $20~30/월 | $25/월 (Pro) | $30~50/월 | $75~105/월 |
| 3,000~5,000명 | $30~50/월 | $25/월 (Pro) | $50~80/월 | $105~155/월 |
| 5,000~10,000명 | $50~80/월 | $25~50/월 | $80~120/월 | $155~250/월 |
| 10,000명+ | $80~120/월 | $50~100/월 | $120~200/월 | $250~420/월 |
매출:
• 분석 서비스: 월 3,000명 × 4,000원 = 1,200만원
• 제품 판매: 월 500명 × 50,000원 × 40% 마진 = 1,000만원
• 총 매출: 2,200만원
비용:
• 인프라: 약 10~15만원
• 결제 수수료: 2,200만원 × 3% = 66만원
• 총 비용: 76~81만원
• 순이익: 2,119~2,124만원 (약 96% 수익률)
추정 비용 (사용자 3,000명):
• 운영 서버 (고사양): 15~20만원/월
• 개발 서버: 10만원/월
• DB 서버: 10~15만원/월
• 백업 스토리지: 3~5만원/월
• 서버 관리 인력: 시간당 5만원 × 주 10시간 = 월 200만원
• 총 비용: 238~250만원/월 ❌
비교:
• 클라우드: 10~15만원 ✅
• 자체 서버: 238~250만원 ❌
• 절감액: 월 223~240만원 (약 16배 절감)
🔧 Supabase 자체 호스팅 가능 여부
✅ 네, Supabase는 자체 서버 호스팅이 가능합니다!
Supabase는 오픈소스 프로젝트이기 때문에 자체 서버에 설치하여 운영할 수 있습니다.
하지만 실제로는 추천하지 않습니다.
❌ 자체 호스팅을 추천하지 않는 이유
| 항목 | Supabase Cloud (추천) | 자체 호스팅 |
|---|---|---|
| 설치 시간 | 5분 (가입만 하면 끝) ✅ | 2~3일 (Docker, PostgreSQL, PostgREST, GoTrue, Realtime, Storage 등 설정) ❌ |
| 초기 비용 | $0 (무료 티어) ✅ | 서버 8~10만원/월 + 관리 인력 ❌ |
| 유지보수 | 자동 업데이트, 보안 패치 ✅ | 수동 업데이트, 보안 관리 필요 ❌ |
| 백업 | 자동 백업 (Point-in-time Recovery) ✅ | 수동 백업 스크립트 작성 필요 ❌ |
| 확장성 | 자동 스케일링 ✅ | 수동 서버 증설 필요 ❌ |
| 보안 | SSL, DDoS 방어 자동 제공 ✅ | 직접 구축 및 관리 필요 ❌ |
| 모니터링 | 대시보드 기본 제공 ✅ | 직접 구축 (Grafana, Prometheus 등) ❌ |
| Edge Functions | 바로 사용 가능 ✅ | Deno Deploy 별도 구축 ❌ |
| Realtime | WebSocket 자동 설정 ✅ | 복잡한 설정 필요 ❌ |
💰 비용 비교 (사용자 1,000명 기준)
| 항목 | Supabase Cloud | 자체 호스팅 |
|---|---|---|
| DB 서버 | $0~25/월 | 10~15만원/월 |
| Auth 서버 | 포함 | 5~8만원/월 |
| Storage 서버 | 포함 | 3~5만원/월 |
| 백업 서버 | 포함 | 3~5만원/월 |
| 서버 관리 시간 | 0시간 | 주 5~10시간 |
| 관리 인력 비용 | $0 | 월 100~200만원 |
| 월 총 비용 | $0~25/월 (약 0~3만원) ✅ | 약 121~233만원/월 ❌ |
| 연간 절감액 | 약 1,450~2,800만원/년 절감 🎉 | |
💡 결론: Supabase Cloud를 사용하세요!
자체 호스팅이 필요한 경우:
✅ 매우 큰 규모 (사용자 10만명 이상)
✅ 특수한 컴플라이언스 요구사항 (금융, 의료 등)
✅ 완전한 데이터 주권이 필요한 경우
✅ Supabase Pro 비용이 자체 서버보다 비쌀 때
스타트업/초기 단계라면 무조건 Supabase Cloud!
→ 개발에만 집중, 인프라는 걱정 없음
→ 무료로 시작해서 필요할 때만 결제
→ 자동 확장으로 갑작스런 트래픽 증가도 대응
→ 관리 비용 0원으로 수익성 극대화
📌 참고: Supabase 자체 호스팅 방법
그래도 자체 호스팅을 원한다면:
1. GitHub: https://github.com/supabase/supabase
2. Docker Compose: docker-compose up 명령어로 설치
3. 필요 구성요소:
• PostgreSQL (DB)
• PostgREST (API)
• GoTrue (Auth)
• Realtime (WebSocket)
• Kong (API Gateway)
• pg_graphql (GraphQL)
• Storage API (파일 저장)
4. 최소 사양: 4코어 CPU, 8GB RAM, 100GB SSD
5. 설치 시간: 숙련자 기준 2~3일, 초보자 1~2주
→ 결국 Supabase Cloud가 훨씬 효율적입니다!
💸 단계별 수익 모델
Phase 1: 피부 정보 서비스 (제품 판매 없음)
| 서비스 | 가격 | 내용 |
|---|---|---|
| 무료 체험 | 무료 |
간단한 피부 타입 진단 기본 관리 팁 목적: 고객 유입 |
| 기본 피부 분석 | 3,000~5,000원 |
AI 정밀 분석 (즉시) 피부 타입 + 주요 고민 진단 피부 정보 저장 및 관리 일반적인 관리 팁 분석 이력 비교 |
| 프리미엄 분석 | 10,000~15,000원 |
기본 분석 포함 상세 PDF 리포트 전문가 케어 가이드 월간 피부 변화 추적 |
💡 Phase 1 손익분기점 (분석 서비스만)
✅ 클라우드 (추천)
월 비용: $1~7 (약 1~8천원)
8천원 ÷ 4,000원 = 2건
→ 월 2명만 사용해도 흑자! 🎉
❌ 자체 서버 (비추천)
월 비용: 16~26만원
20만원 ÷ 4,000원 = 50건
→ 월 50명 필요 (25배 더 필요!) ❌
📊 시나리오별 비교 (클라우드 vs 자체 서버)
| 단계 | 사용자 수 | 매출 | 클라우드 비용 | 클라우드 순이익 | 자체 서버 비용 | 자체 서버 순이익 |
|---|---|---|---|---|---|---|
| 초기 | 100명 | 40만원 | 1~3.5만원 | 36.5~39만원 ✅ | 16~26만원 | 14~24만원 ❌ |
| 성장 | 500명 | 200만원 | 1~3.5만원 | 196.5~199만원 ✅ | 20~30만원 | 170~180만원 ❌ |
| 확장 | 1,000명 | 400만원 | 4.5~6.5만원 | 393.5~395.5만원 ✅ | 30~40만원 | 360~370만원 ❌ |
| 클라우드 추가 절감액 (1년) | 약 240~340만원/년 더 절감! 🎉 | |||||
• 클라우드는 초기부터 높은 수익률 (92~99%)
• 자체 서버는 초기에 수익률이 낮음 (35~60%)
• 사용자가 많아질수록 차이가 더 벌어짐
• 개발에만 집중하고 싶다면 무조건 클라우드!
Phase 2: 자사 제품 판매 추가 (화장품 출시 후)
| 서비스 | 가격/수익 | 내용 |
|---|---|---|
| 분석 서비스 | 3,000~5,000원 | Phase 1과 동일 (계속 제공) |
| 맞춤형 제품 판매 | 30,000~100,000원 |
피부 데이터 기반 추천 자사 개발 화장품 마진: 40~50% |
| 정기 구독 | 월 50,000원 |
월 1회 제품 배송 정기 피부 분석 우선 상담 |
🎯 핵심 전략
- Phase 1: 피부 정보 플랫폼으로 사용자 확보 + 데이터 축적
- Phase 2: 축적된 데이터로 맞춤형 제품 개발 + 판매
- 차별점: 타사 제품 사용자도 환영 → 더 많은 고객 유입
- 신뢰 구축: 제품 팔기 전에 정보 제공 → 브랜드 신뢰도 ↑
📅 Phase 1 개발 타임라인 (피부 정보 플랫폼, 2-3개월)
⚠️ 중요
프로토타입 (2~4주): 투자자/PoC용 데모, 핵심 기능만
정식 출시 (2~3개월): 실제 고객 사용 가능, 결제/보안 포함
현재 상황: rsync로 빠르게 반복 개발 중 ✅
Month 1: 기획 및 기반 구축
- Week 1-2: 기획, 비즈니스 모델 정리, DB 스키마, 화면 설계
- Week 3-4: 프론트엔드 기본 구조 (Svelte 컴포넌트, 라우팅)
- 배포: 계속 rsync 사용 (빠른 반복)
Month 2: 핵심 기능 개발
- Week 5-6: 백엔드 API (Node.js Express, Supabase 연동)
- Week 7: AI 분석 연동 (Replicate API)
- Week 8: 피부 정보 저장 + 이력 조회 기능
- 배포: 계속 rsync 사용
Month 3: 완성 및 출시
- Week 9: 간단한 결제 시스템 (분석 서비스 결제)
- Week 10: 이메일 알림, 보안 강화
- Week 11: 버그 수정, 성능 최적화, 테스트
- Week 12: 베타 테스트 (지인 20명), 정식 출시 🎉
- 배포: Railway/Render로 전환 (관리 편의)
추가 여유 기간: +1개월
예상 못한 문제 해결, 사용자 피드백 반영, UI/UX 개선
→ 총 3~4개월 (안전한 일정)
🎯 Phase 1의 핵심
- 제품 판매 없음: 피부 정보 관리에만 집중
- 수익: 분석 서비스 유료화 (3,000~5,000원)
- 목표: 1,000명 사용자 확보, 피부 데이터 축적
- 배포: rsync로 시작 → Railway로 전환
- 다음 단계: 축적된 데이터로 맞춤형 제품 개발
🎯 핵심 성공 전략
1. 빠른 출시
- 완벽함보다 출시 속도 우선
- 2-3개월 MVP → 피드백 → 개선
- 핵심 기능 80% 완성 시 출시
- 프로토타입은 2-4주 (데모용)
2. 무료 티어 활용
- Vercel: 무제한 배포
- Supabase: 500MB DB, 1GB Storage
- Resend: 3,000 이메일
3. 외주 전략 활용
- AI는 외부 API (자체 개발 X)
- PCR 검사는 제휴 업체
- 디자인은 무료 템플릿
4. 수동 작업 허용
- 초기 제품 추천은 수동
- 고객 문의는 이메일/카톡
- 관리자 대시보드는 나중에
5. 언어 통일 (JavaScript) ⭐
- 프론트 + 백엔드 = JavaScript만!
- 개발자 1명으로 전체 가능
- 코드 재사용, 쉬운 협업
- 풀스택 개발자 구하기 쉬움
6. 단계적 배포 전략
- 현재: rsync (간단, 무료)
- Phase 1: Railway (자동, 관리 편의)
- Phase 2: CI/CD (테스트 자동화)
- 비용 절감 + 안정성 확보
7. 정보 먼저, 제품은 나중에
- 타사 제품 사용자도 환영
- 피부 정보로 신뢰 구축
- 데이터 축적 후 제품 개발
- 브랜드 중립성 유지
👥 현실적인 인력 구성
✅ 옵션 1: JavaScript 풀스택 개발자 1명 (가장 추천!) ⭐
자격 요건:
- JavaScript 전문: 프론트(Svelte/React/Vue) + 백엔드(Node.js/Express) 3년+ 경험
- 언어 통일: 하나의 언어로 전체 개발 가능!
- 클라우드 배포 경험 (Railway/Vercel)
- DB 설계 가능 (PostgreSQL, Supabase)
개발 기간: 3~4개월
예상 비용: 2,000만원 (연봉 7천만원 기준)
💡 장점: 언어 통일로 생산성 최대! 의사소통 오버헤드 제로!
옵션 2: 중급 개발자 2명 (백업 플랜)
구성:
- 프론트엔드 개발자 1명 (Svelte, 연봉 5천만원)
- 백엔드 개발자 1명 (Node.js, 연봉 5천만원)
개발 기간: 2~3개월
예상 비용: 2,000만원 (2명 × 3개월)
장점: 서로 리뷰 가능, 병렬 개발, 위험 분산
참고: 두 명 모두 JavaScript만 알면 되므로 협업이 쉬움!
❌ 주니어 개발자만으로는 위험
경험 부족 시 4~6개월 소요 + 품질 문제 발생 가능
중급 이상 1명 필수!