코딩을 다시 시작한 지 얼마 되지 않은 1인 개발자입니다. 20년 넘는 IT 경력이 있지만 실제 웹 서비스를 처음부터 혼자 만드는 건 솔직히 겁이 났습니다. 그런데 AI와 함께하는 바이브 코딩을 시작하고 나서, 하루 만에 사주 분석 + 손금 Vision AI + 오늘의 운세까지 동작하는 서비스를 만들었습니다. 오늘은 그 과정을 솔직하게 정리해 보겠습니다.
1. 왜 사주 앱을 만들었나
처음 아이디어는 단순했습니다. 사람들이 많이 찾는 서비스 + 무료 AI API + 블로그 트래픽, 이 세 가지를 엮으면 되겠다는 생각이었습니다. 사주와 운세는 검색량이 꾸준하고, 특히 모바일에서 간단하게 볼 수 있는 서비스가 많지 않았습니다. 거기에 손금까지 AI Vision으로 분석해주면 차별화가 된다고 봤습니다.

2. 개발에 사용한 기술 스택
| 구분 | 기술 | 비용 |
|---|---|---|
| 백엔드 | Python + Flask | 무료 |
| 프론트엔드 | Vanilla JS + CSS | 무료 |
| 사주 계산 | 천문 알고리즘 직접 구현 | 무료 |
| 음력 변환 | korean-lunar-calendar | 무료 |
| AI 해석 | Gemini 2.5 Flash Lite | 무료 (제한 있음) |
| 손금 Vision | Gemini Vision API | 무료 (제한 있음) |
| 배포 예정 | PythonAnywhere | 유료 전환 예정 |
처음에는 Claude API와 Gemini API 중에서 고민했습니다. 결국 무료 할당량이 있는 Gemini로 시작해서 테스트하고, 상용화 단계에서 유료로 전환하는 전략을 택했습니다.
3. 핵심 기능 구현 과정
3-1. 만세력 계산 엔진
사주 계산에서 가장 까다로운 부분은 절기 계산이었습니다. 시중에 나와 있는 상용 앱과 결과가 일치하려면 천문 알고리즘이 정확해야 합니다. Meeus의 천문 알고리즘을 기반으로 태양 황경을 계산하고, 이분탐색으로 절기 날짜를 정확히 찾는 방식으로 구현했습니다.
시행착오가 꽤 있었습니다. 처음에는 이분탐색 조건이 반대로 되어 있어서 절기 날짜가 틀리게 나왔고, 서울 지방시 보정(-30분)을 이중으로 적용해서 일주가 하루 밀리는 문제도 있었습니다.
| 항목 | 수정 전 | 수정 후 | 상용앱 |
|---|---|---|---|
| 연주 | 壬子 | 壬子 | 壬子 ✅ |
| 월주 | 丁未 | 戊申 | 戊申 ✅ |
| 일주 | 戊寅 | 己卯 | 己卯 ✅ |
| 시주 | 乙卯 | 丁卯 | 丁卯 ✅ |
| 대운 시작 | 7세 | 8세 | 8세 ✅ |
최종적으로 상용 앱과 완벽하게 일치하는 결과를 얻었습니다.
3-2. 십성 및 12운성 계산
사주 원국 테이블에 십성과 12운성을 표시하는 기능도 추가했습니다. 일간을 기준으로 각 기둥의 천간·지지와의 관계를 계산합니다.
| 십성 | 관계 | 색상 |
|---|---|---|
| 비견·겁재 | 일간과 같은 오행 | 파란색 |
| 식신·상관 | 일간이 생하는 오행 | 초록색 |
| 편재·정재 | 일간이 극하는 오행 | 노란색 |
| 편관·정관 | 일간을 극하는 오행 | 빨간색 |
| 편인·정인 | 일간을 생하는 오행 | 보라색 |
3-3. 세운(년운) · 월운 계산
상용앱처럼 세운과 월운을 표로 보여주는 기능도 구현했습니다. 2026년 기준으로 검증한 결과입니다.
| 월 | DX-VIEW | 상용앱 | 일치 |
|---|---|---|---|
| 1월 | 己丑 | 己丑 | ✅ |
| 2월 | 庚寅 | 庚寅 | ✅ |
| 3월 | 辛卯 | 辛卯 | ✅ |
| 4월 | 壬辰 | 壬辰 | ✅ |
3-4. AI 통합 해석 프롬프트
AI 해석에서 가장 중요한 것은 프롬프트 설계였습니다. 처음에는 AI가 엉뚱한 대운을 말하거나 "30년의 세월"처럼 나이에 맞지 않는 표현을 쓰는 문제가 있었습니다.
해결책은 간단했습니다. 프롬프트에 현재 나이와 대운을 명시적으로 넣어주는 것입니다.
현재 나이: 54세
현재 대운: 癸丑대운 (48세~57세) ← AI가 이 대운 중심으로 설명
올해 세운: 2026년 丙午년
절대 금지: 어린 시절 대운 언급, 30년의 세월 같은 막연한 표현
4. UI/UX 설계 포인트
입력 화면 단순화
처음 만든 입력 화면은 복잡했습니다. 사용자 피드백을 반영해서 이렇게 개선했습니다.
| 항목 | 수정 전 | 수정 후 |
|---|---|---|
| 성별 선택 | 드롭다운 | 👨 남 / 👩 여 버튼 |
| 날짜 입력 | 캘린더만 | 📅 아이콘 + 캘린더 |
| 시각 입력 | 오전/오후 선택 | 24시 기준 숫자 입력 |
| 날짜+시각 위치 | 따로 분리 | 한 줄에 나란히 |
| 정보 저장 | 없음 | localStorage 저장/불러오기 |
자동 실행 흐름
버튼 하나로 모든 분석이 순서대로 자동 실행됩니다.
🔮 만세력 정밀 계산 실행
↓
원국 분석 (자동)
↓
손금 있으면 → 손금분석 → 통합해석
손금 없으면 → 바로 통합해석
5. 오늘의 운세 기능
일일 운세와 월 운세 기능을 추가했습니다. 무거운 정보보다는 가볍게 읽을 수 있는 서술형으로 출력됩니다.
【오늘의 한 줄 총운】
오늘은 차분하게 내실을 다지기 좋은 날입니다.
【오늘 하루 이야기】
400자 내외의 편안한 서술...
【오늘의 행운 포인트】
첫째, 오전 중 중요한 결정을 내리세요.
둘째, 동쪽 방향이 길합니다.
셋째, 파란색 계열의 옷이 도움이 됩니다.
【오늘의 명언】
하루하루를 인생의 마지막 날처럼 살아라. - 스티브 잡스
명언은 365일치를 미리 준비해두고 날짜 기반으로 자동으로 바뀝니다.


6. 개발하면서 느낀 점
바이브 코딩의 장점
사주 계산 알고리즘은 제가 혼자 짰다면 몇 주가 걸렸을 것입니다. AI와 함께하니 하루 만에 상용앱 수준의 정확도를 달성할 수 있었습니다.
예상보다 까다로웠던 부분
| 문제 | 원인 | 해결 |
|---|---|---|
| 월주 틀림 | 이분탐색 조건 반대 | hi = mid → lo = mid |
| 일주 밀림 | 서울 지방시 이중 적용 | routes.py 보정 제거 |
| 대운 1세 차이 | round 대신 올림 필요 |
round(days/3 + 0.5) |
| AI 나이 오류 | 프롬프트 불명확 | 현재 나이·대운 명시 |
| Gemini 할당량 | 무료 제한 | 45초 카운트다운 자동 재시도 |
API 선택 전략
무료로 시작해서 검증 후 유료로 전환하는 전략이 맞았습니다. Gemini 무료 티어로 기능을 검증하고, 실제 서비스 단계에서 유료 플랜이나 Claude API로 전환할 계획입니다.
7. 앞으로의 계획
| 단계 | 내용 | 시기 |
|---|---|---|
| 배포 | PythonAnywhere 배포 | 이번 주 |
| API | Gemini 유료 전환 또는 Claude | 다음 주 |
| 기능 추가 | 세운/월운 십성 표시 완성 | 다음 주 |
| 수익화 | 구글 애드센스 연동 | 승인 후 |
| 마케팅 | 네이버 블로그 + 유튜브 | 배포 후 |
마무리
완벽하지 않아도 됩니다. 일단 동작하는 것을 만들고, 사용자 피드백을 받으면서 개선해 나가는 것이 바이브 코딩의 핵심입니다. 20년 경력이 있어도 처음 혼자 만드는 서비스는 겁이 납니다. 그런데 AI와 함께하니 그 두려움이 많이 줄었습니다.
이 글을 읽고 계신 분도 일단 시작해보시기 바랍니다. 생각보다 할 수 있습니다.
DX-VIEW 사주 × 손금 AI → e-ubis.com
개발 문의 → jschoi@e-ubis.com
'[AI 자동화 실험]' 카테고리의 다른 글
| 정부 지원금이이렇게 많았다니 (2) | 2026.05.07 |
|---|---|
| 🚨 [실제 상황] 구글 애드센스 1개월 정지... 무효 트래픽 테러 방어기 (0) | 2026.05.07 |
| 네이버 뉴스 자동 수집 시스템 직접 만들어봤습니다 — Python + 무료 API로 SOV 분석까지 한 번에 (0) | 2026.04.03 |
| 월 10만원짜리 SEO 툴 없이도 됩니다— KeywordLab Pro 완전 무료 사용 가이드 (0) | 2026.04.03 |
| 자동 블로그 제목 생성 프로그램 추천 (무료/유료 비교)- 월 10만원짜리 SEO 툴 대신 무료로 만들어 쓴 후기 (2) | 2026.04.02 |