오늘 하루를 기준으로
조심하면 좋을 것만 말해주는 작은 서비스
FortuneBear는 미래를 단정하거나 겁을 주는 말을 하지 않습니다.
오늘 하루의 흐름을 기준으로
이 정도는 조심해도 되겠다 싶은 이야기를
곰의 말투로 조용히 건네는 서비스입니다.
재미로 시작했지만
아이디어에서 구현 그리고 배포와 운영까지
하나의 서비스 흐름을 끝까지 경험해보고 싶어서
실제 배포를 전제로 설계했습니다.
거창한 운세 서비스보다는
작지만 끝까지 만들어 배포해볼 수 있는 서비스를 목표로 했습니다.
그래서 기능은 단순하게 유지하되
설계 이유와 구조는 명확하게 남기는 방향으로 진행했습니다.
HTML CSS JavaScript만 사용해 화면을 구성했습니다.
프레임워크를 쓰지 않은 이유는
구조를 단순하게 유지하고
수정과 배포를 빠르게 반복하기 위해서였습니다.
Node.js와 Express로 API 서버를 구성했습니다.
기능별로 역할이 분명한 엔드포인트만 두고
서버는 순수 API 역할에만 집중하도록 설계했습니다.
OpenAI API를 사용했습니다.
결과를 그대로 쓰기보다는
프롬프트 단계에서 말투와 표현을 강하게 제한해
서비스 성격이 흔들리지 않도록 했습니다.
초기에는 SQLite를 사용했지만
서버 재시작 시 데이터가 유지되지 않는 한계가 있어
Supabase 기반 PostgreSQL로 후기 저장 구조를 이전했습니다.
프론트엔드는 Netlify에 정적 배포하고
백엔드는 Render에 API 서버로 분리 배포했습니다.
프론트에서는 Render에 배포된 API 주소로만 요청을 보냅니다.
+) 현재는 Netlify에서 Vercel로 이전한 상태입니다.
GitHub에 코드를 푸시했지만 Render 서버에서 변경 사항이 반영되지 않는 문제가 있었습니다. 자동 배포 옵션이 비활성화된 상태였고 이후 Manual Deploy와 Auto Deploy 설정을 명확히 구분하였습니다.
선택 결정 페이지에서
항상 A 선택지가 더 많이 추천되는 문제가 있었습니다.
서버에서 랜덤 선택 후
AI는 설명만 하도록 구조를 변경했습니다.
결과가 자극적으로 나오는 문제가 있었습니다.
예언 금지, 사고 재난 표현 금지, 1인칭 관찰형 문체
말끝 고정 규칙을 프롬프트에 강제했습니다.
어떤 구조로 만들 것인지
그리고 AI를 어디까지 사용하고 어디서 멈출지를
스스로 설명할 수 있는 상태를 만드는 데에 더 집중했습니다.
아이디어를 떠올리는 단계에서부터
직접 구현하고 배포한 뒤
실제로 발생한 문제를 해결하는 과정까지
하나의 서비스를 끝까지 만들어보았습니다.