SeungjoonLee 26 2
게시물 메뉴

안녕하세요! 퇴근 후 "되묻고 깊어지는 상담 대화"를 목표로 주역 상담 AI를 개발 중인 직장인 바이브코더입니다.

지난 7일 차 작업에 대한 정밀 검증을 진행하며, 겉으로는 돌아가는 것처럼 보였으나 실제 서비스 흐름에서 삐걱거리던 크리티컬한 문제 두 가지를 잡고 세부 설정을 변경했습니다.

단순히 기능이 추가되는 것보다, 배포 전에 사용자 관점의 에러 경로를 촘촘하게 벼리는 과정이 더 짜릿하네요. 오늘의 치열한 디버깅 기록과 설계에 관한 고민을 공유합니다.

🛠️ My Vibe Coding Stack

Local Dev: Mac Mini M4 Pro + Ollama + Docker Compose

Database: PostgreSQL 16 + pgvector (iching-db, RAG 인덱스 2,536건)

Model (이원화): gemma4:latest (개발용) vs Gemini 2.5 Flash (배포용)

 Architecture Framework: Google ADK (google/adk-python)

 

1. 문제상황 

  1.1. 괘사를 적용하지 않는 상담 : 아래는 7일차 작업의 동기가 된 두가지 사례의 검증 예시입니다. 

스크린샷 2026-08-18 오전 12.45.21.png.jpg

스크린샷 2026-08-18 오후 7.00.23.png.jpg

서로 다른 고민에 대해 완전히 다른 괘가 도출되었음에도 불구하고, AI 상담 답변의 최종 뉘앙스가 똑같이 "자신을 되돌아보라" 상투적인 방향으로 수렴하는 현상을 포착했습니다. 원인을 파악해 보니 상담 프롬프트와 코드 엔진이 DB 상의 '주역 괘사' 제대로 참고하지 않고, RAG 청크 해설의 거시적인 조언에만 강하게 매몰되는 버그였습니다.

 

1.1.1. 개선사항 

이틀 동안 상담 에이전트 프롬프트와 컨텍스트 주입 아키텍처를 전면적으로 교정했습니다. 개선 이후에는 실제 도출된 주역 괘사(본의, 정전) 정밀하게 근거한 고전 해석이 녹아든 개성 넘치는 답변이 정상 출력됩니다. 대화의 깊이가 완전히 달라졌습니다(꼬리물기식 대화 유도가 살짝 과하다는 느낌이 들지만, 이는 실제 베타 테스트 배포 파라미터 튜닝을 통해 다듬어 나갈 예정입니다.)

스크린샷 2026-08-21 오후 10.26.05.png.jpg

스크린샷 2026-08-21 오후 10.32.43.png.jpg

스크린샷 2026-08-21 오후 10.58.11.png.jpg

1.2. 과도한 안전 가이드라인 

주역이라는 텍스트가 가진 동양철학적 권위 때문에 자칫 극단적인 선택을 암시하는 발화가 있을 경우 오동작하는 것을 막기 위해 강력한 안전 필터를 구현해 두었습니다. 하지만 가이드라인이 너무나도 민감하게 세팅되어 있어, 상담 무렵 사용자가 보낸 단순 일상어인 "생각 정리" '정리'라는 단어까지 자해/자살 징후로 오탐지하여 서비스를 강제로 차단해 버리는 심각한 버그가 있었습니다.

스크린샷 2026-08-21 오후 11.14.30.png.jpg

상담 마무리 멘트에 기재된 '정리' 란 단어에 대해 안전 가이드라인이 작동한 사례입니다. 

1.2.1. 개선사항

깃허브에서 검증된 자살 예방 안전 모델 유사한 예외 처리 오픈소스 (해당 깃허브 레포 : https://github.com/806hyogi/Suicide_prevention_app.git)

참고하여 안전 스크리너의 분류 조건과 맥락 가이드라인을 리팩토링했습니다. 정교하게 리팩토링한 결과 오탐율이 드라마틱하게 감소하여 "정리" 같은 일반 명사에는 정상적으로 반응하되, 위기 신호가 담긴 대화에만 24시간 래치가 정상 작동함을 검증했습니다. 영역은 앞으로 서비스 운영 피드백을 보며 미세 튜닝만 예정입니다.

스크린샷 2026-08-21 오후 11.51.37.png.jpg

 

2. 크루님들께 드리고 싶은 말씀  (스콥 크립의 경계에서)

 

주역  원문에는 몇 가지 엄격한 점법 금기 사항이 명시되어 있습니다:

  1. 동일한 질문으로 두세 번 점치지 말 것 (재삼독) -> [정리 에이전트 회고 분기로 정상 구현 완료]
  2. 가벼운 호기심이나 장난으로 점치지 말 것 -> [B2C 앱의 특성상 허용]
  3. 부도덕한 비윤리적인 일에 대해 점치지 말 것 -> [현재 고민 중인 스콥]
  4. 마음이 혼란하거나 욕망을 품고 치지 말 것 -> [B2C 특성상 허용]
  5. 50개 산가지 중 49개만 쓸 것 -> [엔진 로직상 적용 완료]

여기서 가장 고민이 되는 부분이 바로 3 '부도덕한 일에 대한 필터링'입니다. 현재는 별도의 비도덕적 스크리닝 필터가 없어서, 테스트 "산업 스파이 행위가 성공할지" 같은 비윤리적인 질문을 던져도 AI 순진하게 주역 괘사 해석을 해주는  상황입니다.

스크린샷 2026-08-21 오후 11.43.59.png.jpg

Q. 여러분이라면 이 '비도덕적 질문 필터링'을 구현하시겠습니까?

  • 구현한다: 주역 상담 서비스의 신뢰도와 브랜딩을 위해 꼭 차단해야 한다.
  • 안 한다: 과도한 스코프 크립(Scope Creep)이며, 일반적인 안전 필터(폭력, 자해 등) 선에서만 끊고 넘어가는 것이 스타트업/인디 씬에선 맞다.

바이브코더 크루분들의 생생한 의견과 훈수를 기다립니다! 👇