프로젝트명: 사주명리 기반 개인 운세 플랫폼 (프로젝트 코드: JajuMind)
작성일: 2025년 4월 5일
작성자: [실무 책임자 이름], 기획/개발 총괄
대상: 개발팀, 백엔드/프론트엔드 담당자, QA, 외주 협력사
1. 프로젝트 개요
1.1 목적
- 사용자가 생년월일, 성별, 출생 시각 및 장소를 입력하면, 사주팔자(四柱八字)를 자동 계산**하고,
- 일주 분석, 십성(십신), 오행 분포, 대운/세운, 운세 해석, 성격/직업/결혼 적성 등 맞춤형 해석**을 제공하는 **웹 기반 플랫폼 및 모바일 앱**을 구축한다.
### 1.2 목표 서비스
- **웹사이트**: `https://jajumind.com` (React 기반)
- **모바일 앱**: iOS / Android (React Native 기반)
- **API 서버**: Python (FastAPI) 기반 백엔드
- **기능 범위**: 사주 분석, 운세 해석, 결과 공유, 회원 기반 저장
### 1.3 타겟 사용자
- 사주 관심자 (20~50대)
- 점술 컨텐츠 소비자
- 전문 사주사(상담용 보조 도구)
---
## 2. 시스템 아키텍처 및 기술 스택
| 구분 | 기술 스택 |
|------|----------|
| 프론트엔드 (웹) | React.js, Tailwind CSS, Chart.js |
| 모바일 앱 | React Native, Expo |
| 백엔드 | Python (FastAPI), PostgreSQL |
| 배포 | AWS EC2, S3, CloudFront |
| CI/CD | GitHub Actions |
| 외부 라이브러리 | `lunardate`, `solar-lunar-converter`, `pytz` (시간대 처리) |
---
## 3. 주요 기능 분류 및 작업 내역
### 3.1 기능 분류 및 담당 부서
| 카테고리 | 세부 기능 | 담당 | 산출물 |
|---------|----------|--------|--------|
| **1. 사주 계산 핵심 로직** | 양력 → 음력 변환, 4주 추출, 십성 계산, 대운 산출 | 백엔드 개발팀 | `core_bazi.py`, `calculator.py` |
| **2. 운세 해석 엔진** | 오행 분석, 용신 추출, 성격/운세 해석 생성 | 백엔드 + 기획팀 | `interpretation_rules.json`, `analysis_engine.py` |
| **3. 사용자 입력 및 UI** | 생년월일 입력, 위치 입력, 결과 화면 출력 | 프론트엔드 개발팀 | React 컴포넌트, 모바일 UI |
| **4. 데이터 저장 및 회원 시스템** | 사용자 정보 저장, 분석 결과 저장 | 백엔드 + DB 관리자 | PostgreSQL 스키마, 회원 테이블 |
| **5. API 설계 및 통합** | 프론트 ↔ 백엔드 연동 | 백엔드 + 프론트 | RESTful API 문서 (Swagger) |
| **6. 검증 및 QA** | 정확도 검증, 에지 케이스 테스트 | QA 팀 | 테스트 케이스 문서, 버그 리포트 |
| **7. 배포 및 운영** | 서버 배포, 모니터링, 보안 설정 | DevOps | 운영 매뉴얼, 로그 시스템 |
---
## 4. 단계별 작업 내역 및 일정 (총 20주)
| 단계 | 기간 | 주요 작업 내역 | 산출물 | 담당 |
|------|------|----------------|--------|--------|
| **1. 요구사항 정의 및 설계** | 1~2주 | - 기능 범위 최종화<br>- 사주 이론 기준 선정 (백학산인 기반)<br>- 데이터 모델 설계 | 요구사항 문서, ERD, 화면 프로토타입 | 기획팀, 아키텍트 |
| **2. 핵심 계산 로직 개발** | 3~6주 | - 양력 → 음력 변환 모듈 개발<br>- 24절기 기반 월주 계산<br>- 일주/시주 추출 (시지 + 천간)<br>- 십성 판별 알고리즘 구현<br>- 대운 시작일 및 간지 계산 (성별/음양년 고려) | `bazi_calculator.py`, 테스트 코드 | 백엔드 개발팀 |
| **3. 운세 해석 엔진 개발** | 7~9주 | - 오행 분포 분석 모듈<br>- 장생 12운성 계산<br>- 용신 추출 로직 (기본 규칙 기반)<br>- 해석 템플릿 작성 (성격, 직업, 재물, 건강 등)<br>- JSON 기반 해석 룰 정의 | `interpretation_rules.json`, `analysis_engine.py` | 기획팀 + 백엔드 |
| **4. 백엔드 API 개발** | 10~11주 | - FastAPI 기반 RESTful API 설계<br>- `/api/v1/bazi` 엔드포인트 생성<br>- 사용자 입력 검증 (Pydantic)<br>- CORS, JWT 인증 기반 회원 API | API 문서 (Swagger), 백엔드 서버 | 백엔드 개발팀 |
| **5. 프론트엔드 개발 (웹)** | 8~12주 | - 입력 폼 UI 구성 (달력, 시간 선택기)<br>- 사주 차트 시각화 (4주, 십성, 오행)<br>- 운세 결과 출력 (탭 기반)<br>- 공유 기능 (PDF 생성, SNS 공유) | React 컴포넌트, 웹 UI | 프론트엔드 팀 |
| **6. 모바일 앱 개발** | 10~14주 | - React Native 기반 앱 구조<br>- 위치 기반 시차 보정 (타임존)<br>- 오프라인 캐시 기능 | iOS/Android 앱 빌드 | 모바일 개발팀 |
| **7. DB 설계 및 회원 시스템** | 5~8주 | - PostgreSQL 스키마 설계<br>- 사용자 테이블, 분석 결과 저장 테이블<br>- OAuth2 (Google/Apple 로그인) 연동 | DB 스키마, 로그인 API | 백엔드 + 보안 담당 |
| **8. QA 및 정확도 검증** | 13~15주 | - 전문가 검증 데이터 100건 준비<br>- 계산 결과 vs 전문가 분석 비교<br>- 윤달, 자정, 시차 보정 테스트<br>- 버그 수정 및 리팩터링 | 테스트 리포트, 버그 트래커 | QA 팀 |
| **9. 배포 및 운영 준비** | 16~17주 | - AWS EC2 서버 설정<br>- 도메인 연결, SSL 인증서 설치<br>- 로그 수집 (Sentry), 모니터링 | 운영 서버, 배포 매뉴얼 | DevOps |
| **10. 런칭 및 피드백 수집** | 18~20주 | - 베타 서비스 오픈 (500명)<br>- 사용자 피드백 수집<br>- 해석 문구 보완, UI 개선 | 피드백 리포트, V1.1 업데이트 계획 | 기획팀 + CS |
---
## 5. 핵심 계산 로직 상세 작업 내역 (백엔드)
### 5.1 양력 → 음력 변환
- **라이브러리**: `solar-lunar-converter` 또는 자체 구현
- **입력**: `2025-03-01 14:30, 서울`
- **출력**: 음력 `을사년 이월 초삼일`
- **고려사항**: 윤달, 시차 보정 (UTC+9)
### 5.2 4주 추출
| 주 | 산출 기준 |
|----|----------|
| 년주 | 음력 생년 + 천간지지 매핑 (간지표 참조) |
| 월주 | 24절기 기준 월지 결정 (예: 경칩 → 인월) + 천간(오근법) |
| 일주 | 음력 생일 → 일간/일지 (간지 주기 계산) |
| 시주 | 출생 시각 → 시지 (2시간 단위), 천간(오근법, 일간 기준) |
### 5.3 십성 계산
- 기준: 일간을 중심으로 나머지 7자(간지)의 십성 판별
- 예: 일간이 **갑**(목)일 때, **병**(화) → 식신, **경**(금) → 편재
- 출력: `{ "년간": "정관", "월지장간": "편인", ... }`
### 5.4 대운 계산
- **성별 + 음양년** → 순행/역행 결정
- **출생일 → 절기까지의 일수** → 대운 시작일 계산
- **대운수**: 3세 ~ 9세, 13세, 23세, ... (3년 후 시작, 10년 주기)
---
## 6. 데이터 모델 설계 (PostgreSQL)
```sql
-- 사용자
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100) UNIQUE,
gender VARCHAR(10), -- 남/여
birth_solar DATE,
birth_time TIME,
birth_place_lat DECIMAL(9,6),
birth_place_lng DECIMAL(9,6),
created_at TIMESTAMP DEFAULT NOW()
);
-- 사주 분석 결과
CREATE TABLE bazi_results (
id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(id),
year_stem VARCHAR(2), -- 갑
year_branch VARCHAR(2), -- 자
month_stem VARCHAR(2),
month_branch VARCHAR(2),
day_stem VARCHAR(2),
day_branch VARCHAR(2),
time_stem VARCHAR(2),
time_branch VARCHAR(2),
ten_gods JSONB, -- 십성 배열
five_elements JSONB, -- 오행 분포
daeun JSONB, -- 대운 배열
interpretation TEXT,
created_at TIMESTAMP DEFAULT NOW()
);
```
---
## 7. QA 및 검증 계획
### 7.1 검증 데이터셋
- **100건의 사주 데이터** (전문가가 직접 분석한 결과 포함)
- 항목: 년주, 월주, 일주, 시주, 십성, 대운 시작일
### 7.2 테스트 항목
| 항목 | 테스트 내용 |
|------|-------------|
| 윤달 처리 | 1984년 2월 2일 → 음력 1월 1일인지 확인 |
| 자정 근처 | 00:15 출생 → 전일의 해자(亥子)인지 확인 |
| 시차 보정 | 미국 LA 출생 → UTC-8 반영 |
| 대운 방향 | 남자 음년 → 역행 대운인지 확인 |
---
## 8. 운영 및 유지보수 계획
- **정기 업데이트**: 해석 문구 보완, UI 개선 (분기 1회)
- **보안**: 개인정보 암호화, GDPR 준수, 정기 보안 점검
- **백업**: DB 백업 (매일), S3 버전 관리
- **고객 지원**: FAQ, 문의 폼, 오류 신고 기능
---
## 9. 예산 및 인력 구성 (예시)
| 역할 | 인원 | 기간 | 비고 |
|------|------|------|------|
| 백엔드 개발자 | 2명 | 20주 | Python, FastAPI |
| 프론트엔드 개발자 | 1명 | 16주 | React |
| 모바일 개발자 | 1명 | 12주 | React Native |
| QA 테스터 | 1명 | 8주 | 수동/자동 테스트 |
| 기획/디자인 | 1명 | 20주 | UI, 해석 문구 작성 |
| DevOps | 1명 | 4주 | 배포 및 운영 |
## 10. 리스크 및 대응 전략
| 리스크 | 대응 방안 |
|--------|-----------|
| 사주 계산 오류 | 전문가 검증 + 단위 테스트 강화 |
| 해석 주관성 논란 | "참고용" 경고 문구 노출 |
| 개인정보 유출 | 암호화 저장, 접근 제한 |
| 성능 저하 (대량 요청) | 캐싱, Rate Limiting 적용 |
## 11. 결론 및 다음 단계
- 본 기획서를 기반으로 **주간 스크럼 운영**, **이슈 트래커 (Jira/GitHub Issues) 활용**하여 개발 진행
- **핵심 로직 검증 완료 후** 베타 서비스 오픈 예정
- 향후 **AI 기반 맞춤 해석**, **궁합 분석**, **상담 연동 기능** 확장 예정
'AI > AI 사주시스템 구축' 카테고리의 다른 글
사주명리 기반 웹/앱 시스템 개발 기획서 (7) | 2025.08.05 |
---|