2026-04-04 (토) — Day 1: 프로젝트 킥오프 + 초기 구현
오늘 한 일
기술 스택 확정
- 프레임워크: Next.js 16 (App Router) + Tailwind + shadcn/ui
- 인증: NextAuth.js (카카오, Google / 앱 출시 시 Apple 추가)
- DB: Neon Serverless Postgres (Vercel 통합)
- ORM: Drizzle ORM
- LLM: Claude API (Anthropic)
- 결제: 토스페이먼츠 (한국) + Stripe (해외, Phase 2)
- 배포: Vercel Pro ($20/월, 트라이얼 시작)
과금 모델 확정
- 크레딧 충전제 (구독 모델 X)
- 사주 해석 1회 = 1,500원
- 최소 충전: 5,000원
- 환불: 미사용 시에만 전액 환불
Phase 1-A: 프로젝트 초기 설정 완료
Next.js 16 프로젝트 생성을 포함한 기초 인프라 구축을 완료했습니다. Turbopack을 활용하여 개발 속도를 최적화하였으며, Neon Postgres와 Drizzle ORM을 연동하여 안정적인 데이터 환경을 조성했습니다.
- Next.js 16 프로젝트 생성 (Turbopack)
- shadcn/ui 12개 컴포넌트 설치
- Neon Postgres DB 생성 (Singapore 리전)
- Drizzle ORM 스키마 작성 + DB push 완료
- NextAuth.js 설정 (카카오, Google 프로바이더)
- proxy.ts (Next.js 16 방식 미들웨어) 설정
- Header/Footer 레이아웃 컴포넌트
- 빌드 성공 확인
Phase 1-C: 사주 계산 엔진 구현 완료
이번 프로젝트의 핵심인 사주 계산 로직이 성공적으로 구현되었습니다. 양력/음력 변환은 물론, 정밀한 절기 기반 계산을 통해 정확도를 확보했습니다.
주요 구현 로직: 입춘 및 절기 기준 년주/월주 계산, 지장간 가중치를 포함한 오행 분포, 십신 및 대운수 계산 (야자시 처리 포함)
- 타입 정의 (HeavenlyStem, EarthlyBranch, Pillar, FourPillars 등)
- 상수 테이블 (천간, 지지, 오행, 지장간, 합충형파해)
- lunar-javascript 통합 (양력/음력 변환, 절기 기반 계산)
- 년주/월주/일주/시주 계산
- 오행 분포 및 십신/대운 계산 완료
- 4개 주요 테스트 케이스 통과 (입춘 경계, 음력 변환, 야자시 포함)
주요 결정 사항
[기술 스택 및 라이브러리 선정 이유]
- Next.js 16: 최신 16.2.2 버전을 채택하여 최신 기능을 선제적으로 적용했습니다.
- Neon SDK: 기존 @vercel/postgres의 deprecated 이슈를 방지하기 위해 선정했습니다.
- Drizzle ORM: 타입 안전성이 뛰어나며 가벼운 특성상 Neon DB와 최적의 궁합을 보여줍니다.
- lunar-javascript: 정확도가 검증된 오픈소스 라이브러리로 만세력 계산의 신뢰도를 높였습니다.
발견한 이슈
- Next.js 16에서
middleware.ts가 deprecated 되어 proxy.ts로 구조를 변경했습니다. - shadcn/ui의 기반 라이브러리 변경으로 asChild prop 관련 대응이 필요합니다.
- NextAuth + Drizzle adapter의 빌드 시점 DB 연결 이슈를 조건부 adapter 방식으로 해결했습니다.
보안 알림: Neon DB 비밀번호가 로그에 노출되었습니다. 즉시 Password Rotate를 수행해 주세요.
내일 할 일
- Phase 1-D: LLM 해석 시스템 구축 (Claude API 스트리밍 연동)
- Phase 1-E: UI/UX 고도화 (사주 입력 폼 및 시각화 차트)
- 사주 계산 API Route 작성 및 엔드포인트 보안 설정
참고: Phase 2에서는 RAG(검색 증강 생성) 기술을 도입하여 전문 서적 기반의 고품질 해석을 제공할 예정입니다.