개발 청사진 짜기

1단계: 기본 인프라 구축 (1-2주)

  • FastAPI 프로젝트 세팅
    • 기본 디렉토리 구조 설정
    • 환경 변수 설정 (.env)
    • 의존성 관리 (requirements.txt)
  • React 프로젝트 세팅
    • Next.js + TypeScript 초기 설정
    • 기본 레이아웃 구성
    • API 통신 기본 설정
  • PostgreSQL 데이터베이스 세팅
    • 기본 테이블 설계
    • DB 연결 설정

2단계: MVP - 최소 기능 구현 (2-3주)

  • OCR 기능 구현
    • Upstage OCR API 연동
    • 이미지 업로드 UI
    • 텍스트 추출 테스트
  • 기본 피드백 시스템
    • Chat API 연동
    • 간단한 프롬프트 설계
    • 기본적인 피드백 UI

3단계: 사용자 관리 시스템 (1-2주)

  • 회원가입/로그인 기능
    • JWT 인증 구현
    • 사용자 DB 연동
    • 인증 UI 구현
  • 기본 마이페이지
    • 학습 이력 조회
    • 간단한 프로필 관리

4단계: 학습 관리 시스템 고도화 (2-3주)

  • Solar Teacher 핵심 로직 구현
    • LangChain 연동
    • 프롬프트 체인 설계
    • 피드백 생성 로직 고도화
  • 학습 데이터 관리
    • 피드백 로그 저장
    • 학습 진도 추적
    • 이해도 평가 기본 로직

5단계: 분석 및 개선 기능 (2주)

  • Embeddings 구현
    • 유사 문제 추천
    • 개념 연관성 분석
  • Groundedness 체크
    • 피드백 신뢰도 검증
    • 품질 관리 시스템

6단계: UI/UX 개선 (2주)

  • 대시보드 구현
    • 학습 통계 시각화
    • 진도율 표시
  • 반응형 디자인
    • 모바일 대응
    • UI 애니메이션

7단계: 시스템 안정화 (1-2주)

  • 에러 처리
    • 예외 상황 핸들링
    • 로깅 시스템
  • 성능 최적화
    • API 응답 속도 개선
    • 캐싱 구현

8단계: 베타 테스트 및 피드백 (1-2주)

  • 테스트 사용자 모집
  • 피드백 수집 및 개선
  • 버그 수정

총 예상 개발 기간: 12-16주

각 단계별 중요 체크포인트:

  1. MVP 단계에서 OCR과 Chat이 제대로 작동하는지
  2. 사용자 데이터가 안전하게 저장/관리되는지
  3. Solar Teacher가 의미 있는 피드백을 생성하는지
  4. 시스템이 안정적으로 작동하는지

우선 1-3단계까지 진행하면서 기본 기능을 검증하고, 그 후에 4-8단계를 진행하는 것이 좋을 것 같습니다.

어, 음 너무길다. 난 한달밖에 없는데


  1. 백엔드 배포 (AWS EC2 사용):
bashCopy# 1. EC2 인스턴스 설정
- Ubuntu Server 생성
- Security Group: 8000번 포트 개방 (FastAPI용)
- PostgreSQL용 5432 포트 개방

# 2. PostgreSQL 설치 및 설정
sudo apt update
sudo apt install postgresql postgresql-contrib
sudo systemctl start postgresql
sudo -u postgres psql
CREATE DATABASE solar_db;
CREATE USER solar_user WITH PASSWORD 'solar1234';
GRANT ALL PRIVILEGES ON DATABASE solar_db TO solar_user;

# 3. Python 환경 설정
sudo apt install python3-pip
git clone https://github.com/your-repo/project.git
cd project/backend
pip install -r requirements.txt

# 4. 환경 변수 설정
cp .env.example .env
# .env 파일 수정하여 실제 값 입력

# 5. Gunicorn으로 서버 실행
pip install gunicorn
gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker
  1. 프론트엔드 배포 (Vercel 사용):
bashCopy# 1. Vercel CLI 설치
npm install -g vercel

# 2. 프로젝트 최적화
cd frontend
npm run build

# 3. Vercel로 배포
vercel
  1. 도메인 및 SSL 설정:
bashCopy# 1. 도메인 구매 (예: AWS Route 53)

# 2. SSL 인증서 설정 (Let's Encrypt)
sudo apt install certbot
sudo certbot --nginx -d yourdomain.com
  1. NGINX 설정 (백엔드용):
nginxCopyserver {
    listen 80;
    server_name api.yourdomain.com;

    location / {
        proxy_pass http://localhost:8000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}
  1. 환경 변수 수정:
bashCopy# frontend/.env.production
NEXT_PUBLIC_API_URL=https://api.yourdomain.com

# backend/.env
DATABASE_URL=postgresql://solar_user:solar1234@localhost:5432/solar_db
CORS_ORIGINS=https://yourdomain.com
  1. 배포 자동화 (GitHub Actions):
yamlCopy# .github/workflows/deploy.yml
name: Deploy

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      
      - name: Deploy to EC2
        uses: appleboy/ssh-action@master
        with:
          host: $
          username: $
          key: $
          script: |
            cd project
            git pull
            cd backend
            pip install -r requirements.txt
            sudo systemctl restart gunicorn
  1. 모니터링 설정:
bashCopy# Prometheus + Grafana 설치
sudo apt install prometheus
sudo apt install grafana

# FastAPI 메트릭스 추가
pip install prometheus-fastapi-instrumentator
  1. 백업 설정:
bashCopy# PostgreSQL 자동 백업 스크립트
#!/bin/bash
BACKUP_DIR="/backup"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
pg_dump solar_db > $BACKUP_DIR/solar_db_$TIMESTAMP.sql

원래 이렇게 하려다가 테스트만 해보는건데 너무 귀찮을 것 같아 간소화해서 테스트해보기로 했다.