Claude + PostgreSQL로 개인별 명리 보고서 자동 생성 시스템 구축하기

소개

시도하고자 했던 것

전통 명리학 상담 데이터를 체계적으로 관리하고, 개인별 맞춤형 보고서를 자동 생성하는 시스템을 구축하고자 했습니다.

그 이유

•      기존 상담 자료가 워드/한글 문서로 흩어져 있어 검색과 재활용이 어려웠습니다.

•      동일한 형식의 보고서를 매번 수작업으로 만드는 비효율이 있었습니다.

•      데이터가 쌓일수록 "비슷한 사례 찾기"가 가능해지면 상담 품질이 높아질 것으로 기대했습니다.

다양한 색깔의 한국 사업 계획

비즈니스 프로세스 다이어그램

진행 방법

사용한 도구

도구

용도

비용

Claude Opus 4.5

SQL 쿼리 생성, 보고서 설계

Pro 구독

PostgreSQL 18

데이터베이스

무료

DigitalOcean

서버 호스팅

$6/월

Step 1: 5테이블 설계 프롬프트

명리학 상담 데이터를 저장하는 PostgreSQL 테이블을 설계해주세요.

요구사항:

1. profiles: 기본 정보 (생년월일, 성별, 사주팔자)

2. wonkuks: 원국 분석 (오행, 육신, 12운성, 신살)

3. daeuns: 대운 분석 (10년 단위)

4. daeun_groups: 대운 그룹 (3년 단위 세부)

5. sewuns: 세운 (연도별 운세)

Step 2: 보고서 생성 SQL

-- 개인별 명리 보고서 생성 쿼리

WITH profile_data AS (

    SELECT p.id, p.gender, p.birth_date,

           p.year_pillar || ' ' || p.month_pillar ||

           ' ' || p.day_pillar || ' ' || p.hour_pillar AS saju

    FROM profiles p WHERE p.id = $1

)

SELECT pd.*, wd.*, dd.*

FROM profile_data pd

LEFT JOIN wonkuk_data wd ON pd.id = wd.profile_id

LEFT JOIN daeun_data dd ON pd.id = dd.profile_id;

Step 3: 출력 결과 (샘플)

┌────────────────────────────────────┐

│  Profile #400 - 1990년생 남성                           │

├────────────────────────────────────┤

│  사주: 기사 | 병자 | 병인 | 신묘                        │

│  오행: 木2 火3 土1 金1 水1                              │

│  현재 대운: 癸酉 (28세~37세)                            │

└────────────────────────────────────┘

결과와 배운 점

📊 결과

•      360건 상담 데이터를 5개 테이블로 정규화

•      1건당 0.01초 내 보고서 생성 (PostgreSQL 쿼리 성능)

•      동일한 일주 검색으로 유사 사례 즉시 조회 가능

💡 배운 점

1.    DB 스키마 설계 시 "관계"를 명확히 전달해야 합니다

❌ "테이블 5개 만들어줘"

✅ "profiles ← wonkuks (1:1), profiles ← daeuns (1:N) 관계로 설계해줘"

2.    SQL 생성 시 WITH절(CTE)을 활용하면 가독성이 좋아집니다

3.    Markdown 템플릿을 미리 정의해두면 일관된 품질의 보고서가 나옵니다

🚨 시행착오

문제

원인

해결

daeun_groups 컬럼 에러

스키마에 없는 컬럼

\d 테이블명으로 확인

육신 계산 오류

지지 본기 매핑 누락

변환 테이블 추가

한글 깨짐

PostgreSQL 인코딩

UTF8 설정 확인

4. 앞으로의 계획

4.    Dify AI 연동: RAG 기반으로 고전 문헌 인용 자동화

5.    React Native 앱: 모바일에서 보고서 조회 기능

6.    100만건 확장: 60갑자 × 12월 × 60일주 × 13시간대 × 2성별 조합

7.    UNESCO 디지털 문화유산 등재 추진 (장기 목표)

도움 받은 글 (옵션)

•      PostgreSQL 공식 문서 (postgresql.org/docs)

•      Claude API 레퍼런스 (docs.anthropic.com)

•      지피터스 커뮤니티 SQL 자동화 사례들

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요