mystock 5일을 만들고 보니 Firebase + Cloudflare Workers 조합에 한계가 느껴졌다. 백엔드 로직이 복잡해질수록 Workers의 제약이 많았다. KIS API 연동도 더 유연하게 다루려면 제대로 된 백엔드가 필요했다.
결국 처음부터 다시 짜기로 했다. 새 이름은 HubWise Invest.
FastAPI(백엔드) + Next.js(프론트엔드) 조합으로 확정했다. FastAPI는 Railway, Next.js는 Vercel에 배포하는 구조. KIS API + yfinance 연동은 기존에 이해한 내용이 있어서 빠르게 됐다.
문제는 Railway 배포였다. PORT 환경변수 처리, Dockerfile 설정, railway.toml 구성 — 뭐가 문제인지 모르는데 계속 에러가 났다.
startCommand 위치 문제 → railway.toml vs Procfile 충돌
.dockerignore 설정, 레포 루트에 Dockerfile 이동
결국 14번 커밋을 하고 나서야 배포가 됐다.
CORS 허용 도메인(hubwise-invest.com, *.vercel.app)을 백엔드에 등록하고, 프론트에서 백엔드 URL을 환경변수로 연결했다.
클라우드 배포 개념을 처음 제대로 다뤘다. 빌드 시점과 런타임이 다르다는 것, 환경변수가 어디서 주입되는지 — 이걸 몸으로 배웠다.
이 글의 소감을 Threads에서 확인하세요.
스레드에서 보기