[TIL] Flask 프로젝트를 FastAPI로 이관하기(2)
1. 문제 상황
- 개인 서비스 개발 프로젝트를 Flask로 운영해 왔다.
- React 프론트, SQLite/D1, local/R2가 공존하는 상태가 되었다.
- PythonAnywhere 이슈와 Cloudflare 이관 고민이 겹쳤다.
- 그런데 Cloudflare Worker 중심으로 가면 벤더 종속성이 커질 수 있다는 고민이 생겼다.
2. 선택지 비교
- Flask 유지
- Cloudflare Worker 중심 전환
- 범용 FastAPI 앱으로 재구성
여기서 핵심 비교 포인트는:
- 로컬 실행 가능성
- 타 클라우드 이식성
- 코드 재사용성
- 포트폴리오 가치
3. 현재 구조 분석
app/는 Flask 서버
frontend/는 React SPA
worker-python/는 Cloudflare Worker 실험 코드
repository/provider 패턴과 storage 분기 덕분에 완전한 레거시는 아니었다
4. FastAPI를 선택한 이유
- ASGI 기반
- 범용 배포
- 타입 기반 API 설계
- 문서화/설명력
- 이미 프로젝트 내부에 일부 FastAPI 경험이 존재
- AI 기능 연동 고려
5. 마이그레이션 전략
- 새 FastAPI 앱을 병렬로 세운다
- 공통 기반부터 분리한다
- JSON API부터 옮긴다
- 파일 처리와 프론트 서빙을 뒤에 옮긴다
6. 첫 단계에서 한 일
- 공통 설정 로더 분리
- SQLite 초기화 로직의 Flask 의존 완화
- FastAPI 앱 골격 생성
- migration 문서화 시작
7. 앞으로 남은 일
- CRUD API 본 이전
- 업로드/다운로드 이식
- 프론트 라우팅 이전
- seed/init/운영 명령 재정리
8. 회고 포인트
- 프레임워크 교체는 “문법 치환”이 아니라 “구조 재정의”였다
- app context 제거가 예상보다 큰 작업 단위였다
- 이식성을 원하면 런타임보다 코어 아키텍처를 먼저 봐야 했다