소개
시도하고자 했던 것
전통 명리학의 60일주(日柱) 교재를 작성하려면 각 일주마다 다음 정보가 필요합니다:
• 기본 정보 (천간/지지/오행/12운성/납음)
• 상세 해설 (성격/직업/건강/인연)
• 천간별 통변 (조합 해석)
• PPT 핵심 포인트 (실전 통변)
문제는 이 정보들이 4개의 서로 다른 테이블에 분산되어 있다는 것입니다.
기존 방식의 문제점
문제
설명
데이터 분산
60일주 정보가 4개 테이블에 흩어져 있음
수작업 통합
각 일주마다 4개 테이블을 일일이 조회해야 함
일관성 부족
수작업 시 형식/내용 불일치 발생
시간 소모
60일주 × 4테이블 = 240번의 수작업
해결 목표
"4개 테이블을 자동으로 연계하여, 60일주 전체 교재를 일관된 형식으로 자동 생성"
진행 방법
사용 도구
도구
용도
Claude Projects
테이블 구조 문서를 지식베이스로 활용
PostgreSQL
4테이블 데이터 저장 및 JOIN
Node.js + docx
Word 문서 자동 생성
4테이블 연계 구조
#
테이블명
건수
컬럼
교재 활용
7
ilju_60_basic
60
26
기본 정보 (천간/지지/오행/12운성)
8
ilju_education
60
15
상세 해설 (성격/직업/건강/인 연)
11
gwanbeop_ppt
439
6
PPT 핵심 포인트 (60일주 종합)
15
cheongan_tongbyun
348
12
천간별 통변 (조합 해석)
연계 키 (JOIN Key)
• #7 ↔ #8 ↔ #11 : ilju_name (갑자, 을축, ... 계해)
• #7 ↔ #15 : cheongan (甲, 乙, ... 癸)
핵심 프롬프트
일주론과 관련되는 테이블 7, 8, 11, 15를 서로 연계하여 교재에 활용하는 방법이 없을까요?
→ 이 단순한 질문으로 Claude가 4테이블 연계 구조를 설계하고, 샘플 교재까지 자동 생성했습니다.
교재 페이지 구조 (일주당 4개 섹션)
#
섹션
데이터 소스
1
기본 정보
#7 ilju_60_basic - 천간/지지/오행/12운성/납음/삼합
2
일주 해설
#8 ilju_education - 성격/직업/건강/인연 (12,000자)
3
천간 통변
#15 cheongan_tongbyun - 조합별 해석
4
PPT 핵심
#11 gwanbeop_ppt - 523슬라이드 중 핵심 추출
결과와 배운 점
성과
항목
기존 방식
4테이블 연계
개선율
60일주 교재 작성
20시간+
30분
40배
형식 일관성
불균일
100%
-
데이터 오류
수작업 실수
0건
-
나만의 꿀팁 3가지
1️⃣ 연계 키(JOIN Key)를 명확히 정의하라
테이블 설계 시 연계 키를 미리 정해두면 나중에 JOIN이 수월합니다.
2️⃣ 테이블별 역할을 분리하라
테이블
역할
특성
#7 ilju_60_basic
메타데이터
구조화된 정보
#8 ilju_education
콘텐츠
장문 텍스트
#11 gwanbeop_ppt
시각 자료
PPT 슬라이드
#15 cheongan_tongbyun
규칙
조합 해석
3️⃣ 템플릿 함수로 일관성 확보
createIljuPage(ilju) 함수를 만들어 60일주 전체가 동일한 구조로 생성되도록 합니다.
시행착오
문제
원인
해결
JOIN 결과 누락
테이블 간 키 불일치
LEFT JOIN + 키 표준화
PPT 데이터 과다
439건 전체 조회
slide_title로 필터링
문서 생성 실패
한글 폰트 미지정
맑은 고딕 명시
<< 앞으로의 계획 >>
4단계 확장 로드맵
단계
작업
예상 결과
1
60일주 전체 교재 생성
~200페이지 완성본
2
SQL JOIN 완전 자동화
DB → docx 원클릭
3
PPT 이미지 삽입
시각 자료 풍부화
4
Dify RAG 연동
AI 상담 시 교재 자동 참조
최종 목표
PostgreSQL 25테이블 → 4테이블 연계 → 60일주 교재 자동 생성 → Dify RAG 등록 → AI 명리 상담 시스템
도움 받은 글 (옵션)
• Anthropic Claude 공식 문서: https://docs.anthropic.com/
• docx npm 패키지: https://www.npmjs.com/package/docx
• PostgreSQL JOIN 문서: https://www.postgresql.org/docs/