안녕하세요! 퇴근 후 "되묻고 깊어지는 상담 대화"를 목표로 주역 상담 AI를 개발 중인 직장인 바이브코더 입니다.
어제 5일 차에 구글 ADK(Agent Development Kit) 표준을 적용해 뼈대를 다듬은 데 이어, 오늘은 해석 신뢰도의 본질인 '주자(朱子) 규칙 엔진의 예외 상황'을 현존하는 역학 문헌 고증과 전수 테스트로 완벽히 정복했습니다. 총 85개의 단위/통합 테스트를 구축하여 `85 passed in 1.35s`라는 쾌적하고 조밀한 성능을 만족시켰으며, Next.js 화면 연동까지 완료한 마일스톤을 공유해 봅니다.
🛠️ My Vibe Coding Stack
- Local Dev: Mac Mini M4 Pro + Ollama + Docker Compose
- Database: PostgreSQL 16 + pgvector (iching-db, 총 2,536건 RAG 인덱스)
- Model (이원화): gemma4:latest (로컬 개발용) vs Gemini 2.5 Flash (실제 상용 배포용)
- Frontend: Next.js (Modern Zen 인터페이스)
- Testing: pytest
오늘의 작업 결과 (6단계 규칙 고도화 & 전수 스위핑)
1. 정통 문헌(역학계몽) 고증과 규칙 엔진 연동 - 주역 관련 문헌에 대해 구글 노트북 LM서 검색후, 동효(변하는 효)가 3개일 때 본괘와 지괘의 괘사를 함께 보되 본괘를 위주로 하는 기준(`BOTH_JUDGMENTS`)을 확립했습니다. - 지괘가 특수 18괘(한계성 9괘 vs 성장성 9괘)일 때 본괘(體, 내실 다지기)와 지괘(用, 적극적 실행) 중 어느 쪽에 가중치를 둘지 정하는 '체용(體用) 보완 규칙'을 완비했습니다.
2. 도메인 충돌 격파: 4,032개 조합 전수 스윕(Sweep) 테스트 - 고변점 규칙(텍스트 확정)과 체용 규칙(방향성 가중치)이 서로 다른 괘를 지시하는 경우가 전체 4,032개 조합(64괘 × 63변효) 중 무려 14%인 567개나 발생했습니다. - 이를 처리하기 위해 고변점 규칙이 1차로 확정 원문 텍스트(Evidence)를 결정하고, 체용 규칙은 독립된 `[체용 참작]` 섹션으로 해석의 무게중심만 보완하도록 위계를 깔끔하게 분리했습니다. - 이 모든 분기 조건이 깨지지 않음을 보증하기 위해 4,032개 전체 괘/동효 조합을 일일이 가상으로 주입해 돌리는 '전수 스위핑 자동화 테스트'를 작성해 엣지 케이스를 원천 차단했습니다.
3. 안전장치 파싱 및 프론트엔드 동기화 완료 - 안전 스크리닝 에이전트의 호출 방식을 역할별 JSON 모드로 명확하게 격리하여, 간헐적인 포맷팅 충돌로 인한 안전 스크리닝 오탐과 파싱 에러를 종식시켰습니다. - Next.js UI 카드 컴포넌트에서 체용 규칙이 본괘를 강조함에도 무조건 전환을 유도하던 화면 문구 버그를 깔끔하게 지우고 백엔드 추론 가중치와 100% 동기화했습니다. 이제 괘상 심볼, 고변점 초점, 체용 지침이 단정함(Modern Zen) 속에서 완벽하게 시각화됩니다.
4. 샘플사례 활용 및 답변분석 - 예전에 읽었던 주역 해설서(딱 교양서 수준입니다.)에 나온 사레를 재구성하여 답변도출(답변결과는 아래 이미지 확인요망)
어제와 대비하여 특정한 답변을 내뱉는 경우("남겨주신 마음을 천천히 되짚어보게 됩니다")가 우선 줄어들었으며, 사용자의 답변에 따라 도출된 괘에 따라(어! 지급 보니 도출된 괘를 캡처한게 없네요..ㅠㅠ) 답변의 내용이 바뀜을 확인하였습니다. 마지막 캡처본을 보시면 안전장치가 가동(사용자가 극단적 선택을 암시하는 내용을 입력시 상담종료후 안내멘트 송출)되었는데 현재 시험용인 로컬 AI(젬마4)가 아닌 서비스용 AI(제미나이2.5 플래시) 적용시 발생하지 않는 문제었기에 이건 그냥 넘어가기로 했습니다. 추후 다른 사례를 활용하여 다시 사이클 상담 시뮬레이션을 돌려볼 예정입니다.
오늘의 실질: 실패하지 않는 시스템을 다지는 법 눈으로 대충 괘와 텍스트를 끼워 맞추는 것은 쉬웠지만, 4,032개 조합을 일일이 가상 주입해 이론적 조건 위계가 깨지는 14%의 사각지대(567개 경우의 수)를 기계적으로 드러내고 정리한 것에서 큰 쾌감을 느꼈습니다. 나중에 AI 상담사가 원문을 이상하게 교차 편집해 전달하는 조용한 버그를, 테스트 레벨에서 조기에 원천 차단할 수 있었습니다.
크루님들께 드리는 질문! 이제 아키텍처의 핵심 추론 척추와 화면 연동까지 정돈되며 다음 7단계(배포준비)로 달려가고 있습니다.
1. 고전문헌이나 규칙 알고리즘처럼 정적인 규칙(Rule Engine)과 동적인 LLM 추론(RAG)을 한 곳에 매끄럽게 녹여낼 때, 프롬프트에서 규칙의 주도권을 뺏기지 않는 자신만의 정교한 컨텍스트 임베딩 팁이 있으신가요?
2. 4,032개처럼 대규모 조합의 전수 검증이나 시뮬레이션 통합 테스트를 구축하실 때, 전체 pytest 속도와 리소스 격리를 어떻게 효율적으로 밸런싱하시나요? 댓글로 많은 훈수 부탁드립니다! 👇









퇴근하고 틈틈이 만드시는 것 같은데 힘들진 않으신지 모르겠네요 ㅎㅎ
그래도 글 올라올 때마다 하나씩 점점 갖춰가는 모습이 보여서 재밌게 보고 있습니다.
완성되면 어떤 모습일지도 궁금하네요. 항상 재밌게 보고 있고 응원합니다!