← VOICE MAP STUDIO서비스 열기 →
게시domain: heritage

우리 고장 국가유산 답사 길잡이

국가유산청 공식 데이터 위에 얹는 교사용 답사 코스 설계 + 대화형 필터 모듈 — 말로 거르고, 공식 해설을 듣고, 편의시설 거리를 붙인 계획서 표로 내보낸다

제안 대상
경주시(관광컨벤션과·문화유산과·경주AI&미디어센터, 파일럿 가설) / 학교·교육청 체험학습 사업 / 국가유산청(데이터 파트너)
최종 사용자
초·중 교사(현장체험학습 코스 설계), 학생·학부모, 국내외 답사객
기획 점수
80/ 80
결과 점수
82.3/ 80

와우 포인트

  • ✦"지금 화면에서 국보만 남겨줘" → 지도 위치를 유지하며 화면 안 결과를 거르고, 전체 검색·표시·가시 건수를 구분해 답한다
  • ✦"두 번째 거 해설 들려줘" → 화면 2번 유산의 상세와 공식 한국어·영어 해설(실존분)을 연결. 석굴암 안내판 QR에서도 첫 해설 요청으로 재생
  • ✦"경주향교 기준 걸어서 30분 안 조선 시대 유적 코스" → 7정류장(10건)·총 직선거리 5.6km와 같은 표를 복사·TSV·인쇄. 입력 시간은 후보 검색 반경이며 전체 코스 시간이 아님을 안내

니즈 선도 포인트(제안 시)

  • →계획서 표 출력(장소·종목·소재지·화장실/주차 거리·구간 거리, 같은 경내 묶음)
  • →공중화장실 33,820·주차장 18,939 표준데이터 교차 — 거리값·'정보 없음' 구분·기준일 고지
  • →학생 눈높이 쉬운 요약(AI 생성 라벨)
  • →안내판 QR 딥링크(?focus=유산ID)로 그 유산 화면에서 시작
  • →파일럿 운영 로그를 활용사업 성과·교육 수요 근거로 수집(현재 로그는 개발·평가용)
  • →여권 거점 태그·향토유산·외국어 전면화는 라운드 2

결과평가 (브라우저 실사용)

Round 169.0미달 (<80)
2026-10-09
기준P1 타겟 고객(교사·답사객) 실사용P2 UX/UI 디자이너 실사용P3 사업·제안 심사위원 실사용
첫인상UIUX121112
대화정확성121212
지도연동979
정보품질111211
와우실현121110
견고성989
응답속도666
합계716769
P1 타겟 고객(교사·답사객) 실사용

공식 해설, 대화형 제외, 학교 기준 코스와 계획서 표는 교사에게 분명한 효용이 있고 두 번의 핵심 코스 재현도 안정적이었다. 그러나 화면 번호 오류와 30분 조건의 불명확한 해석 때문에 내일 학운위 계획서에 그대로 붙여 제출할 수준은 아니다. 현장 확인을 전제로 한 초안 도구는 될 수 있지만 고객 제안 전 수정이 필요하다.

  • 지도 이동 뒤 화면 목록 답변의 번호·장소를 실제 visible_ids와 일치시켜야 한다. grade-10.png의 12번→11번 자리표시자 오류는 핵심 약속인 답변=지도 번호를 깨뜨린다.
  • 교사용 30분 코스의 시간 의미를 명시해야 한다. 향교 5.6km·학교 6.5km는 전체 코스 30분 여부를 확인할 수 없고, '이 코스 전체를 30분 안에 걸을 수 있다는 뜻이야?'에 '그 정보는 없어요'만 답한다(customer-probe/teacher-04.png 및 학교 코스 로그). 반경 추정과 전체 이동 시간을 구분하지 않은 채 계획서에 붙일 수 없다.
  • 화면 현황의 나열을 서버의 실제 보이는 항목·화면 번호·장소명으로 구성하고 자리표시자 출력을 금지한다. 지도 이동 뒤 '여기는 뭐 있어?'의 새 탐색 여부도 일관되게 처리한다.
  • '걸어서 30분'을 출발점에서 각 장소까지의 추정 범위인지 전체 코스 시간인지 화면·답변·표에 명시하고, 전체 시간 질문에는 거리 기준과 한계를 설명한다.
  • 교사용 표와 상세에 데이터 기준연도·정보 없음·AI 생성 라벨을 일관되게 표시하고, 모르는 운영 정보는 관리자 문의 경로까지 연결한다. 와우 대본의 두 번째 장소도 실제 정렬과 맞춘다.
P2 UX/UI 디자이너 실사용

코스 생성·정렬·제외·계획서 출력은 두 화면에서 재현됐고 시각적 구조도 잘 잡혀 있다. 그러나 교사의 추천 지시어와 과거 목록에서 답변과 화면이 어긋나는 치명 오류가 남아 현재67점으로 제안 가능 기준80점에 미달한다. S1~S18과 추가 조작을 직접 실행했으며, 음성 마이크 연결 대신 공식 국문·영문 해설의 실제 재생을 확인했다.

  • 교사용 추천 뒤 그중 N번째를 추천 목록의 N번째로 확정해 같은 대상의 상세와 설명을 보장해야 한다. 정상4회와 실패1회가 공존하므로 한 번 성공한 데모로 제안 준비를 판단할 수 없다.
  • 과거 결과를 다시 요청할 때 답변·카드·지도에 같은 결과 집합을 복원해야 한다. 복원이 불가능하면 먼저 재검색 또는 제한을 안내해야 한다. 화면에 없는 옛 목록을 현재 목록이라고 말하는 상태는 제안에 치명적이다.
  • 기획의 S12 여기는 뭐 있어?는 현재 지도 중심 재검색으로, QR 첫 해설 요청은 열린 유산으로 연결해야 한다. 현재는 이전 결과 집계 또는 불필요한 대상 되묻기로 약속한 흐름이 끊긴다.
  • 허브·상세의 두 번째 석굴암/10곳 코스 안내와 코스 화면의 표시된40건 같은 문구를 실제 번호·정류장·반환 건수에 맞춰 정정해야 한다. 학교 제외 후 실제9건인데 전체매칭40건을 표시된40건이라고 말한 사례가 있다.
  • 추천 나열·현재 결과·과거 결과를 구분해 서버가 지시 대상과 표시 집합을 함께 확정하고, 추천 실패 사례와 검색 문맥 전환 후 과거 목록 복원을 회귀 검증한다.
  • 지도 이동 뒤 여기 질의는 현재 중심으로 검색하고, QR 열린 유산은 첫 해설 요청의 기본 대상으로 사용한다. 전체 매칭/반환/가시/정류장 수와 근거 칩의 번호 의미도 통일한다.
  • 허브 데모 문구를 실물 순서와7정류장10건으로 맞추고 모바일의 작은 제외·출력 버튼과11px 정보 글씨를 키운다. 코스·대화 저장과 응답 완료 지연을 줄여 실제 계획 작업의 흐름을 유지한다.
P3 사업·제안 심사위원 실사용

코스 생성·정렬·제외·TSV 출력의 가치와 데스크톱·모바일 시연 재현성은 확인됐지만, 화면 집계와 시군 전체 통계 오류, 인쇄 결과 누락은 담당자와 교사 앞에서 신뢰를 잃을 장면이다. 현재는 데모가 가능한69점이며 제안 통과80점에는 미달한다. 통계·인쇄·추천 지시어를 고친 뒤 운영 트래픽으로 성과 수치를 다시 측정해야 한다.

  • 전체 매칭 수·실제 표시 수·화면 안 수를 구분하고, 시군 전체 집계는 행정구역과 실내 포함 여부를 명시한 정확한 통계로 답해야 한다.
  • 인쇄 미디어/PDF에서 코스 장소 행의 내용이 사라진다. 계획서 출력으로 시연하려면 장소·주소·관리자·거리·출처가 인쇄에 남아야 한다.
  • 5학년 추천 뒤 명확한 “그중 두 번째”가 2세션 중1세션에서 되묻기로 막혔다. 교사 핵심 시연의 지시어 흐름을 재현 가능하게 보장해야 한다.
  • 화면 집계 문구와 시군 전체 통계를 서버에서 조립하고, 전체 조회에는 반경 검색과 야외 기본값을 자동 적용하지 않는다. 표시9/전체40 사례와 경주시 국보27/야외12를 각각 회귀로 검증한다.
  • 인쇄용 코스를 독립 표로 렌더링해 7개 정류장·관리자·편의시설·직선거리·기준일을 PDF에서도 검증한다. 실제 순서에 맞춰 두 번째 해설 대본과 허브 문구도 갱신한다.
  • 추천 목록의 지시어는 모델의 되묻기 여부까지 서버에서 보장하고, 데이터 기준일·지원하지 않는 안전/보행 항목·관리자 확인 절차를 화면에 명시한다. CMS에는 운영/평가와 도메인 구분을 넣어 고객 성과 보고에 사용할 수 있게 한다.

추천 지시어·전체/표시/가시 집계·과거 결과 복원·지도 이동·QR 해설의 상태 오류와 인쇄 누락, 30분 코스 범위 설명을 수정해야 함

Round 273.0미달 (<80)
2026-10-09
기준P1 타겟 고객(교사·답사객) 실사용P2 UX/UI 디자이너 실사용P3 사업·제안 심사위원 실사용
첫인상UIUX121112
대화정확성121212
지도연동989
정보품질12129
와우실현131314
견고성889
응답속도888
합계747273
P1 타겟 고객(교사·답사객) 실사용

코스 표와 PDF, QR 첫 해설, 추천 뒤 두 번째 상세, 지도 이동과 과거 검색 복원은 교사의 계획 초안을 만드는 데 분명한 효용이 있고 이번 실사용에서 안정적으로 동작했다. 그러나 전체 통계 뒤 짧은 조건 질문의 범위가 현재 화면으로 바뀌는 지시어 오류가 두 번 재현되어 제안 통과 기준에는 미달한다. 현장 확인을 전제로 표 초안으로 쓸 수 있지만 통계 문맥과 사진 실패 처리를 보완해야 한다.

  • 경주시 전체 통계에서 지역·지정종목·행정 범위를 다음 턴에도 보존해야 한다. 현재 v7 S19의 정확한 짧은 후속 문장 “야외만 총 몇 개?”가 두 번 모두 실패하며, 전체 통계와 현재 화면 통계가 사용자 의도와 다르게 전환된다.
  • 행정 통계 문맥을 세션 상태로 보존해 “야외만/실내만/그중 몇 개”의 부분 질문도 직전 지역·지정종목·행정 범위를 상속하고, 화면을 명시할 때만 화면 통계로 전환한다. stats-negative와 stats-repeat의 대본을 그대로 회귀로 확인한다.
  • 순위 답변의 각 번호를 단일 실제 결과 항목에 연결한다. grade-2 첫 화장실 정렬에서 3번 불국사와 4번 석굴암을 “3.경주 불국사·석굴암”으로 합친 표현을 제거하고, “제일 가까운 건?”에는 대상 하나와 기준 거리를 먼저 답한다.
  • 사진 프록시 실패 시 깨진 이미지가 남지 않게 하고 안정적인 대체 표시·재시도를 제공한다. 교사용 저장 기능은 새로고침 후 코스와 대화를 이어갈 수 있게 하며, 모바일 긴 범위 안내는 접고 정류장 정보를 더 보여준다.
P2 UX/UI 디자이너 실사용

과거 검색 복원·추천 지시어·QR 첫 해설·인쇄 행·빠른 후속 턴은 개선됐고, 데스크톱과 모바일에서 코스의 실용적인 가치를 확인했다. 그러나 반복되는 정렬 건수 불일치와 통계 후속 문맥 실패, 코스 팝업 번호 혼란으로72점이며 제안 가능 기준80점에는 미달한다. S1~S18과 추가 조작9종을 실제 브라우저로 실행했으며 공식 해설은 실제 재생을 확인했고 음성 마이크 입력 품질은 채점 근거에 포함하지 않았다.

  • 정렬 답변이 실제 표시 집합 수와 일치해야 한다. 현재 상위10곳/실제15곳 오류가 반복되므로 대화와 화면이 같은 대상을 보여준다는 제안의 핵심 약속을 보장하지 못한다.
  • 행정구역 전체 통계 후 야외만 같은 짧은 후속 질문에서도 지역·지정종목·집계 범위를 유지해야 한다. 지역과 종목을 매번 다시 말해야만12건을 얻는 상태는 멀티턴 통계로 제안하기 어렵다.
  • 코스 번호를 팝업에도 적용해야 한다. 패널·답변·마커의2번 경주 최부자댁과 제외 후2번 경주사마소가 팝업에서는5번이라 번호 기반 선택을 혼란스럽게 만든다.
  • 정렬 결과의 표시 수·전달 수·상위 요약 수와 행정 통계의 직전 범위를 서버가 답변까지 확정한다. 첫 턴 정렬15건과 경주시 전체→야외만→박물관 포함 대본을 브라우저 회귀에 추가한다.
  • 지도 팝업도 코스 정류장 번호를 사용하고, 묶음·정렬·제외 전후에 답변·패널·마커·팝업 번호를 함께 검사한다.
  • 모바일 코스 범위 안내를 접거나 요약해 목록에 공간을 돌려주고, 상세 포트폴리오는 최신 기획만 우선 펼치며 과거 버전은 접는다. 표를 자체 가로 스크롤 영역에 넣어390px 문서 폭을 유지한다.
P3 사업·제안 심사위원 실사용

코스 생성·편집·표 복사·인쇄와 QR 첫 해설은 세 번의 대본 및 모바일 실사용에서 안정적으로 재현돼 이전보다 시연 설득력이 높다. 그러나 첨성대를 박물관 소장으로 분류해 야외 검색에서 없다고 안내하고, 기본 이름·선택 상태 질문을 실행하지 못하는 장면이 남아73점으로 제안 통과80점에 미달한다. 공식 원문과 서비스 파생 분류를 구분해 고친 뒤 다시 독립 실사용으로 확인해야 한다.

  • 박물관 소장·실내/야외 여부를 공식 유형분류와 구분해 검증해야 한다. 첨성대·칠불암 같은 현장 유산의 허위 박물관 배지와 야외 검색 누락은 경주시 담당자 앞에서 신뢰를 잃는 오류다.
  • 기본 명칭 검색과 선택된 유산 소개를 실제 결과에 연결해야 한다. 경주 첨성대 보여줘 및 칠불암 보여줘는 그 정보는 없어요라고 답하며 다른20건을 펼치고(classification/transcript.json), QR 선택 상태의 이거 설명해줘는 실행하지 않은 내부 도구명으로 끝난다(cheomseongdae-qr/01.png).
  • 유물·유적건조물의 분류와 실제 소장기관·물리적 실내/야외를 별도 값으로 관리하고 경주의 대표 유산을 현장·관리자·설명문과 대조한다. 첨성대·칠불암·박물관 이전 석탑을 각각 검색·배지·집계 회귀 사례로 삼는다.
  • 정확한 이름 요청과 QR의 이거 설명해줘는 서버가 대상 선택·실행·설명까지 보장한다. 전체 통계 후속 질문의 지역·지정종목·실내 조건을 유지하고, 긴 요청은 지원 가능한 조건을 실행한 뒤 운영정보·보행시간의 한계를 한국어로 답한다.
  • CMS에 운영/개발·평가 트래픽과 도메인 필터를 넣고 완료·오류·사용시간의 정의를 명시한다. 현재 7일 완료율76.1%·오류율15.5%·분당비용은 혼합 로그라 고객 성과로 제시하기 어렵다(portfolio/cms-fold.png). 서비스 자체의 오류 문의·관리자 확인 경로와 교사용 제안 요약 화면도 제공한다.

와우·QR·출력·추천 해소는 재현됐으나 통계 후속 범위, 정렬 건수·팝업 번호, 첨성대 야외 분류 오류로 평균 73점 미달

Round 378.0미달 (<80)
2026-10-09
기준P1 타겟 고객(교사·답사객) 실사용P2 UX/UI 디자이너 실사용P3 사업·제안 심사위원 실사용
첫인상UIUX121213
대화정확성121219
지도연동999
정보품질111211
와우실현141314
견고성889
응답속도999
합계757584
P1 타겟 고객(교사·답사객) 실사용

향교 코스의 계획서 표, 편집 후 번호 정합, QR 공식 해설은 실제로 유용하고 반복 재현됐다. 그러나 유산을 바꾼 뒤 실제 화면·상세 근거와 다른 완료 답변이 반복돼 대화 정확성 치명 오류 상한을 적용하며, 75점으로 게시 기준 80점에 미달한다.

  • 새 검색 뒤 남은 이전 상세 문맥으로 분류·출처 근거와 상세 실행을 생성하는 오류를 해소해야 한다. 카드만 보고 이거라고 질문해도 실제 새 유산 데이터를 읽거나 필요한 상세를 먼저 열어야 하며, 실행하지 않은 상세 열기와 다른 방문 구분을 완료했다고 안내해서는 교사에게 제안할 수 없다.
  • 유산 검색이 바뀌면 이전 선택·상세 근거를 지우고, 단일 결과의 이거/박물관 질문은 실제 새 유산 상세와 실행 결과를 연결한다. 칠불암→고선사지 전환과 상세를 열기 전/후를 반복 회귀로 확인한다.
  • 화장실 가까운 순으로 같은 기본 정렬은 실제 실행과 결과 확인까지 보장한다. 잠시만요로 종료하는 답변을 막고 새 결과가 없으면 기존 번호·조건을 유지한 이유를 설명한다.
  • 실내·단체·체험 가능 여부가 미확인인 요청은 먼저 한계를 짧게 밝히고, 서비스 분류/AI 요약 오류의 운영자 문의 경로를 제공한다. 모바일은 범위 안내를 펼쳐도 코스 여러 행을 비교할 공간을 확보한다.
P2 UX/UI 디자이너 실사용

코스 편집·QR 실제 해설·출력·모바일 배치·팝업 번호와 응답 속도는 개선됐고, 핵심 와우는 데스크톱 두 번과 모바일에서 일치했다. 그러나 새 검색 뒤 분류 질문의 잘못된 답변과 실제로 열지 않은 상세를 열었다는 안내가 두 번 재현돼75점으로 제안 통과80점에 미달한다. 음성 마이크 입력 정확성은 이번 평가 근거에 포함하지 않았다.

  • 새 이름 검색으로 선택 상세가 해제된 뒤에도 이거·박물관 소장품 질문을 현재1건에 해소하고 실제 상세 데이터로 답해야 한다. 현재 정확한 데이터가 있음에도 직전 분류 답변을 닮은 잘못된 설명과 미실행 상세 안내가 반복되어 대화=화면 약속을 보장하지 못한다.
  • 이름 검색 뒤 단일 결과의 지시어를 서버에서 선택하고 분류·방문 구분·근거를 실제 엔티티 값으로 답한다. 위8턴 대본을 그대로 회귀에 추가하고 tools·detailOpen·카드 배지까지 대조한다.
  • 입력창에 명시적 접근성 이름을 제공하고 지도 마커의 키보드 선택 경로를 보완한다. 모바일10~11px 정보와 잘린 이름·주소를 읽기 쉬운 펼침 상태로 제공한다.
  • 새로고침·뒤로 가기 뒤 코스와 대화를 복원한다. 교사에게 보여주는 상세 화면은 긴 기획·평가 문서 앞에 출발점·표 초안·확인할 사항을 간결하게 보여준다.
P3 사업·제안 심사위원 실사용

같은 와우 대본 세 번, 계획서 출력, 모바일 QR 해설과 대표 유산 분류가 실제 화면에서 일치해84점으로 제한된 지자체 파일럿 제안 가능 수준이다. 전국 범위·긴 복합 요청과 운영 문의·성과 보고는 보완해야 하며, 현재 데모·개발 로그를 고객 수요나 계약 근거로 표현해서는 안 된다.

  • 질문에서 요청한 집계 범위와 복합 조건을 보존한다. 전국 등록 건수는 실제 게시10,217건을 답하고, 긴 요청은 지원하는 시대·종목·거리·코스 조건을 실행한 뒤 입장료·버스주차·실제 보행시간 같은 미지원 항목을 구체적으로 설명한다.
  • 운영자 오류 신고 경로와 데이터 수집일/원자료 기준일을 화면과 대화에 제공한다. CMS에는 도메인·고객/개발평가 구분, 완료·오류·사용시간 정의를 넣어 파일럿 성과와 비용을 별도로 보고할 수 있게 한다.
  • 교사3~5명 관찰·계획서 서식1건·경주시 담당자 접촉으로 현재0건인1차 근거를 확보하고, 담당자에게 줄 제안 요약·예시 계획서·검증 범위를 개발 평가 이력보다 먼저 보여준다.

코스·QR·출력·번호는 재현됐으나 새 검색 후 단일 결과 분류 질문에서 이전 근거와 미실행 상세 안내가 생성돼 평균 78점 미달

Round 482.3통과 (≥80)
2026-10-09
기준P1 타겟 고객(교사·답사객) 실사용P2 UX/UI 디자이너 실사용P3 사업·제안 심사위원 실사용
첫인상UIUX121213
대화정확성122322
지도연동889
정보품질121212
와우실현121314
견고성989
응답속도999
합계748588
P1 타겟 고객(교사·답사객) 실사용

향교 코스의 계획서 복사·TSV·인쇄와 QR 공식 해설은 실제로 유용하고, 직전 고선사지 분류 결함도 이번 실행에서는 해소됐다. 그러나 현재 코스 번호를 물으면 다른 장소를 열고 학교 추천·편의시설 비교가 실제 기준점과 데이터에서 벗어나므로 정확성 치명 오류 상한을 적용하며, 74점으로 교사에게 제안 가능한 게시 기준에 미달한다.

  • 코스 묶음이 있는 상태의 어디야·설명해줘·N번·N번째를 현재 정류장 번호로 일관되게 해소해야 한다. 지금 패널 3번과 다른 유산을 상세로 여는 오류가 반복돼 교사가 코스 번호를 믿고 학생을 안내할 수 없다.
  • 학교를 명시한 추천에서도 실제 기준점을 적용하고, 추천한 네 곳 중 비교는 그 네 곳의 실제 속성으로 수행해야 한다. 존재하는 화장실 값을 없다고 단정하거나 실행 없이 다음 동작을 약속하는 응답을 막아야 한다.
  • 현재 코스의 정류장 번호→lead_id를 선택·강조·상세·음성·질문형 위치 확인에 공통 적용하고, 경내 묶음 및 버튼 제외 후 어디야/설명해줘 대본을 회귀에 추가한다.
  • 학년 추천 지름길에서도 발화의 학교 기준점을 해소하고 추천 ID 집합을 저장한다. 최단거리·화장실 최솟값·단일 추천 후속은 실제 구조화 데이터로 계산하며 도구 없이 값 없음이나 실행 예정 문장을 생성하지 않는다.
  • 모바일 코스 비교와 상세 열린 데스크톱에서 잘린 주소·편의시설 값을 펼쳐 읽을 수 있게 하고, 파일럿 전에 최신 편의시설·관리자 연락·운영 문의 경로를 확보한다.
P2 UX/UI 디자이너 실사용

직전 분류 치명 오류가 실제 새 상세 실행으로 해소됐고, 코스 편집·계획서 출력·QR 한국어/영어 해설이 데스크톱과 모바일에서 재현돼 85점으로 제한된 파일럿 제안 가능 수준이다. 이전 지도 팝업 정리, 작업 복원, 모바일 가독성·키보드 접근성과 편의시설 자료 갱신은 여전히 필요하다. 음성 마이크 입력 전반이나 실제 보행·관람 일정의 정확성은 이번 평가로 입증하지 않았다.

  • 새 결과·선택 변경·코스 해제 시 이전 hover 팝업을 제거한다. 마커 위에 포인터를 둔 상태에서 키보드/음성으로 새 검색하는 경로도 회귀에 포함한다.
  • 대화 입력창에 명시적 접근성 이름을 제공하고 개별 마커에 키보드 선택 경로를 만든다. 모바일 11px 정보와 잘린 이름·주소는 상세 펼침으로 읽을 수 있게 한다.
  • 새로고침·뒤로 가기 뒤 대화와 코스를 복원한다. 제안용 상세에는 평가 이력 앞에 예시 계획서·출발점·현장 확인할 항목을 간결하게 보여준다.
P3 사업·제안 심사위원 실사용

새 검색 뒤 분류 오류가 재현되지 않았고, 세 번의 와우 대본·계획서 출력·모바일 QR 해설·전국 집계가 실제 화면과 일치해 88점으로 범위를 명시한 지자체 파일럿 제안이 가능하다. 편의시설 최신성·신고 접수·고객 성과 분리와 1차 수요 근거는 보완해야 하며, 개발·평가 로그를 고객 성과나 계약 근거로 표현해서는 안 된다.

  • CMS에 도메인·고객/개발평가 구분, 완료·오류·사용시간 정의를 추가하고 운영자 신고 접수와 처리 경로를 설정해 파일럿 성과·비용·오류 대응을 보고할 수 있게 한다.
  • 파일럿 지역의 화장실·주차 자료를 최신 보유 목록으로 갱신하고 관리자 연락 경로를 연결한다. 복합 요청은 지원할 조건을 선택지로 제시해 바로 후보 검색과 계획서 표로 이어지게 한다.
  • 교사 3~5명 관찰·계획서 서식 1건·경주시 담당자 접촉으로 현재 0건인 1차 근거를 확보한다. 제안용 첫 화면에는 고객 작업 전후와 실제 출력 표를 앞세우고, 모바일 코스의 긴 장소·주소를 비교하기 쉽게 한다.

고선사지 전환·기존 와우 정상, 평균 82.3 통과. P1의 현재 코스 번호·학교 추천 기준점과 부분집합 비교 오류는 게시 직후 보완 필요.

기획 사전평가

Round 171.3미달 (<80)
2026-10-09
기준P1 타겟 고객(교사·답사객)P2 UX/UI 디자이너P3 사업·제안 심사위원
고객니즈근거111210
와우포인트131314
니즈선도111010
대화지도적합성121212
데이터실현성121112
UIUX컨셉767
비즈니스타당성775
합계737170
P1 타겟 고객(교사·답사객)

교사 입장에서 '학교 근처 조선 시대 유적 3곳 코스'는 진짜 쓰고 싶은 기능이고, 공식 음성해설이 시도지정 유산까지 98% 붙어 있다는 점은 실측으로 확인돼 데이터 기반은 탄탄하다. 그러나 데모 스크립트의 숫자가 실데이터와 다르고 약속한 연락처 필드가 없으며, 내 계획서에 꼭 필요한 화장실·주차·관람 정보는 전부 라운드 2라 지금 버전은 '보여주면 감탄하지만 학교 계획서에 붙이려면 다시 포털과 전화를 뒤져야 하는' 수준이다. 와우를 실데이터에 맞게 다시 쓰고 편의시설 ○× 열만 v1으로 당기면 80을 넘길 수 있는 기획이다.

  • 와우3의 계획서 목록이 약속한 '연락처'가 데이터에 존재하지 않음(상세 API 필드에 전화번호 없음, ccbaAdmin은 기관명). 기획서 §4·§7·S8이 서로 모순—제안서에 쓸 수 없는 주장.
  • 와우1 데모 스크립트('국보 4건, 가장 가까운 건 불국사 삼층석탑 320m')가 기획서의 초기 뷰 실데이터(국보 24건, 그중 12건은 국립경주박물관 한 좌표의 소장 유물)와 맞지 않아 '지도 현황 기반 답변이 정확히 맞는 순간'이 그대로 재현되지 않음.
  • 와우3 출력물을 교사 계획서 기준으로 재정의: '연락처'를 삭제하거나 파일럿 경주 유산의 관리기관 대표번호를 수작업 테이블로 보강하고, 리서치에서 이미 건수 확인된 공중화장실(33,820)·주차장(18,939) 표준데이터 중 반경 300m 교차만 v1으로 당겨 '야외/실내·화장실·주차 ○×' 열을 목록에 넣는다. 페르소나가 원한다고 쓴 '주차·화장실 되는 3곳'을 v1이 실제로 답하게 된다.
  • 와우1·3 데모 스크립트를 경주 실데이터로 다시 쓴다: 박물관 소장 유물(category=유물)은 기본 '유적만' 모드에서 제외하거나 '국립경주박물관 소장 12건' 클러스터 라벨로 묶고, 초기 뷰를 불국사권 줌 14 또는 교촌(경주향교·최부자댁·석빙고) 기준 학교로 고정해 실제 숫자로 와우1(국보 n건)·와우3(조선 유적 3곳)을 기술하고 성공 기준에 그 숫자를 적는다.
  • 시대(era) 빈값 대응과 교사 발화 보강: 경주 표본에서 시도지정·문화유산자료의 시대 필드가 거의 비어 있으므로(시도유형 27/28, 문화유산자료 34/36) 설명문 기반 LLM 추론에 '추정' 배지·근거 문장 인용을 명시하고 회귀 시나리오에 '시도지정 조선 시대 필터' 케이스를 추가한다. 시나리오에 교사 실발화('30명 단체 가능해?', '입장료 있어?', '비 오면 대체 장소', '버스 주차 돼?')와 교과 단원 매핑 스타터('5학년 사회 우리 고장 단원에 맞는 곳')를 넣어 '정보 없어요'로 끝나지 않는 설계로 만든다.
P2 UX/UI 디자이너

데이터 실측과 시나리오 설계는 이 단계 기획서로는 상위권이지만, UX는 색 토큰과 레이아웃 치수까지만 와 있고 대화형 지도가 실제로 무너지는 지점(가려진 화면 집계, 멋대로 움직이는 지도, 음성과 해설 오디오 충돌, 모바일 공간 부족)에 대한 설계가 없다. 데모 대본의 수치와 '연락처'처럼 데이터로 뒷받침되지 않는 약속을 걷어내고 위 세 가지를 한 장씩 그리면 80을 넘길 수 있는 아이템이다.

  • 자체 성공 기준의 치명 항목인 S2('지금 화면에 보물 몇 개')가 현재 설계로는 구조적으로 틀릴 수 있다: '화면'이 패널에 가려진 영역을 포함하고, 집계 대상이 전체 매칭이 아니라 반환 상한(limit) 이내 결과이며, 좌표 결측(보물 40%)이 고지되지 않는다. '화면'의 정의·집계 문구·결측 고지를 기획에 명시해야 한다.
  • 와우3·S10이 약속하는 '연락처'는 API·field_defs 어디에도 없는 필드다. 공공 고객 앞에서 데이터에 없는 출력을 시연 대본에 넣는 것은 신뢰 결함이므로 삭제하거나 출처를 확보해야 한다.
  • 초기 상태와 '화면' 규칙을 명문화: 초기 결과셋을 '경주 지정유산 중심 거리순 상위 20'으로 고정(현 셸의 전국 빈 검색은 경주 밖 항목을 번호로 보여준다), 가시 판정은 패널·카드 띠·시트를 뺀 유효 영역(fit padding과 동일)으로, within_visible 재필터 시 지도 이동 금지, 결과 20건 이하면 클러스터 끔, 답변 문구는 '표시된 20건 중 화면에 7건' 형식, 지도에 거리 기준점(현 위치 또는 중심 십자)을 그린다. 데모 대본의 320m·4건도 실데이터로 다시 쓴다.
  • 음성·오디오 상태 머신을 한 장으로 설계: 음성해설 재생 시 마이크 일시정지 후 재생 종료 시 자동 재개, '그만/정지/영어로' 명령, 플레이어 UI(진행바·국/영 토글·출처), 음성 답변은 2문장 이내+목록은 화면으로, 큰 상태 표시(듣는 중/생각 중/말하는 중)와 끼어들기. 이것이 있어야 와우2가 음성 채널에서도 깨지지 않는다.
  • 모바일·코스·접근성을 구체 화면으로: 바텀시트 3단 스냅(접힘 72px/반 50dvh/전체)과 키보드 열림 시 지도 최소 30dvh 보장, 상세 전체화면에서도 '다음 거'가 되도록 시트 상단에 번호 내비, 되묻기 선택지(S7·S11)는 탭 칩으로; 코스는 출발점 핀→최근접 순으로 정의하고 직선거리임을 표기(또는 OSRM 도보 경로), 새 검색에도 코스 유지, 계획서 항목은 보유 필드(이름·종목·시대·주소·관리자·출처 URL)만; 접근성은 KWCAG 2.2 기준으로 aria-live 결과 알림·마커 키보드 순회·움직임 줄이기·서체(본문/제목) 명시.
P3 사업·제안 심사위원

데이터 실재 검증과 대화 시나리오 설계는 결과평가를 바로 시작해도 될 수준이지만, 사업 논리는 제안서로 쓰기에 아직 설득력이 부족하다. 클라이언트 자신의 공식 앱을 경쟁 분석에서 빠뜨렸고, 인용한 예산 라인이 서비스 구매 성격이 아니며, 가격 앵커의 연도·출처가 틀리고 AI 챗봇 전례도 내부용이라 '누가 왜 돈을 내나'에 답하지 못한다. 포지셔닝(공식 데이터 위의 교사용 코스 설계·대화형 필터 모듈)과 조달·가격 근거를 바로잡으면 80점대 진입이 가능한 컨셉이다.

  • 경쟁·대체재 분석에서 1차 클라이언트(국가유산청)의 자체 공식 앱 '나만의 국가유산 해설사'(위치 기반 반경 20m~5km 검색·4개 국어 해설·사진·영상)와 국가유산진흥원 '방문 캠페인' 디지털 방문자 여권 앱이 빠져 있음. 담당자 첫 질문이 '우리 앱과 뭐가 다르냐/왜 우리 앱에 안 붙이냐'인데 답이 없어 이대로는 다음 미팅이 잡히지 않음.
  • 돈을 내는 경로가 성립하지 않음: 인용한 예산 라인(활용사업 211억=지자체 공모 프로그램 보조, 방문 캠페인 87억=진흥원 기존 운영 사업)은 서비스 구매 항목이 아니며, 계약 주체·계약 형태(용역/수의/입찰)·가격 산출 근거가 없고 가격 앵커의 연도·출처 링크가 틀림.
  • 경쟁 섹션에 '나만의 국가유산 해설사' 앱과 방문 캠페인 여권 앱을 정면으로 넣고, 포지셔닝을 '대체 앱'이 아니라 '공식 데이터 위에 얹는 교사용 코스 설계·대화형 필터 모듈(B2G)'로 재정의할 것. 데모 3분 안에 공식 앱 vs 우리 화면의 같은 질문('조선 시대 석탑만, 걸어서 15분') before/after 장면 1개를 넣고, 와우2는 '음성 재생'이 아니라 '두 번째 거·그중·여기서' 지시어 해소와 화면 집계를 중심으로 다시 쓸 것.
  • 비즈니스 섹션을 조달 현실에 맞게 재작성: 1차 타깃을 '시군 문화관광과 단독 용역(파일럿)'으로 좁히고 계약 주체·형태를 명시, 과금은 bottom-up(수집·LLM 보강 비용, 음성 분당 비용×예상 세션 수, 운영 인력)으로 산출하고 비교 가능한 앵커(지자체 관광 챗봇 구축 수천만 원대 사례)로 교체. 1330 앵커는 2020년 계약으로 정정하고 출처 링크를 바로잡을 것. AI 챗봇 전례는 '내부 생산성용'임을 명시하거나 삭제. 활용사업·방문 캠페인은 '예산 라인'이 아니라 '지자체 응모 프로그램에 번들되는 경로'로 서술.
  • 교육 시장 가정과 데이터 약속을 교정: 교사 pain 중 도구가 직접 푸는 부분(행정 12%)을 솔직히 쓰고, 법적 책임·민원(87%)을 간접 경감하는 산출물(사전답사 계획서·안전점검표 hwp/PDF 출력, 학운위 제출 서식)을 와우3에 결합. 교육청 구매 구조는 에듀테크 시범사업 공모·학교 단위 구매 사례로 뒷받침. '연락처' 약속은 API에 없으므로 '관리자명+시군 안내'로 정정하고, 음성 보유율을 시도 지정 종목까지 측정해 수치로 제시하며 공개 API 저작권 정책(유료 서비스 이용 가능 여부)을 확인한 문장을 추가할 것.

1회차 미달(평균 71.3). 공통 지적: 연락처 필드 부재, 데모 수치가 실데이터와 불일치(박물관 소장 유물 좌표 중첩), '지금 화면' 정의·전체/표시 건수·좌표 결측 고지, 공식 앱(나만의 국가유산 해설사) 누락, 예산 라인이 구매 성격 아님·가격 앵커 오류, 교사 실제 발화(단체·입장료·주차·화장실) 미반영, 시도지정 유산의 시대 빈값, 음성·해설 오디오 상태 설계, 모바일·접근성.

Round 274.3미달 (<80)
2026-10-09
기준P1 타겟 고객(교사·답사객)P2 UX/UI 디자이너P3 사업·제안 심사위원
고객니즈근거121212
와우포인트131415
니즈선도101111
대화지도적합성121212
데이터실현성111211
UIUX컨셉877
비즈니스타당성876
합계747574
P1 타겟 고객(교사·답사객)

교사 입장에서 v2는 '무엇을 답하고 무엇은 못 답하는지'를 정직하게 적고, 공식 앱·조달 구조·화면 규칙·음성 상태까지 1회차 지적을 성실히 고쳐 제안서의 뼈대는 갖췄다. 그러나 내게 가장 중요한 와우3(코스+화장실/주차 ○× 표)은 실데이터로 돌려 보면 석빙고가 빠지고 향교 경내 2건만 남으며, '주차 되는 곳만'에 불국사가 사라진다 — 2019년 화장실 데이터와 관광지 주차장이 빠진 표준데이터를 고지 없이 하드 필터로 쓴 탓이다. 편의시설을 '정보 없음/○/×'로 구분하고 코스 묶기·완화 되묻기를 설계에 넣어 대본을 실제 결과로 바꾸면 80을 넘길 수 있다.

  • 와우3·S4·S5·§12가 실데이터와 맞지 않는다(1회차 치명 결함과 같은 유형의 재발). 경주향교 기준 2.5km 조선 유적건조물에 '화장실 있는 데로'(toilet_within_300m=true)를 적용하면 경주향교 대성전(224m)·동무서무신삼문(244m)만 남고 석빙고(452m)·최부자댁(316m)은 탈락해 코스가 같은 향교 경내 2건이 되며, 초기 불국사 화면에서 '주차 되는 곳만'(S5)을 말하면 불국사·석굴암 전 항목이 사라진다(표준 주차장 데이터 최근접 5,092m). 원인은 공중화장실 표준데이터가 경주 39건·2019년 기준이고 주차장 데이터에 관광지 주차장이 없는데 기획서가 이를 고지하지 않고 하드 필터·○× 표로 설계한 것. 교사가 학운위 계획서에 붙일 열이 거짓 부정을 내면 제안 자리에서 바로 들통난다.
  • 와우3·S4·S5·§12를 데이터가 실제로 내는 결과로 다시 쓰고 설계를 바꿀 것: '화장실/주차 있는 데로'는 하드 필터가 아니라 표의 ○×·거리 열과 정렬 우선순위로 처리(또는 사적지는 경계 기준·반경 500m), 코스 생성 시 같은 경내(좌표 50m 내 동일 관리자) 지정건은 한 곳으로 묶어 '경주향교(대성전·동무서무신삼문·명륜당)'처럼 표기, 조건 충족이 3곳 미만이면 '화장실 300m 안은 2곳뿐이에요, 500m로 넓힐까요?' 완화 되묻기 시나리오(S4-2)를 추가하고 성공 기준을 '향교 1곳+최부자댁+석빙고' 같은 실제 결과로 교체.
  • 편의시설 데이터의 기준일·커버리지를 §7·§11에 고지하고 파일럿 전 보강 단계를 넣을 것: 공중화장실 표준데이터 전수 2017~2020(경주 39건·2019-09-21), 주차장 2026이지만 불국사·석굴암 등 관광지 주차장 누락 → 화면·표에서 '정보 없음'과 '×'를 구분(None을 ×로 보이게 하지 않기), 경주시 관광과가 보유한 관광지 주차장·화장실 목록으로 파일럿 지역을 덮어쓰기, 답변에 '공공데이터 ○년 기준, 현장 확인 필요' 1회 고지. 이것이 되어야 니즈선도 2번('주차 되는 곳만')이 교사 앞에서 '오!'가 된다.
  • 와우1 대본을 자기 규칙과 일치시키고 '추정' 배지를 실제로 작동시킬 것: 사리장엄구는 유물(is_outdoor=false)이라 야외 우선 초기 결과에서 빠지므로 '다음은 다보탑(24m)·청운교백운교(34m)·연화교칠보교(45m)·석굴암 석굴(1.6km)'로 고치고 '두 번째'=다보탑으로 리허설. 빌드 산출물에서 era_text 빈값 1,240건이 LLM 분류됐는데 era_estimated=True가 0건(field_defs에도 없음)이므로 S10·추정 배지가 성립하도록 파이프라인을 고치고, 교사 경로의 학교당 연 가격(교육경비보조금 500만 한도 안)을 §10에 한 줄 추가.
P2 UX/UI 디자이너

1회차의 치명 결함('지금 화면' 정의, 재필터 시 지도 고정, 해설 재생 중 음소거, 코스 패널, 결측 고지, 연락처 삭제)은 기획에 명문화됐을 뿐 아니라 셸에서 실제로 동작함을 스크린샷과 코드로 확인했고, 톤·레이아웃·접근성 항목도 공공 제안에 맞는 수준이다. 그러나 데모 대본과 성공 기준이 자체 '야외 우선' 규칙과 실데이터(사리장엄구=유물, 석빙고 화장실 452m, 경주향교 미등록)에 다시 어긋나고, 선택 시 지도 이동·코스 교체·정지 명령·추정 배지·모바일 코스 패널은 아직 서술 수준이다. 숫자와 규칙을 맞추고 세 공백을 화면으로 그리면 80 통과가 가능한 기획이며, 지금은 '데모는 되지만 대본을 그대로 읽으면 화면과 다른' 75점이다.

  • §4 와우1·§12 성공 기준('화면 안 국보 5건, 최근접 삼층석탑')이 자체 §8 '야외 우선' 규칙과 모순: '불국사 삼층석탑 사리장엄구'(16m)는 category=유물·is_outdoor=false·관리자 불국사박물관이라 기본 검색에서 빠져 화면에는 야외 국보 4건만 뜬다(domain.json 실측). 1회차와 같은 '답변과 화면 불일치' 결함이 수정한 대본에 다시 들어 있어, 숫자(4건) 또는 규칙(유물 포함 시 '박물관 소장 1건 포함' 문구)을 고쳐야 결과평가 스펙으로 쓸 수 있다.
  • §4 와우3·§12('경주향교 기준 … 화장실 있는 데로 … 대성전·동무서무신삼문·석빙고 포함 코스')가 데이터·설정으로 성립하지 않음: 석빙고 최근접 화장실 452m(toilet_within_300m=false)·최부자댁 316m이라 화장실 필터를 걸면 경주향교 경내 2건만 남고, '경주향교'는 agent_config.places에 없어 기준점 해소가 안 된다. 코스 교체('세 번째 대신') 수단도 tool·UI 어디에도 없다.
  • 데모 대본과 §12를 domain.json 실측으로 다시 쓰고 설정을 맞춘다: 와우1은 '표시된 N건 중 화면 안 국보 4건'(또는 유물 포함 규칙 명시), 와우3는 경주향교를 places에 등록하고 화장실 조건을 '직선 500m' 또는 '최근접 화장실 거리 표기'로 바꿔 대성전·동무서무신삼문·석빙고(452m) 3곳이 실제로 나오게 한다. 코스 패널·표에 nearest_toilet_m/nearest_parking_m 숫자 열을 추가하면 ○×보다 교사 계획서에 훨씬 유용하다.
  • 지도 이동 규칙을 완성하고 화면으로 그린다: '선택/상세 열기는 지도를 옮기지 않고 마커 강조만, 화면 밖이면 최소 panTo'를 §8에 추가하고(현 셸은 flyTo로 가시 집합이 바뀜) S2 변형('두 번째 설명해줘' 뒤 '지금 화면에 몇 개?')을 회귀에 넣는다. 거리 기준점은 지도 중심 십자 + 카드 띠 머리의 '기준: 지도 중심(불국사 앞)' 칩으로 위치를 못 박고, 카드 거리 표기 기준도 같은 칩을 따르게 한다.
  • 상호작용 공백 3개를 tool·화면으로 명세한다: (a) 코스 편집 — 패널 행에 '빼기/교체' 버튼과 replace_course_item(index) tool(또는 '제외 후 재검색' 규칙), (b) stop_audio tool과 '그만'의 의미 분기(재생 중이면 정지, 아니면 되묻기), 플레이어 로딩·mp3 실패 폴백·세션 만료 상태 화면, (c) era_estimated를 field_defs에 넣고 카드·시트·답변의 '추정' 배지 위치, '쉬운 요약(AI)' 라벨, 시트 하단 '출처: 국가유산청 국가유산포털'+공공누리 아이콘 고정 위치, 모바일 코스 패널 전체 화면(현 CSS는 시트 내 46% 오버레이로 입력창을 가림)과 키보드 열림 시 접힘 규칙을 구현 항목으로 적는다.
P3 사업·제안 심사위원

1회차의 치명 결함(공식 앱 누락·예산 라인 성격·가격 앵커)은 사실조사를 정확히 인용해 해소됐고, 포지셔닝(공식 데이터 위의 교사용 코스·대화형 필터 모듈)과 화면 규칙·시나리오·라이선스 처리는 제안서에 쓸 수준이다. 그러나 가격표가 자기 산식과 모순되고 수의계약 한도·활용사업 선정 시점 같은 조달 디테일이 틀렸으며, 와우 대본 2개가 자체 필터 규칙·실데이터로 재현되지 않고, 1차 고객인 경주시의 기존 AI 투자(ChatGTS·AI-XR 18억)에 대한 답이 없어 담당자 앞에서 첫 질문에 막힌다. 위 세 가지를 고치면 80 진입이 가능하지만 현재는 '데모 가능, 설득 보강 필요' 단계다.

  • 가격 산식 자기모순: 기획서가 제시한 사용량 가정(월 1만 세션, 텍스트 6턴+음성 2분)의 비용이 연 ≈2,300~2,400만 원으로 '연 운영 800~1,500만 원'을 넘는다. 포함 세션 캡·초과 종량 단가 또는 운영비 재산정 없이는 제안서 가격표를 낼 수 없다.
  • 와우 대본이 자체 규칙·실데이터와 불일치(1회차 '데모 수치 허구'와 같은 유형): 와우1의 사리장엄구는 유물(is_outdoor=false)이라 '야외 우선' 기본 검색(§8·S14·item.json)에서 제외되어 실제 답은 '국보 4건, 두 번째=다보탑'이며 §12 성공기준('국보 5건')과 충돌; 와우3·S4의 '화장실 있는 데로'(300m)를 적용하면 경주향교 자신 2건만 남아 석빙고 포함 ①②③ 코스가 재현되지 않는다(최부자댁 316m·석빙고 452m·월암종택 797m).
  • 가격·조달 정합: 연 운영비에 포함 세션 캡(예: 월 3,000세션 포함, 초과 세션당 ~150원 종량)을 수치로 넣거나 운영비를 재산정하고, 파일럿 2,000~3,000만은 '소기업·소상공인 2인 견적 소액수의(≤1억)'로 계약 형태를 정정('협상에 의한 계약' 삭제), 번들 단가는 500만 중심으로 낮추며, 2027년 활용사업이 이미 선정 완료(244건)임을 반영해 경주시 기선정 프로그램(세계유산 활용·홍보지원) 변경 편입→2028 사이클 순으로 경로를 다시 쓸 것. 관광공사 역사문화형 AI 과제(5천만~1억)는 앵커가 아니라 기업 주체 응모 경로로 병기.
  • 데모 대본을 시스템 규칙·데이터와 일치시킬 것: 와우1은 '표시 11건 중 국보 4건, 두 번째=다보탑'으로 바꾸고 사리장엄구는 '박물관 소장도 보여줘' 턴(S14)에서 등장시키거나 초기 필터를 바꿔 §12도 함께 수정; 와우3·S4의 화장실 조건은 500m 또는 '코스 안 화장실 1곳' 의미로 재정의하고, 경주 공중화장실 표준데이터 39건 커버리지를 고지해 '×'를 '표준데이터 미확인'으로 표기; §7 수집 상태를 '진행 중(5,731/10,361, 결과평가 전 완료)'으로 정직 기재하고 100자 미만 48건·상세 오류 236건 처리 계획과 종목별 음성 보유율(보물 99.4%)을 실제 수치로 교체.
  • 1차 고객 경주시의 AI 지형 대응: ChatGTS(2023·10억)·2026 AI-XR 가상융합(18억/2년, 경주스마트미디어센터·딥파인)·경주GPT·바로봇을 §3 대안표와 §10 경쟁 방어에 넣고 '이 모듈은 코스·대화·편의시설 레이어를 XR·챗봇·시 사이트에 API/임베드로 공급하는 보완재'라는 한 줄 답변과 연계 제안(스마트미디어센터 MOU)을 추가. 교육 쪽은 '학생 개인정보 미수집·성취기준 콘텐츠 비포함' 설계로 학운위 4단계 심의 대상에서 벗어나는 교당 연 소액 구독 상품(단가·학교장터 등록)을 정의해 업셀 사다리 각 단에 구매 주체와 단가를 붙일 것.

2회차 미달(평균 74.3). 공통 지적: 데모 대본이 자체 규칙(야외 우선)·실데이터(화장실 300m 하드 필터로 석빙고 탈락)와 불일치, 가격 산식 자기모순(사용량 비용>연 운영비)·수의계약 한도·활용사업 2027 기선정, 경주시 자체 AI 투자(ChatGTS·AI-XR 18억) 누락, 편의시설 데이터 커버리지(경주 화장실 39건·2019) 미고지, 코스 편집·정지 명령·추정 배지·모바일 코스·QR 플로우 미구현.

Round 373.3미달 (<80)
2026-10-09
기준P1 타겟 고객(교사·답사객)P2 UX/UI 디자이너P3 사업·제안 심사위원
고객니즈근거121212
와우포인트141214
니즈선도111111
대화지도적합성121012
데이터실현성121212
UIUX컨셉757
비즈니스타당성877
합계766975
P1 타겟 고객(교사·답사객)

교사로서 v3는 2회차 치명 결함(하드 필터·커버리지 미고지·코스 편집 부재·추정 배지·가격 모순)을 실제 구현으로 닫았고, 와우1·와우3의 뼈대와 표 복사 내용·경내 묶음·'정보 없음'·QR 딥링크가 실물로 확인된다 — 공식 웹·네이버로는 안 되는 흐름이 맞다. 그러나 '실제 실행 결과로 썼다'는 대본이 내 재현에서 10곳/12곳으로 갈리며 박물관 소장 총기가 코스에 들어오고, 표의 출발점·구간 거리가 사용자가 말한 기준점과 다르며, 평가 URL에서 표 복사가 실패하고, 기획서가 약속한 고지 문구(편의시설·시대추정·박물관 소장)가 답변에서 빠진다. 규칙을 엔진에 고정하고 출발점·복사 폴백·관리자 열·영문 음성 플래그를 고치면 80을 넘길 수 있는 기획이며, 지금은 '데모는 되지만 표를 그대로 학운위에 붙이기 전에 한 번 더 확인해야 하는' 76점이다.

  • 와우3 대본(12곳·삼안총 포함)이 자체 §8 '새 검색 야외 우선' 규칙과 모순되고 실행이 비결정적이다: 같은 명령을 두 번 돌려 1회는 10곳(category=유적건조물), 1회는 12곳(era=조선만) — 2회차에는 국립경주박물관 소장 보물 '삼안총'(총기)과 '경주이씨 양월문중 고문서'가 7번 정류장 '삼안총 외 1'로 초등 답사 코스에 들어갔다. 여기에 코스 패널 출발점이 '지도 중심'(결과 bbox 중심)이라 숭덕전 +1.5km(향교 기준 실제 1.09km)·향교 +2.1km(실제 0.2km)·총 9.7km로 계획서 표의 구간·총 거리가 틀린다. '대본=규칙=데이터를 닫았다'는 v3의 핵심 주장이 교사가 가장 믿어야 할 표에서 다시 어긋난다(1·2회차와 같은 유형, 규모는 작아짐).
  • 야외 우선을 LLM 지침이 아니라 엔진 기본값으로 고정할 것(코스·새 검색은 is_outdoor=true 강제, '유물/박물관/소장' 발화 시에만 해제) → §4 대본을 실제 결과인 10곳→9곳으로 고치고 삼안총을 지운다. 코스 출발점은 사용자가 말한 장소(경주향교 좌표)로 고정해 '출발: 경주향교'와 구간·총 거리를 다시 계산하고 십자도 그 점에 둔다. 두 가지를 회귀 시나리오에 기대값(10곳·출발 라벨)으로 넣어 비결정성을 자동으로 잡는다.
  • '표 복사'에 비보안 컨텍스트 폴백(textarea select+execCommand 또는 .tsv 다운로드 버튼)을 넣고, 표에 '관리자' 열(페르소나 계획서 항목)을 추가한다. 기획서가 적은 답변 규칙 — 편의시설 첫 언급 시 고지 1회, 시대추정 고지, '박물관 소장 N건', 관리자 즉답(S8) — 을 회귀 시나리오의 기대 문자열(expect_contains)로 넣어 §12 '고지 1회'가 실제로 검증되게 한다. '해설 들려줘'에 상세 시트가 함께 열리도록 맞추거나 §4·§9 문장을 실제 동작(플레이어+카드 강조)으로 고친다.
  • 데이터 정직성 복구: 영문 음성 URL을 HEAD로 실존 검사해 has_audio_en을 재계산하고 §7에 종목별 영문 보유율(경주 85%)을 기재한다. era_text가 있는 1,395건은 연도·세기 파서('1613년', '17세기 초', '인조 1년∼순종 4년')로 규칙 분류해 추정 비율을 낮추고 §7에 현재 추정 비율(59%, 조선 2,751/4,645)을 고지한다. 교사 측 선도 포인트를 하나라도 실물로 넣는다 — 5학년 사회 '우리 고장의 문화유산' 단원 스타터 1개와 코스 표 아래 '학생 활동지(쉬운 요약 3문항)' 인쇄 1장.
P2 UX/UI 디자이너

v3는 2회차 치명 지적을 대부분 코드로 닫았다 — 와우1은 대본 그대로 재현되고, 선택 시 지도 고정·정지 명령·표 복사·'정보 없음'·모바일 코스 전체 화면이 실제로 동작하며 데이터 수치도 DB와 맞는다. 그러나 기획서가 '구현됨'이라 쓴 상호작용을 실제로 눌러 보면 코스 패널이 입력창을 덮고, '−'로 뺀 뒤 정렬하면 화면이 전국 20건으로 폭발하며, 주차장 질문에 없는 순위를 지어내고, 모바일은 숨은 마커를 '보인다'고 답하고, QR은 그 유산 중심에 서지 못한다 — 대화형 지도의 함정(답변≠화면, 멋대로 움직이는 지도, 오디오 충돌)이 여전히 핵심 동선에 남아 있다. 시각 시스템과 데이터는 제안 수준이지만 상호작용 정합이 깨져 있어 지금은 '데모 가능하나 설득 부족'(69)이며, 위 세 가지를 고치면 80 통과가 현실적이다.

  • 코스 패널 '−' 빼기(v3 신규, '세션 동기화' 명시) 뒤 '화장실 가까운 순으로'를 말하면 답변은 '경주 조선 시대 유적 6곳'인데 화면·코스 패널은 전국 20건(10,217건 중, 총 직선거리 2,617km, 전국을 가로지르는 경로선)으로 바뀐다 — 데스크톱·모바일 동일 재현(/tmp/p2-r3/c-desktop/12-course-sorted.png, c-mobile/12). 원인은 excludeItems가 빈 필터로 syncView해 세션 필터·정렬을 지우는 것. 게다가 데스크톱 코스 패널이 입력창·마이크·최신 답변을 덮어(c-desktop/10-course-open.png) 대본의 '코스 패널 → 화장실 가까운 순 → 석빙고 빼줘' 흐름을 마우스로 이어갈 수 없다. 와우3가 고객 손에서 재현되지 않는다.
  • S5 환각: 초기 불국사 화면에서 '주차장 가까운 데가 어디야?' → 15건 전부 주차장 정보 없음(DB nearest_parking_m=None)인데 '주차장과 가장 가까운 곳은 경주 불국사 대웅전'이라고 순위를 지어낸다(/tmp/p2-r3/c-initial/22-parking.png). 기획서 S5·§12 '환각 0'과 정반대이며, 편의시설 '정보 없음' 설계를 답변 층이 무시한다.
  • 모바일에서 '지금 화면'이 틀린다: 가림 영역 상수(bottom 110px)가 실제 가림(50dvh 대화 시트+카드 띠)과 달라 카드 띠·시트 뒤에 숨은 마커를 '지금 화면에 보이는 국보 5곳'이라 답하고(/tmp/p2-r3/mobile/01.png), 초기 뷰·코스 결과 마커가 카드 띠 아래에 깔린다(mobile/00·03.png). QR 딥링크도 지도 load의 jumpTo가 focus flyTo를 덮어써 '그 유산 중심'이 되지 않아 숭례문 QR에서 '해설 들려줘' 실패·'근처에 뭐 있어?'가 경주로 점프한다(/tmp/p2-r3/qr/01·02.png) — 경주 안내판(대릉원·첨성대 등 불국사에서 10km+)에서도 같은 현상이 난다.
  • 코스 패널과 대화의 공존·정합: 패널을 입력창·스레드를 덮지 않는 자리(데스크톱은 지도 우하단 또는 카드 띠 대체 영역, 모바일은 카드 띠 자리의 반시트)로 옮기고 코스 요청 시 패널·경로선을 자동으로 켠다. '−'는 exclude_indexes tool과 같은 서버 경로를 타게 해 세션 필터·정렬을 보존하고(빈 필터 syncView 금지), 재검색 기준점을 '지도 중심'이 아니라 발화의 기준 장소(경주향교)로 고정해 표의 출발점·첫 구간·총거리가 사용자가 말한 기준으로 나오게 한다. fitBounds 패딩 이중 적용을 제거해 결과가 보이는 영역 중앙(십자)에 오게 하고, 정렬 칩은 '정렬: 화장실 가까운 순'처럼 한글 라벨로.
  • '화면 상태 = 답변' 보증을 모바일·QR·결측까지 확장: 모바일 가림 영역을 실제(50dvh 시트+카드 띠)로 계산하고 초기 중심·fit 패딩을 그 영역 기준으로; QR focus는 map load 이후에 적용하고 focus 마커가 시트 뒤면 패딩 반영 이동; 새 검색 시 플레이어 정지(§9 약속)와 상세 시트 native audio를 플레이어 하나로 통합(마이크 음소거 공통). 편의시설·수치 비교 질문(S5)은 tool이 '값 있는 N건/정보 없음 M건'을 돌려주고 전부 결측이면 모델이 순위를 말하지 못하게 규칙·회귀 시나리오를 추가한다. 와우2는 play_audio가 상세 시트를 함께 열도록 맞추거나 대본을 고친다.
  • 정보 설계와 상태 화면: 카드에 '박물관 소장'(category=유물)·'사진 제공 제한(공공누리)' 배지와 쉬운 요약 한 줄, 거리는 '30m'로; 상세 시트를 §9 순서(사진→쉬운 요약(AI)→설명→관리자·소재지→편의시설 거리+고지→출처)로 큐레이션하고 내부 플래그(야외=예, 음성해설=예, 시대 추정=아니오, 빈 공공누리, 좌표)는 숨김; '시대추정'은 유적건조물·유물에만 붙이고(자연유산 제외) 비율을 §7에 고지; 0건·되묻기는 카드 띠 자리에 빈 상태 카드로; 첫 메시지·정보 아이콘에 좌표 결측 고지; 재필터 후 카드 띠 스크롤 리셋; 모바일 키보드(visualViewport) 접힘 규칙 구현.
P3 사업·제안 심사위원

2회차의 치명 결함(가격 산식 모순·수의계약 한도·활용사업 기선정·경주시 AI 누락·편의시설 미고지)은 사실 확인 결과 모두 정확하게 닫혔고, 데이터는 전수 수집·게시(10,217건, 임베딩 100%)로 실재하며 와우1은 실제 화면에서 대본 그대로 재현된다. 그러나 실제 브라우저로 와우3를 돌리면 기준점 상실·정렬=코스 순서 문제로 '30분 도보 코스'가 14.9km 표로 나오고, 와우2는 음성과 상세 시트가 함께 뜨지 않으며, 1차 계약 주체 부서명이 실재하지 않는 등 제안석에서 첫 질문에 막힐 디테일이 남아 있다. 코스 기준점 고정·경로 순서 규칙·부서명·근거 없는 수치 세 가지를 고치면 80을 넘길 수 있는 기획이며, 현재는 '데모 가능, 설득 보강 필요'의 75점이다.

  • 와우3의 실행 결과가 기획서와 다르다(3회 연속 '대본≠실행' 유형): 실제 화면에서 '석빙고는 빼줘' 재검색이 '경주향교' 기준점을 잃고 '현재 지도 주변'으로 돌아 집합이 바뀌며(서악서원·경주도봉서당 유입, 월암종택·동경관 이탈), 화장실 정렬 순서가 코스 순서가 되어 코스 패널·표가 '출발: 지도 중심 · 총 직선거리 14.9km'를 보여준다 — '걸어서 30분 코스' 데모의 핵심 산출물(계획서 표)이 교사 앞에서 성립하지 않는다. §4-3의 '12곳/11곳·삼안총' 수치도 실행 결과(10곳/9곳, 삼안총은 유물로 제외)와 다르다. 회귀 18/18은 하네스가 브라우저 카메라 이동을 모사하지 않아 이 결함을 잡지 못한다.
  • 코스 모드 정합: 코스 기준점(경주향교)을 세션에 고정해 exclude·정렬 재검색이 '현재 지도 주변'으로 바뀌지 않게 하고, 정렬은 표 열 정렬로만 두되 코스 순서는 출발점 기준 최근접 경로 순(nearest-neighbor)으로 재배열·패널에 '출발: 경주향교' 표기. §4-3 수치를 실행 결과(10곳/9곳, 삼안총 삭제)로 교정하고, 회귀 하네스에 fitBounds 카메라 반영 또는 Playwright 브라우저 회귀를 추가해 '대본=실행' 주장을 자동 검증.
  • 제안 대상·근거 정정: 경주시 부서명을 실제 조직(활용사업·안내판=문화유산과, 관광 사이트 임베드=관광컨벤션과, AI-XR=경주스마트미디어센터)으로 바꾸고 AI-XR 주관사 딥파인을 명시해 MOU 상대·경쟁 관계를 재설정; '경북 15건·국비 40억'은 출처를 달거나 삭제, 안내판 46억은 국가유산청 전국 예산으로 표기; 교사 3~5명 인터뷰와 학운위 사전답사 계획서 서식 1건을 첨부해 '표 출력' 가치를 1차 근거로 뒷받침; 파일럿 1,900만의 작업 범위별 공수(접근성 점검 포함)와 교육 경로의 N·전환 가정, 2호 지자체 원가 근거를 §10에 추가.
  • 와우2·데이터 표기 정합: '해설 들려줘'는 play_audio_guide+open_detail 동시 실행을 규칙으로 고정(현재 2회 실행에서 각각 음성만/시트만); 사리장엄구 '유형 탑'→공예 및 '박물관 소장' 표기, 첫 메시지에 좌표 결측 고지, 코스 표·답변에 '시대추정' 표기(코스 10곳 중 4곳)와 전체 추정 비율(59%) §7 고지, 표 복사에 비보안 컨텍스트 폴백(execCommand) 추가, 지도 타일 자체 호스팅 계획; 교육 상품은 '학생 눈높이 요약'이 성취기준 콘텐츠로 해석될 여지를 검토해 교사 전용 기능으로 분리하거나 심의 대상 여부를 교육청에 서면 확인.

3회차 미달(평균 73.3). 브라우저 실사용으로 찾은 결함: 제외 재검색·패널 '−'가 기준점·필터를 잃음, 정렬이 코스 순서가 됨, 야외 우선이 LLM 지침이라 비결정적, 주차 결측 순위 환각, 모바일 가림 영역 상수 오류, QR 초기 중심 덮어쓰기, 표 복사 http 실패, 고지 문구 미발화, 영문 음성 플래그 부정확, 부서명·근거 수치 오류.

Round 475.0미달 (<80)
2026-10-09
기준P1 타겟 고객(교사·답사객)P2 UX/UI 디자이너P3 사업·제안 심사위원
고객니즈근거121212
와우포인트151415
니즈선도121111
대화지도적합성101011
데이터실현성131213
UIUX컨셉767
비즈니스타당성877
합계777276
P1 타겟 고객(교사·답사객)

교사로서 v4는 3회차 치명 결함 대부분(야외 우선·기준점·패널 '−'·출발점·복사 폴백·관리자 열·상세+재생 동시·QR 중심·배지·빈 상태·영문 플래그·추정 비율·부서명)을 실제 화면에서 닫았고, 표 복사 결과는 처음으로 학운위 계획서에 그대로 붙일 수 있는 형태였다. 그러나 같은 코스 문장이 3회 중 1회 '출발: 경상북도 경주시·8곳·2km'로 해석돼 표가 틀리고, 교사용 5학년 스타터가 보물을 국보라고 말하며, '관리자 필드에 문의하세요'·내부 지침 누출·답변≠화면이 기획서가 증거로 든 회귀 로그 안에 남아 있어 '환각 0·결정적'이라는 핵심 주장을 아직 믿을 수 없다. 기준점 해소를 서버에서 고정하고 답변 층 검증을 회귀에 넣으면 80을 넘길 기획이며, 지금은 77이다.

  • 와우3 기준점 해소가 비결정적이다: 같은 '경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘'를 3세션 돌려 2회는 10곳·'출발: 경주향교'였지만 1회는 모델이 region='경주시'+질의 "경주향교"로 파라미터를 잡아 8곳·'직선 반경 2km'·코스 패널 '출발: 경상북도 경주시'·첫 구간 석빙고 +2.0km·숭덕전·월암종택 누락(/tmp/p1-r4-copy/minus_sort2.log, after-minus2.png)이 됐다. 기획서 §4·§8·§12가 '엔진 규칙(결정적)'·'출발: 경주향교'라고 단정한 핵심 산출물(학운위 계획서 표)이 세 번에 한 번 교사가 말하지 않은 기준점으로 나온다.
  • 교사용 기능에서 환각과 템플릿 누출이 남아 있다: 5학년 단원 스타터가 tool 호출 없이 화면 13건에서 3곳을 고르며 '경주 석굴암 삼층석탑 — 지정종목: 국보'(실제 보물, 같은 화면 카드에도 '보물')라고 답했고(/tmp/p1-r4-qr/04.png), '이거 입장료 있어?'는 2/2 '관리자 필드에 문의하세요'(규칙 문구를 그대로 복사). 기획서가 증거로 든 regression-plan-v4.json에도 내부 지침 누출(10턴 '규칙: keep 2–4 sentences … Done.')과 답변≠화면(12턴 '경주향교를 제외'라 말했지만 실제로는 대성전이 빠짐)이 들어 있어 '환각 0' 성공 기준이 성립하지 않는다.
  • 코스 기준점 해소를 서버에서 결정적으로 고정한다: 발화에 등록 장소명(agent_config.places의 경주향교·대릉원 등)이 포함되면 모델 파라미터(region=경주시, 질의문)와 무관하게 서버가 region=그 장소·radius_m(30분=2500)로 치환하고, 기준점이 '경상북도 경주시' 같은 광역 라벨이면 코스 패널을 열지 않고 '출발점을 어디로 할까요?'로 되묻는다. 회귀 기대값에 출발 라벨='경주향교'·10곳·반경 2500을 넣고 브라우저로 같은 문장을 5회 반복해 5/5를 확인한 뒤 §4의 초기 '13건'을 15건으로 정정한다.
  • 답변 층 정확성을 규칙·검증으로 닫는다: 5학년 스타터는 반드시 search_entities(kind 우선·region)를 호출하고 이름·지정종목은 tool 결과에서만 말하게 하며 한 줄 소개를 summary_kid에서 끌어온다; '관리자(관리자 필드)' 문구를 실제 manager 값 치환('관리자 불국사(054-…없음)')으로 바꾸고(S9), 편의시설 첫 언급 고지·코스 건수('10곳 중 5곳만 표시')·제외된 이름을 서버 notes로 강제한다. 회귀 하네스에 reply_excludes('관리자 필드','규칙:','We complied')와 화면 상태 대조(제외했다고 말한 이름이 결과에 남아 있지 않은지, 답변의 지정종목이 tool 결과와 같은지)를 추가해 regression-plan-v4.json 10·12·14·16턴 같은 오류를 자동으로 잡는다.
  • 교사 1차 근거와 계획서 정합을 보강한다: 교사 3~5명 인터뷰와 학운위 사전답사 계획서 서식 1건을 첨부해 표 열(관리자·연락 경로·편의시설)을 서식에 맞추고, 관리자 개인명 마스킹('이***')은 '사유(관리자 비공개) — 경주시 문화유산과 문의'로 표기하며, '학교 기준' 발화를 위해 경주 관내 초등학교 좌표를 places에 시드(라운드 2→v1)하고, S8의 잔존 부서명 '문화관광과'를 정정하며, 코스 묶음의 대표 좌표를 목록 순서가 아니라 묶음 중심(centroid)으로 고정해 정렬 후에도 코스 순서·구간 거리가 흔들리지 않게 한다. 세션 대시보드는 실물 화면 1장을 §5에 넣는다.
P2 UX/UI 디자이너

v4는 3회차 치명 결함(입력창 가림·'−' 후 전국 폭발·주차 순위 환각·모바일 가림·QR 중심·플레이어 미닫힘·와우2 시트)을 실제 화면에서 거의 다 닫았고, 엔진 규칙화(야외 기본값·기준점 보존·고지 노트)와 계획서 표(관리자 열·폴백 복사·TSV)는 눈에 보이게 동작한다. 그러나 '답변=화면' 보증이 코스 모드에서 다시 깨진다 — 답변은 '5곳 코스', 패널은 7곳(10건), 지도는 상세가 열려 있으면 움직이지 않거나 패널 뒤 마커를 '보인다'고 세며, 정렬하면 걷는 순서가 바뀌고, 모바일 해설은 플레이어가 시트에 가려진다. S5·S7은 기획서가 '오답 0'으로 둔 항목인데 실행에서 실패하고 회귀 18/18은 답변 품질을 보지 않는다. 시각 시스템·표 출력·데이터 표기는 제안 수준이지만 핵심 데모의 삼자(답변·지도·패널) 정합이 아직 아니어서 '데모 가능하나 설득 부족'(72)이며, 위 세 가지를 고치면 80 통과가 가깝다.

  • 와우3의 답변·지도·패널 삼자 불일치: 4회 실행 모두 답변은 '조선 시대 유적 5곳 코스입니다'(자기만의 순서·한 줄 설명)인데 패널은 '7곳(10건)'이고(03.png·C-course.png·K-course.png·mobile/03.png), §4 순서대로 상세 시트가 열린 채 코스를 요청하면 지도 맞춤이 끊겨 마커 없는 빈 지도가 남으며(03.png; 재현 L1-search-with-detail.png '20건 중 화면 안 4건'), 코스 패널(데스크톱 414px·모바일 50dvh)이 §8 가림 영역에 없어 '지금 화면에 몇 개 보여?'가 데스크톱 10(실제 8)·모바일 11(실제 0)로 틀린다(K-count/K-closed.png, c-mobile/H-count.png). 정렬하면 걷는 순서·구간·총거리까지 바뀐다(03→04.png). 교사가 표를 믿어야 하는 바로 그 장면에서 '답변=화면'이 성립하지 않는다.
  • 기획서가 '오답 0'으로 둔 S5·S7이 실행에서 실패하고 회귀가 이를 못 잡는다: S5(전부 결측)는 금지된 하드 필터 nearest_parking_m_max=300으로 화면을 0건으로 비우고 '볼까요?'(A-parking.png, 데스크톱·모바일 동일), S7은 '그 정보는 없어요.'(B-zero.png) — regression-plan-v4.json 턴 14가 같은 오답, 턴 10은 '규칙: keep 2–4 sentences… We complied… Done.' 내부 지침이 사용자 답변에 누출, 턴 16은 '관리자(관리자 필드)'인데 모두 18/18 통과로 기록됨. '회귀 18턴 통과'를 근거로 쓴 §12 주장이 답변 품질에 대해서는 무효다.
  • 오디오·상세·코스 모드의 상태 충돌: 모바일 '해설 들려줘'는 전체화면 상세가 플레이어·입력창을 덮고(G-audio inputHit=false) 재생되지 않는 native <audio> 2개를 보여줘 '그만'을 할 수 없고(c-mobile/G-audio.png), 데스크톱은 상세 시트가 코스 패널의 구간 거리·'−'를 덮으며(c-desktop/G-audio.png), 코스 모드가 비코스 검색 뒤에도 남아 '출발: 경상북도 경주시 · 총 61.2km' 코스가 그려지고 답변 번호와 패널 번호가 어긋난다(G4-new-search.png).
  • 지도·패널 정합 4건을 셸에서 결정적으로 고친다: ① 코스 패널을 obstruction에 포함(데스크톱 bottom=패널 높이, 모바일은 코스 모드면 지도 전체를 '보이지 않음')하고 fitBounds 패딩도 같은 값으로; ② 상세 열림 중 새 검색 시 setPadding(jumpTo)이 fitBounds 애니메이션을 끊는 문제를 고쳐(패딩 갱신 후 fit, 또는 fit에 padding을 직접 전달) 항상 결과가 보이는 영역에 들어오게; ③ 코스 모드는 비코스 새 검색에서 자동 해제(또는 '코스로 보기' 토글만 유지)하고 코스 순서는 정렬과 독립되게 그룹 리드를 '출발점 최근접 멤버'로 고정해 정렬 후에도 정류장·구간·총거리가 그대로; ④ 데스크톱 상세 시트가 열리면 코스 패널 폭을 시트만큼 줄이고, 재필터 후 카드 띠 스크롤을 1번으로 리셋한다.
  • 답변 층을 화면과 묶는다: 코스 턴은 tool 결과에 패널과 동일한 course_stops(묶음·순서·구간)를 넣고 '목록 최대 5개' 규칙의 예외로 두어 답변이 '정류장 7곳(10건), 출발 경주향교, 총 5.6km'를 패널과 같은 순서로 말하게 한다. 편의시설 범위 필터(nearest_*_m_max)는 사용자가 '300m 안만'처럼 명시하지 않으면 서버가 거부(search_defaults 같은 엔진 규칙)하고, 전부 결측이면 고정 문구('표준데이터에 주차장 정보가 없어요 — 현장 확인 필요')를 notes로 강제한다. 0건 되묻기 문장은 zero_result_suggestions로 서버가 조립해 '그 정보는 없어요'를 막고, 회귀 하네스에 답변 품질 검사(expect_contains·금지 문구·'규칙:' 같은 지침 누출 패턴·'관리자 필드' 같은 플레이스홀더)를 넣어 18/18이 실제 의미를 갖게 한다.
  • 오디오·상세 UI를 하나로: 상세 시트의 native <audio> 2개를 없애고 플레이어 하나(데스크톱은 대화 패널, 모바일은 시트 하단 고정 바에 플레이어+입력창 노출, 시트는 70dvh)로 통합해 '해설 들려줘 → 그만'이 시트를 닫지 않고 이어지게; 마이크 음소거도 그 플레이어 하나에 묶는다. 상세는 §9 큐레이션 순서(사진→쉬운 요약(AI)→설명→관리자·소재지→편의시설 거리+고지→출처)를 라운드 2가 아니라 파일럿 전에 적용하고 내부 플래그(시대 추정: 아니오, 야외: 예, 좌표)와 칩의 내부 키(include_indoor=false, nearest_parking_m_max, q로 들어간 '걸어서 30분')를 숨기거나 한글 라벨로; 관리자 열의 마스킹 개인명은 '개인(비공개)'로; QR 2단계 '근처에 뭐 있어?'는 안내판 반경(예: 1km, 결과에 맞춰 줌아웃)으로 고정한다.
P3 사업·제안 심사위원

v4는 3회차 치명 결함을 엔진과 사실 양쪽에서 실제로 닫았다 — 기준점 고정·제외 시 유지·박물관 소장 배지·상세+플레이어·관리자 열·TSV·부서명·딥파인·영문 39%·추정 47%가 실행과 데이터로 확인되고, 가격·조달 산식은 검산이 맞으며 와우1·2는 5/5 재현된다. 그러나 제안의 핵심인 와우3가 대본 순서에서 빈 지도로 열리고 LLM 인자 층이 5회 중 2회 이탈하며, '오답 0' 주장의 근거 파일이 스스로 그 반대를 보여 준다. 제안 가능 문턱 바로 아래(76)이며, 코스 턴 결정화·답변 검증 하네스·조달 패키지 정리 세 가지를 닫으면 80을 넘는다.

  • 와우3 데모 재현성: 대본 순서(와우1→2→3)에서 3/3 지도가 코스 영역으로 이동하지 않아 패널만 열린 빈 지도가 되고 엔진이 '화면 안 0개'라 답하며, LLM 인자 층은 5회 중 2회 이탈(기준점 '경상북도 경주시'·8건 / tool 미호출 "search_entities로 찾을까요?") — 공무원 앞 핵심 장면이 리허설 운에 달려 있다.
  • 근거 주장의 신뢰: §12 '환각 0·치명 항목 오답 0·회귀 18/18'의 근거 파일(regression-plan-v4.json)이 추론 누설, 제외 항목 오설명(대성전 제거를 '경주향교 제외'라 발화), S7 미충족, '(관리자 필드)' 자리표시자 발화를 담고 있고 하네스는 답변 정합을 검사하지 않는다 — 기획서의 실행 근거 주장이 자기 증거와 어긋난다.
  • 코스 턴을 결정적으로 만들 것: 'X 기준으로'를 LLM 이전에 커스텀 장소 테이블로 파싱해 location을 서버가 고정하고, 코스 의도는 확인 질문 없이 tool을 강제 호출(내부 tool 이름·영문 규칙 문구·자리표시자 출력 금지), 상세 시트·플레이어가 열린 상태에서도 새 검색은 시트를 닫고 fitBounds. 하네스에 답변 검사(내부명·영문 규칙·'(관리자 필드)' 금지, 답변의 항목·번호가 tool 결과와 일치, S7 완화 문구)를 추가하고 §4 대본을 브라우저로 5회 돌린 통과율을 §12에 기재.
  • 조달·계약 현실화: 파일럿을 한 패키지(2,300~2,500만, 소기업 2인 견적) 또는 1,900만 단일 범위(타일·인증은 2차년)로 정리해 분할 발주 소지를 없애고, SW기술자 노임단가×제경비×기술료로 14인일 금액 산출표를 첨부; 공급자 소기업 확인·소재지, 경주시 수의계약 운영기준·지역업체 우선 조항 확인; 경주AI&미디어센터 개편(2026-07)을 반영해 '센터가 운영 주체, 우리는 API/모듈 공급(연 운영비=센터 예산)' 시나리오와 딥파인 협력 조건을 §2·§10에 추가; 활용사업 보조금의 SW 구독 집행 가능 여부를 국가유산청 집행 기준으로 확인; 3년·3시군 기준 매출·원가 표 1개.
  • 1차 근거와 업셀 실물: 교사 3~5명 인터뷰·학운위 사전답사 계획서 서식 1건, 문화유산과/디지털정책과 사전 접촉 메모 1건을 §3에 첨부; 5학년 스타터를 게시본에 반영(seed 재실행)하고 '답변 목록은 엔진 번호를 그대로 쓴다' 규칙+회귀로 모델 번호와 엔진 인덱스 불일치를 막기; 세션 대시보드 화면(분당 비용 실측)을 §5에 캡처로 제시.

4회차 미달(평균 75.0). 공통 지적: 코스 턴의 답변·지도·패널 삼자 불일치(모델이 region=경주시+q로 기준점 이탈 5회 중 1~2회, 상세 열린 채 새 검색 시 지도 미이동, 코스 패널이 가림 영역에 없음, 정렬 시 코스 순서 변동, 답변 '5곳' vs 패널 7곳), 답변 품질(지침 누출·'관리자 필드'·0건 문구·tool명 노출·5학년 번호 불일치)과 회귀 하네스의 답변 미검사, 모바일 상세가 플레이어 가림, 상세 스키마 덤프·칩 내부 키, '학교 기준' 불가, 조달 분할 발주 소지·노임 산출 근거·경주AI&미디어센터 개편 미반영, 1차 근거 부재.

Round 578.0미달 (<80)
2026-10-09
기준P1 타겟 고객(교사·답사객)P2 UX/UI 디자이너P3 사업·제안 심사위원
고객니즈근거121211
와우포인트161516
니즈선도111211
대화지도적합성101112
데이터실현성131313
UIUX컨셉878
비즈니스타당성887
합계787878
P1 타겟 고객(교사·답사객)

교사로서 v5는 4회차의 치명 결함을 실제 화면에서 전부 닫았다 — 경주향교·월성초 기준점이 매번 고정되고, 코스 답변·패널·지도가 같은 객체(7곳(10건)·5.6km·구간 거리)를 읽으며, 정렬해도 걷는 순서가 유지되고, TSV 표는 관리자('개인(비공개)')까지 갖춰 학운위 계획서에 그대로 붙일 수 있다; 모바일·QR도 약속대로다. 그러나 교사용 두 번째 기둥인 5학년 추천 흐름에서 '그중 두 번째'가 4회 중 한 번도 나열의 두 번째를 열지 않았고, 학교 기준 코스의 정렬 답변이 패널과 다른 값(남고루 '정보 없음' vs 407m)을 말해 '답변=패널' 보증이 코스 턴 밖에서는 아직 성립하지 않는다. 와우3는 제안 가능 수준이지만 교사 플로우의 지시어·정렬 답변 두 가지를 서버에서 고정하고 1차 근거를 붙이기 전까지는 78이다.

  • 교사용 핵심 플로우의 지시어 오해소: 5학년 단원 추천 목록(화면 순번 1·10·9 / 1·4·8·9·10 등으로 3~5곳 나열) 뒤 '그중 두 번째는 아이들한테 어떻게 소개하면 좋아?'가 4회 중 3회 나열에 없는 화면 2번(경주 진평왕릉·경주황오동삼층석탑·경주 불국사 대웅전)을 열어 그 소개를 하고 1회는 되물었다(/tmp/p1-r5-teacher 04.png, /tmp/p1-r5-s18a 02.png, /tmp/p1-r5-s18b, /tmp/p1-r5-teacher2). §5·§6 S18·§12가 '그 나열의 두 번째를 화면 순번으로 호출(실행)'이라 적은 것과 다르고 회귀 하네스는 후속 지시어를 검사하지 않는다. 번호 보정도 접두 매칭으로 '3. 경주 불국사 다보탑 / 3. 경주 불국사' 중복 번호를 만든다.
  • '답변=패널' 보증이 정렬 턴에는 없다: 월성초등학교 기준 코스에서 '화장실 가까운 순으로'가 2/2 패널과 다른 답을 했다 — '5.경주 남고루(정보 없음)'(패널·domain.json은 407m, /tmp/p1-r5-teacher 02.png), 그리고 화장실 순서에 코스 구간거리(+185m·+615m…)를 붙여 '→ … 총 직선거리 6.5km'로 그 순서가 걷는 경로인 것처럼 서술(/tmp/p1-r5-teacher2). 경주향교 흐름은 4/4 정확했으므로 데이터가 아니라 답변 층 문제이며, 교사가 표 대신 답변을 받아 적으면 계획서 수치가 틀린다.
  • 목록형 답변 뒤 지시어를 서버가 해소한다: 모델이 나열한 (화면 순번, 이름) 쌍을 세션 'last_enumeration'으로 저장하고 '그중 N번째'는 그 목록의 N번째 → 화면 순번으로 open_detail index를 치환(없으면 '목록의 2번째 ○○ 말씀이죠?' 되묻기); 번호 보정의 이름 매칭을 완전 일치·최장 일치로 바꿔 '경주 불국사'/'경주 불국사 다보탑' 충돌 제거; 회귀에 S18 2턴째 검사(열린 상세 이름 == 나열 2번째 이름)와 브라우저 5회 반복 통과율을 §12에 기재.
  • 정렬·편의시설·제외 턴도 코스 턴처럼 서버 notes로 답변을 고정한다: sort_results 결과에 '이름(값 또는 정보 없음)' 순서 문자열을 notes로 내려 모델이 그대로 읽게 하고 코스 모드에서는 '정렬 목록'과 '걷는 순서·구간'을 분리 문장으로 강제; 'notes:'·'한 번 고지했어요'·'표기:' 같은 구조어를 금지 문구·후처리에 추가; '세 번째 대신 더 가까운 걸로'는 제외 후 다음 최근접 후보를 보충(backfill)하고 제외·보충 이름을 답변에 명시; 코스 요청 턴의 불필요한 open_detail을 서버가 무시.
  • 못 답하는 항목과 데이터 표기를 결정화하고 1차 근거를 확보한다: 열린 상세가 없을 때 '이거 입장료/전화번호'는 '어느 곳인지' 되묻기 또는 직전 코스의 관리자 집합+'소재지 지자체 문화유산 담당 부서' 문구를 서버가 보충(S8·S9 회귀에 '관리자' 또는 '담당 부서' 포함 검사); 상세 큐레이션의 쉬운 요약은 길이와 무관하게 첫 섹션으로 고정; 유형(kind) 오분류(무덤류 46건 '성곽·요새' 등) 재분류 후 §7에 kind_unresolved 1,285건·오분류율 고지; 경주 관내 교사 3~5명 인터뷰·학운위 사전답사 계획서 서식 1건·담당 부서 접촉 메모 1건을 제안 전에 첨부.
P2 UX/UI 디자이너

v5는 4회차의 치명 결함(답변·지도·패널 건수 불일치, 빈 지도, 패널 뒤 집계, 정렬 시 순서 변동, 모바일 지도 0%, 오디오 2개, 스키마 덤프, 칩 내부 키, 카드 3번부터, 코스 끈적임, S5·S7)을 실제 화면에서 거의 전부 닫았고, 코스 턴은 5/5 세션에서 패널·지도·답변이 글자까지 같았다 — 시각 시스템·계획서 표·QR·학교 기준점·대시보드 실물은 제안서에 그대로 쓸 수 있다. 그러나 '서버가 보증한다'는 삼자 정합이 정렬 턴에서는 성립하지 않아 같은 와우 장면에서 답변이 다른 코스를 말하고, 모바일 코스 모드는 답변 자체를 숨기며, 번호 체계가 셋이라 교사가 아이들에게 '몇 번'이라 말할 수 없다. 데모는 되지만 설득의 마지막 10%가 비어 있는 78점이며, 정렬·제외 답변의 서버 조립과 번호 통일, 모바일 스레드 노출을 닫으면 80을 넘는다.

  • 정렬 턴의 '답변=패널' 미보증: '화장실/주차장 가까운 순으로' 7회 중 3회가 '출발 경주향교 → 1. 숭덕전(+155m) → …'(/tmp/p2-r5/04.png)·'출발 경주향교 → 1.경주 석빙고(+109m) → … · 정류장 6곳(9건) · 총 직선거리 6.1km'(/tmp/p2-r5-custom-d/05-after-sort.png)처럼 코스 형식으로 패널(1. 경주향교 동무… +181m)과 다른 순서를 말하고, API 직접 호출 1회는 화장실 순 목록에 코스 구간 거리를 잘못 붙여 '출발점 월성초등학교 → 1. 숭혜전(+185m) → 2. 경주 내물왕릉(+615m) → …'(패널 1번은 동경관 +486m)이라는 사실과 다른 코스를 진술했다. §4·§8·§12가 '서버가 보증'이라 쓴 삼자 정합의 예외가 와우 대본 2단계에 그대로 있다.
  • 모바일 코스 모드에서 답변이 보이지 않는다: 대화 패널을 112px 입력 바로 접으며 스레드를 display:none 처리해 '지금 화면에 몇 개 보여?'의 답 '9개', '석빙고는 빼줘'의 제외 안내가 화면 어디에도 나타나지 않는다(/tmp/p2-r5-m/04~06.png — transcript의 답변은 DOM에만 있음). §12 '모바일 10/10'은 사용자가 볼 수 없는 수치다. 같은 맥락에서 패널 '−'는 스레드에 아무 기록도 남기지 않아 마지막 답변 '7곳(10건)·5.6km'와 패널 '6곳(9건)·6.1km'가 공존한다(/tmp/p2-r5-custom-d/04-after-minus.png).
  • 정렬·제외·'−' 턴의 답변을 서버가 조립한다: 코스 모드의 sort_results 턴은 reply를 '화장실 가까운 순: 숭덕전 155m · 명륜당 224m · …(걷는 순서는 패널 그대로)' 템플릿으로 서버가 치환하고 '출발 →', '(+Nm)', '총 직선거리' 토큰을 정렬 턴 금지 문구로 회귀에 추가; 패널 '−'·제외 재검색 후에는 '○○을 뺐어요 · 6곳(9건) · 6.1km(순서 변경: 석빙고 3번째)'를 system 메시지로 스레드에 남기고, 중간 정류장 제외는 전체 재조립 대신 기존 순서에서 splice(또는 2-opt)해 한 곳을 빼고 총거리가 늘어나는 일이 없게 한다.
  • 번호 체계를 하나로: 코스 모드에서는 지도 마커·패널·답변이 모두 정류장 번호(1~7, 같은 경내 묶음은 같은 번호)를 쓰고 정렬은 마커를 재부여하지 않게(정렬은 패널 보조 열 '화장실 155m'만 갱신, 지도·순서 고정); 비코스 모드 답변의 '1. (5) 이름'은 '5. 이름'(화면 순번 단일)으로 서버가 정규화하고 카드·마커와 같은 번호 배지를 답변 앞에 붙인다. 코스 모드의 거리 기준 십자는 출발점 마커로 대체한다.
  • 모바일 코스 모드와 '정보 없음' 상태·상세 큐레이션: 입력 바 위에 마지막 답변 한 줄(탭하면 스레드 펼침, 미읽음 배지)을 두어 코스 모드에서도 답이 보이게 하고 패널은 32dvh로; 상세는 §9대로 쉬운 요약을 사진 바로 아래 첫 섹션으로 고정(길이 규칙 대신 field_defs에 section/order 메타), '가까운 주차장' 거리·이름 라벨 분리, 모바일 시트 제목 잘림·.svc-results[data-sheet] 모바일 폭 0 수정; '입장료/휴관일' 등 데이터 밖 질문은 '그 정보는 없어요 — 관리자 ○○(소재지 문화유산과)에 문의' 템플릿을 서버가 보충하고 회귀에 reply_includes로 검사; 답변의 '반경 2km'는 tool 인자(2,500m)로 치환.
P3 사업·제안 심사위원

v5는 4회차의 치명 결함을 실제로 닫았다 — 와우 대본이 제 3세션·기획서 7세션·모바일·QR에서 전부 같은 코스(7곳·10건·5.6km → 6곳·9건·5.2km·'9개')로 재현되고, 기준점 고정·서버 코스 조립·답변=패널·지침 누출 제거·상세/플레이어 통합이 화면에서 확인되며, 조달 패키지(1,900만 단일 범위·2026 공표 노임단가 산출표)와 경주AI&미디어센터 개편·AI-XR·ChatGTS 인용은 원문과 일치한다. 그러나 정렬 상태가 새 장소 코스에 잔존해 '가까운 10건' 라벨이 거짓이 되는 결함이 기획서가 근거로 든 회귀 로그 안에 그대로 있고, 5학년 '그중 두 번째'는 여전히 화면 #2를 열며, 3년 손익표는 같은 문서의 노임단가와 4배 어긋나고 1차 근거는 5회째 0건이다. 데모로 다음 미팅은 잡을 수 있으나 제안서로 내놓기엔 이 셋을 닫아야 하므로 78 — 통과 문턱 바로 아래다.

  • 정렬 상태가 새 장소 코스 요청에 잔존한다: '화장실 가까운 순으로' 뒤 '월성초등학교 기준으로 걸어서 30분 안에 갈 수 있는 유산으로 코스 짜줘'는 패널이 '전체 41건 중 가까운 10건'이라 표기하지만 실제 10건은 화장실 거리 상위 10건(숭혜전 25m·오릉 53m·계림 71m…)이라 학교 최근접 6곳(동경관 486m·삼랑사지 당간지주 637m·경주읍성 687m·황오동삼층석탑 882m·남고루·전랑지)이 빠지고 오릉 2.2km·숭덕전 2.3km가 들어간다(/tmp/p3-r5/sticky, 거리 재계산 확인). 기획서가 근거로 든 regression-plan-v5.json S17 턴(9곳·10건·4.1km)이 바로 이 집합이며 하네스는 통과로 기록했다 — '코스 턴은 가까운 10건·거리순'·'답변=지도=패널 보증' 주장이 자기 증거와 어긋난다.
  • 교사용 업셀 흐름의 지시어 오해소: §5가 '실행 확인'이라 적은 5학년 스타터에서 '그중 두 번째는 아이들한테 어떻게 소개하면 좋아?'가 3/3 추천 목록의 두 번째가 아니라 화면 #2(경주황오동삼층석탑·관리자 '경주역')를 연다(/tmp/p3-r5/g5-1~3). 코스 모드에서도 '세 번째 대신'이 패널 정류장 3번이 아닌 마커 #3을 뺀다 — 공무원·교사가 번호로 말하는 순간 화면과 다른 항목이 움직인다.
  • 새 검색(region/near_me/학교·장소 기준) 턴에서 ctx.sort를 초기화하고 코스 턴은 distance 오름차순을 서버가 강제하며, 패널 라벨 '가까운 N건'은 실제 정렬 키가 distance일 때만 쓴다. 회귀 S17 기대값에 '표시 10건 == 기준점 최근접 10건(거리 단조 증가)' 검사를 추가하고, regression-plan-v5.json의 S17 턴을 정정한 뒤 §12에 '정렬 후 새 장소 코스' 5회 반복 통과율을 기재한다.
  • 서수 지시어를 '직전 답변의 나열'에 묶는다: 서버가 마지막 목록형 답변의 index 배열을 세션에 저장하고 '그중 N번째'의 open_detail/focus 인자를 그 배열로 치환하며, 코스 모드에서는 'N번째'를 코스 정류장 번호로 고정하고 마커 번호를 정류장 번호와 통일(이중 번호 병기 제거). 5학년 흐름을 브라우저 5회 반복해 §5에 통과율을 쓰고, 모델 인자 오류 문자열('되묻기: 검색 조건 오류…')은 UI 칩에 노출하지 않으며, S9는 열린 상세가 있을 때 관리자명을 서버가 답변에 보충한다.
  • §10을 하나의 단가로 다시 묶는다: 손익표 원가를 산출표와 같은 노임단가로 재계산(운영 0.3 FTE≈2,800만 원/년 → Y1·Y2 공헌이익 재산정), 3호 운영은 구축 다음 해(2030)로 이동, 제안가를 산출표 금액(1,863만)과 일치시키거나 직접경비를 맞추고, '연 900만~1,200만'이 원가인지 가격인지 명시한다. 동시에 1차 근거(교사 3~5명 인터뷰·계획서 서식 1건·문화유산과/디지털정책과 접촉 메모)를 §3에 첨부해 기획서가 스스로 정한 '제안 전 필수 과제'를 닫는다.

5회차 미달(평균 78.0, 3인 모두 78). 와우3 코스 턴은 전 세션 동일 재현·4회차 치명 결함 해소 확인. 남은 공통 지적: 정렬 턴 답변이 패널과 다른 '코스' 형식(서버 미보증), 정렬 상태가 새 장소 코스에 잔존(가까운 10건 라벨 거짓), 5학년 '그중 두 번째' 지시어가 나열 아닌 화면 #2를 열음, 번호 체계 3중(답변·마커·정류장), 모바일 코스 모드에서 답변 미노출, 패널 '−' 무음, 입장료/전화 '그 정보는 없어요'로 끝남, 쉬운 요약 섹션 위치 불일치, 라벨 중복, 유형 오분류(왕릉→성곽), 손익표 노임단가 모순·제안가≠산출표, 1차 근거 0건.

Round 680.0통과 (≥80)
2026-10-09
기준P1 타겟 고객(교사·답사객)P2 UX/UI 디자이너P3 사업·제안 심사위원
고객니즈근거121211
와우포인트161517
니즈선도121312
대화지도적합성101113
데이터실현성131313
UIUX컨셉878
비즈니스타당성888
합계797982
P1 타겟 고객(교사·답사객)

교사로서 v6는 5회차의 치명 결함을 실제 화면에서 거의 전부 닫았다 — 코스 안 정렬·빼기·'세 번째 대신'이 서버 문장으로 패널·지도와 글자까지 일치하고(데스크톱 2·모바일 1·변형 4세션), 마커가 정류장 번호 하나로 통일됐으며, 모바일 코스 모드에 답변 바가 생겼고, 패널 '−'가 스레드에 기록되고, 입장료 질문이 관리자 안내로 끝나며, 정렬 뒤 학교 코스가 거리순으로 조립되고, 쉬운 요약이 첫 섹션이고, 왕릉 66건이 고분·왕릉이며, 손익표가 산출표와 맞는다 — TSV 표와 월성초 코스는 지금도 학운위 계획서에 붙일 수 있다. 그러나 오케스트레이터가 준 교사 대본의 첫 두 턴(새 세션 → '화장실 가까운 순으로' → '월성초등학교 기준으로')이 전국 정렬·되묻기로 무너지고 '두 번째 빼고' 한마디에 791km짜리 '가까운 10건' 코스가 나오며, 5학년 '그중 두 번째'가 3회 중 1회 '정보 없어요'라는 거짓 답변과 다른 상세를 보여주고, 데모 대본의 '대신 더 가까운 걸로'가 말과 다른 동작(빼기만, 또는 가장 먼 후보 추가)을 한다. 와우3는 제안 가능 수준이지만 첫 턴 상태 등록·지름길 가드·해석 노트의 서버 조립을 닫고 1차 근거를 붙이기 전까지는 통과 문턱 바로 아래인 79다.

  • 교사 대본의 첫 두 턴에서 나오는 상태 붕괴: 새 세션에서 '화장실 가까운 순으로'(또는 '지금 화면에서 화장실 가까운 순으로')가 화면의 15건이 아니라 전체 10,217건을 정렬해 전국 지도로 튀고(4/4: /tmp/p1-r6-teacher·-sortfirst·-sortvis·-recover 01.png, 포항 제남헌 0.0m…), 이어진 '월성초등학교 기준으로…'가 되묻기로 바뀐 뒤 '두 번째 빼고'를 말하면 서버 지름길이 코스도 없는 상태에서 '답사 코스 · 10곳 · 출발: 지도 중심 · 전체 10216건 중 가까운 10건 · 총 직선거리 791.4km'(포항→봉화→…→부산)를 조립한다(3/3, /tmp/p1-r6-teacher/03.png). 10건은 화장실 거리순이라 '가까운 10건' 라벨이 거짓이고 답변 '출발 첫 장소'≠패널 '출발: 지도 중심'이다 — §8 '지금 화면'·'코스 턴 거리순 강제'·§12 '정렬 뒤 학교 코스 5/5'가 '직전 검색이 있을 때'라는 전제 없이는 성립하지 않는다.
  • 교사용 두 번째 기둥(5학년 추천 → '그중 두 번째')이 3회 중 1회 거짓 답변을 한다: /tmp/p1-r6-g5에서 추천 목록(1·3·7·4·5) 뒤 '그중 두 번째는 아이들한테 어떻게 소개하면 좋아?'의 답변이 '…화면 3번 경주 읍성으로 해석했습니다 — 그 장소에 대한 정보는 없어요'(경주읍성은 설명문 826자·쉬운 요약 보유 → 거짓)인데 화면에는 #7 경주 대릉원 일원 상세가 열리고 이어진 '그거 해설 들려줘'는 7번째를 재생했다(03.png, 칩 '강조: 2번째 · 상세 열기: 3번째'). 서버 해석 노트(resolution.py remap_note)가 답변에 그대로 누출되고 답변≠화면이 되는 경우가 §5·§12의 '3/3' 주장과 달리 남아 있다.
  • 초기 화면 15건을 세션 결과셋(기준점 '불국사 앞 지도 중심')으로 등록해 첫 턴의 정렬·재필터·'N번째'가 전체 DB가 아니라 화면 결과에 적용되게 하고, 서버 지름길('N번째 빼고/대신')은 결과셋·코스가 없거나 직전 턴이 되묻기면 실행 대신 '어느 목록의 N번째인지' 되묻게 한다; 되묻기 턴은 코스 플래그를 켜지 않고, 코스 조립에는 반경(≤ radius_m)·거리 단조 증가 가드를 두어 '가까운 N건' 라벨이 정렬 키가 distance일 때만 붙게 한다. 회귀에 '새 세션 → 정렬 → 학교 코스 → 두 번째 빼고' 턴을 추가해 §12 '5/5'의 전제를 없앤다.
  • '그중 N번째' 뒤 소개 답변도 서버가 머리를 조립한다: 해석 노트를 모델 입력에만 두지 말고 '경주 읍성(화면 3번) — 쉬운 요약: …'을 reply_override 머리 문장으로 넣고 모델은 아이 눈높이 소개만 덧붙이게 하며, 같은 턴의 highlight/open_detail/play_audio 인덱스를 하나의 대상 ID로 묶어 답변·강조·상세·재생이 갈라지지 않게 한다; '해석했습니다'·'화면 노트:'·'(노트:'·'고지되어 있어요'를 금지 문구에 추가하고 5학년 흐름을 브라우저 5회 반복해 통과율을 §5에 쓴다.
  • 'N번째 대신 더 가까운 걸로'는 발화의 '대신·더 가까운'을 서버가 읽어 제외 후 출발점에서 더 가까운 미포함 후보를 그 자리에 보충하고(없으면 '더 가까운 후보가 없어 빼기만 했어요'를 서버 문장으로), '빼고'만 말했을 때는 뒤에 먼 후보를 덧붙이지 말거나 '뒤에 ○○을 채울까요?'로 묻는다; '코스로 보기' 토글도 '−'처럼 스레드에 서버 문장을 남기고, 설명문 HTML 이스케이프(&lt;br/&gt; 등) 정제·TSV 거리 열 단위 통일(m)·화장실 0~2m 좌표 중복 검수를 데이터 단계에 넣는다. 동시에 1차 근거(교사 3~5명 인터뷰·계획서 서식 1건·문화유산과/디지털정책과 접촉 메모)를 제안 전에 첨부해 기획서가 스스로 정한 제출 조건을 닫는다.
P2 UX/UI 디자이너

v6는 5회차의 치명 결함을 실제 화면에서 전부 닫았다 — 정렬·제외·'N번째 대신'이 서버 문장으로 3/3 글자까지 같고, 코스 모드의 마커·패널·답변·'N번째'가 정류장 번호 하나로 통일됐으며, 5학년 '그중 두 번째'가 3/3 나열의 두 번째를 열고, 모바일 코스 모드에 답변 바가 생겨 와우 대본의 말로 하는 경로는 7/7 재현된다. 그러나 같은 개선이 만든 UI 클릭 경로('−'·'코스로 보기')가 다음 턴의 답변을 직전 문장으로 오염시켜 화면과 다른 답을 하고(3/3), 텍스트 세션이 60초 유휴에 죽어 표를 읽는 교사와 설명하는 발표자가 모두 걸리며(모바일에선 무반응), 모바일 코스 패널 CSS가 기획서의 32dvh·답변 바 규칙과 다르다. 말로 하는 데모는 통과 수준이지만 손으로 만지는 순간 깨지므로 79 — 서버 override 수명과 텍스트 유휴 정책 두 가지를 닫으면 바로 80을 넘는다.

  • UI 조작 경로의 상태 오염: 패널 '−'(data-testid=course-exclude-N)나 카드 띠 '코스로 보기'를 누르면 서버가 ctx.reply_override를 만들어 스레드에 적지만 /api/voice/sessions/{id}/tool-call(app/voice/router.py dispatch_tool_call)은 이 값을 비우지 않고, app/bff/handlers.py는 exclude_ids가 필터에 남아 있는 한 ctx.turn_text(직전 턴 문장)만 있으면 다시 만든다. 그 결과 다음 대화 턴이 무엇이든 직전 제외 문장으로 답한다 — '지금 화면에 몇 개 보여?'→'경주 월암종택을 뺐어요. 정류장 6곳(9건)…'(/tmp/p2-r6-probe/p3-minus-then-ask.png), '경주 근처 보물 보여줘'→같은 문장인데 화면은 보물 20건·코스 해제(/tmp/p2-r6-probe/p3-minus-then-search.png), 토글 뒤에는 아무것도 빼지 않고도 '요청한 항목을 뺐어요…'(/tmp/p2-r6-probe/d-after-toggle.png·d-toggle-from-search.png). 3/3 재현. §4·§9가 와우3의 일부로 내세운 버튼이 '답변=지도=패널' 보증을 바로 다음 턴에서 깬다.
  • 텍스트 세션 60초 유휴 강제 종료: 음성 비용 규칙 CO-6(voice_token_idle_seconds=60, main.py _token_idle_loop)이 텍스트 채널에도 적용되고 touch_tokens는 /messages에서만 갱신되므로, 코스 턴 뒤 81초 동안 표를 읽고 '지금 화면에 몇 개 보여?'를 보내면 410 → '세션이 만료되었습니다. 새로고침해 주세요.'(데스크톱·모바일 2/2, /tmp/p2-r6-probe4.log). 새로고침하면 코스·대화가 사라지고, 모바일 코스 모드에서는 이 안내가 display:none 스레드에만 기록돼 입력해도 아무 반응이 없다(/tmp/p2-r6-probe/p4-mobile-idle80.png — 바는 옛 코스 문장 그대로). 교사가 표를 읽고 복사하는 핵심 흐름과 발표자가 1분 설명하는 데모 모두 이 규칙에 걸리며, 대시보드 '토큰 유휴 자동 종료' 다수가 그 증거다.
  • tool-call 경로의 서버 문장 수명을 고정한다: dispatch_tool_call이 output.reply_override를 담은 직후 ctx.reply_override=None으로 비우고(chat 경로와 동일), _exclude_reply는 이번 호출의 exclude_indexes가 있을 때만 만들며 '코스로 보기' 토글은 '현재 결과를 코스로 봤어요 · N곳(M건) · 출발 ○○' 전용 문장으로 분리한다. 회귀에 'UI − 클릭 → 다음 턴 몇 개 보여?/새 검색' 2케이스(답변에 '뺐어요' 토큰 금지)와 §12에 '−'·토글 뒤 턴 통과율을 기재한다.
  • 텍스트 채널 유휴 정책을 음성과 분리한다: CO-6 강제 종료는 channel=voice에만 적용하고 텍스트는 30분 컨텍스트 TTL(이미 있음)만 쓰거나, 유휴 종료 시 셸이 새 세션을 자동으로 열어 마지막 결과·코스·기준점을 sync-view로 복원한다. 만료·오류 system 메시지는 모바일 코스 모드의 답변 바/토스트에도 노출하고(현재 스레드만), 코스 상태(기준점·필터·제외)를 URL 또는 localStorage에 보존해 새로고침·QR 재진입에도 표가 살아 있게 한다. §10 세션 단가·완료율도 이 정책 변경 뒤 재측정 수치로 바꾼다.
  • 모바일 코스 모드 CSS와 셸 디테일을 §8·§9대로 맞춘다: globals.css 345~350의 구 규칙(bottom:112px·40dvh)을 삭제해 패널이 답변 바(54px) 위에 32dvh로 놓이게 하고(푸터 총거리·마지막 행 '−'가 보이도록), '대화 보기'는 코스 모드를 끄지 말고 스레드를 바텀시트로 펼치며, 근거 칩은 서버가 해석한 최종 인덱스('강조: 7번째')를 쓰고, alert를 인라인 토스트로, 'RESULTS/DETAIL'을 한글로, 'N번째 대신 더 가까운 걸로'는 대체 후보를 보충하거나 '더 가까운 곳이 없어 빼기만 했어요'를 서버 문장에 넣는다. 접근성 기본(h1·main 랜드마크, 입력창 탭 순서 앞당김, 칩 ≥11px)도 이번 범위에 넣어 KWCAG 외부 검수 전 재작업을 줄인다.
P3 사업·제안 심사위원

v6는 5회차의 치명 결함(정렬 잔존·'그중 두 번째'·서수 이중·손익표 모순·오류 칩·§6 과장)을 현재 실행과 현재 문서에서 전부 닫았다 — 와우 대본 8문장이 3세션 글자 단위로 같고, 모바일 답변 바·대시보드·조달 산출표·노임단가·경주시 사실 인용이 원문과 일치한다. 남은 것은 서버 보증 밖의 추천 턴(5학년 현재 빌드 5/6), '대신'의 의미, 한국어 구조어, 대본 수치와 재현 명령의 어긋남, 2호 가격 논리, 그리고 6회째 0건인 1차 근거다. 데모로 다음 미팅은 잡히고 제안서로 낼 수 있는 문턱(82)은 넘었으나, '고객이 먼저 미팅을 잡는' 수준은 1차 근거를 붙여야 가능하다.

  • 1차 근거를 붙인다(기획서가 스스로 정한 제출 조건): 경주 관내 초등 교사 3~5명 인터뷰·학운위 사전답사 계획서 서식 1건(교육지원청 체험학습 담당 경유)·문화유산과/디지털정책과 접촉 메모 1건을 §3에 첨부하고 표 열을 서식에 맞춰 조정 — 고객니즈근거·비즈니스에서 가장 큰 상승 여지.
  • 추천(골라줘) 턴도 코스 턴처럼 서버가 보증한다: 나열 최소 3곳·최대 5곳 강제(모델이 1곳만 고르면 서버가 결과 상위로 보충), 추천 턴의 요청 없는 open_detail 무시, 나열 길이 < N이면 '목록의 N번째가 없어요 — 화면 N번 ○○ 말씀이죠?' 되묻기; 'N번째 대신 더 가까운 걸로'는 반경 안 대체 후보가 있으면 보충·없으면 '대체할 더 가까운 곳이 없어 뺐어요'를 문장에 명시; 한국어 '노트:'·'참고(노트):'를 서버 필터·회귀 금지어에 추가. 5학년 흐름 5회 반복 통과율을 §12에 기재.
  • 문서 정합: §4·§12 대본 수치를 §12 재현 명령 순서 그대로 다시 실행해 기재(명령대로면 '세 번째 대신'은 5곳(8건)·5.2km, '몇 개 보여?'는 8/8)하고 '(2/7)' 표기를 통과 세션 수/총 세션으로 정정; 2·3호 구축 1,500만을 산출표 방식으로 재산출하거나(6인일이면 ≈850만) 범위 차이(데이터 재수집·현장 안내판 매핑 등)를 인일로 명시; ChatGTS 10억은 메타버스 포함 사업비로, 2,750만 앵커는 민간 조합·검색 요약(△)으로 표기.

6회차 평균 80.0 — plan_gate 80 통과(P1 79 / P2 79 / P3 82). 와우 대본은 세 평가자 모두 전 세션 동일 재현. 개발 마감(D) 전 반영할 잔여 결함: tool-call 경로(패널 '−'·토글) reply_override 미소거로 다음 턴 답변 오염, 텍스트 세션 60초 유휴 종료, 첫 턴 정렬이 전체 DB(초기 결과 미등록), 서수 이중 재해석, '대신' 보충 의미, 모바일 코스 CSS 충돌(32dvh 규칙 덮어씀), '대화 보기'가 코스 해제, 근거 칩이 해석 전 인덱스, alert·영문 아이브로우·접근성 기본, HTML 이스케이프, TSV 단위, 1차 근거 0건(제안 전 필수 과제).

기획서 (plan.md)

기획서 — 우리 고장 국가유산 답사 길잡이

아이템 1 · 작성 2026-10-09 · 리서치: research.md, items/_research/round1-public.md §2-1 버전 섹션은 최신이 위. 사전평가 피드백 반영 내역은 CHANGELOG.md.


v10 (2026-10-09) — 결과평가 4회차 82.3 통과 후 코스 번호·추천 범위 보완

v9 독립 결과평가: P1 74 / P2 85 / P3 88, 평균 82.3, 게시 게이트 통과. 점수 원문과 472개 증거는 result-evals/round-4/, result-evals/evidence/round-4/에 보존했다. P1이 추가 질문에서 발견한 현재 정류장 번호·학교 추천 기준점·추천 부분집합 비교 오류는 v10에서 보완했다. 82.3은 v9의 독립 점수이며 v10 셀프체크를 새 점수로 해석하지 않는다. 고객 인터뷰·유료 고객은 여전히 0건이다.

1. 한 줄 정의

교사·답사객이 국가유산을 조건으로 고르고, 출발점 주변 후보를 동일한 번호의 지도·코스·계획서 표로 연결하는 대화형 지도.

2. 제안 대상과 최종 사용자

경주시 관광·문화유산 담당부서와 학교 체험학습 사업이 파일럿 제안 대상이라는 가설이다. 최종 사용자는 초등 5학년 교사·답사객이며 구매자 접촉·계약은 없다. 세부 페르소나와 가격 가설은 v9 §2·§10을 유지한다.

3. 고객 니즈와 근거

공식 유산 설명·편의시설 직선거리와 표 작성이 한 흐름에 있다는 기능적 효용은 독립 브라우저 평가에서 확인했다. 실제 교사의 시간 절감·교육 적합성·지불의향은 아직 측정하지 않았다. 공식 자료와 경쟁 서비스 근거는 v9 §3·리서치에 보존하며 고객 관찰로 확대해석하지 않는다.

4. 와우 포인트

  1. 화면 가시 결과를 국보로 재필터하고 전체/표시/가시 수를 구분한다.
  2. 실제 선택 번호의 공식 KR/EN 해설, 석굴암 QR 첫 해설 요청을 연결한다.
  3. 향교 코스 7정류장(10건)·직선거리 5.6km를 같은 표로 내보내고, 석빙고·사마소 제외 후 6곳(9건)·5.2km → 5곳(8건)·5.2km를 유지한다. 시간은 후보 검색 반경이며 실제 완주 시간이 아니다.

5. 니즈 선도

조건 비교·같은 정류장 번호·출처와 기준일이 포함된 계획서 행을 연결한다. 교육 적합성·현재 개방·안전 판단은 교사와 관리자의 확인이 필요하다. 팀 공유·운영자료 수집·여권 거점 연계는 후속이다.

6. 대화 시나리오

기존 v9 §6 대본을 유지하고 다음을 추가한다. 세션마다 실제 패널·응답 ID·속성값으로 검산하며 모델의 문장을 정답으로 삼지 않는다.

순서대화·조작기대 동작
1향교 기준 조선 시대 코스 생성7정류장, 향교 경내 4건 묶음
2패널 2번 제외 버튼해당 member ID만 제외, 남은 6정류장 재번호
3“지금 코스에서 세 번째는 어디야?”현재 패널 3번의 대표 유산을 실제로 열기
4“지금 코스 3번 설명해줘”같은 정류장 ID·상세·지도 번호·근거 칩
5“코스 3번 한국어 해설 들려줘” → “그만”같은 정류장 공식 해설의 실존분만 연결·종료
6“코스 1번 빼줘”해당 정류장의 경내 멤버 모두 제외
7“월성초등학교 기준으로 5학년에게 맞는 유산 4곳 추천해줘”서버 학교 사전으로 해소한 실제 좌표가 출발점
8“위 추천한 장소 네 곳 중 화장실이 제일 가까운 곳만 하나 알려줘”추천 4개 ID 안의 실제 거리값으로 최솟값·동률 답변
9“화장실 가까운 순으로”동일한 4개 ID 집합 유지·번호 재정렬
10“두 번째 설명해줘”정렬 뒤 현재 목록 2번의 실제 상세
11새 고선사지 검색 → 박물관 질문이전 추천/코스 선택을 정리하고 실제 분류·소재지 근거 읽기
12마커 hover 상태에서 키보드 새 검색이전 hover 팝업 제거

추천 후보 4곳은 지도·현재 결과셋에도 1~4번으로 표시한다. 후보 전체 수는 따로 고지하며 이후 비교의 전체 수는 추천 집합 4곳이다. 미등록·먼 동명 기준점은 되묻고 임의 지도 좌표로 바꾸지 않는다.

7. 데이터 전략

국가유산 10,217건, 게시·임베딩 각 10,217건, 학교 지명 사전 12,004곳을 유지한다. 유산 수집 2026-10-09, 화장실 원자료 2017~2020(경주 2019), 주차 2026을 분리한다. 원본·파생 분류·AI 쉬운 요약 라벨은 v9 §7과 같다. 새 엔티티·편의시설 운영자료를 수집한 개선은 아니다.

8. 지도의 역할

코스 모드의 공개 번호는 검색 엔티티 번호와 분리한 정류장 번호다. 강조·상세·해설·발화 제외는 정류장 대표/멤버에 해소하며 버튼의 실제 entity_id/member_indexes는 보존한다. 새 결과·선택·코스 해제 시 hover를 제거한다. 직선 경로를 실제 길찾기라고 표현하지 않는다.

9. UI/UX

기존 한지·먹색·단청 톤과 반응형 셸을 유지한다. 입력창에 접근성 이름을 제공한다. 모바일 작은 글자·긴 주소, 마커 키보드 순회, 새로고침 복원은 남은 백로그이며 개선 완료로 쓰지 않는다.

10. 사업 관점

독립 평균 82.3은 제한된 파일럿 제안 가능성 평가다. 계약·매출·현장 검증이 아니다. 실제 교사 3명 관찰, 계획서 서식 1개, 담당부서 접촉·자료 정정 경로 확보가 다음 사람 작업이다. v9의 운영비·가격 가설은 성과나 시장 견적으로 확대하지 않는다.

11. 리스크와 대응

코스 공개 번호 오류와 추천 범위 오류는 엔진 규칙·실제 데이터 답변·회귀로 대응한다. 오래된 편의시설·연락처 부재·실제 보행 경로 미지원은 그대로 고지한다. 서비스 전담 신고 접수 경로는 아직 미설정이다. 작업 복원·접근성 외부 검수·고객 관찰은 후속 과제로 남긴다.

12. 성공 기준과 결과

v10은 284개 백엔드 테스트, 기존 API 73턴, 새로운 실패 대본 5회(모바일 포함), 기존 와우 9턴, 실제 음성 연결·종료, DB·API 오류 응답·로그·production BUILD_ID를 검산한다. 실행 증거는 result-evals/self-check-v10/에 보존한다. 독립 결과평가 4회차의 통과 점수 82.3을 2호의 bar_to_beat로 사용한다.


이전 기획 · v9 (2026-10-09) — 결과평가 3회차(78.0) 반영: 단일 결과 분류·정렬 실행·전국 집계·출처 안내

v9 (2026-10-09) — 결과평가 3회차(78.0) 반영: 단일 결과 분류·정렬 실행·전국 집계·출처 안내

결과평가 3회차는 78.0(P1 75 / P2 75 / P3 84)으로 미달했다. 코스·QR·출력·팝업은 재현됐으나 고선사지 이름 검색 직후 상세를 열지 않고 박물관 질문을 하면 이전 칠불암 분류·근거를 답하는 치명 오류가 있었다. v9은 단일 결과를 실제 상세 도구로 연결하고 다중 결과는 선택을 요청한다. 기본 정렬도 모델 없이 실행하며 전국 게시 건수·원자료 기준일·미지원 범위를 설정과 DB로 답한다. 현재 독립 점수는 78.0이며 4회차를 준비한다. 고객 1차 근거는 0건이다.

1. 한 줄 정의

국가유산청 공식 데이터 위에서 교사·답사객이 말로 유산을 거르고, 출발점 주변 후보로 코스를 조합해 계획서 표를 만드는 모듈. 지도·답변·코스 표는 같은 정류장 순서와 직선거리를 사용한다. “걸어서 30분”은 출발점에서 후보를 찾는 직선 반경으로 환산하며, 코스 전체의 보행·관람 시간을 보장하지 않는다. 지자체 사이트 임베드와 안내판 QR로 사용한다.

2. 제안 대상(클라이언트)과 최종 사용자

  • 1차 계약 주체(파일럿): 경주시 — 활용사업·안내판·국가유산은 문화유산과, 관광 사이트 임베드는 관광컨벤션과, AI 연계는 경주AI&미디어센터(구 경주스마트미디어센터)·디지털정책과. 경주시는 2026-07-22 조례 개정안을 입법예고(7/228/4)해 명칭을 경주AI&미디어센터로 바꾸고 주요 사업에 **"AI 기반 문화·관광·도시서비스 개발 및 운영"**을 넣었다(경북매일·메트로 2026-07-22, 시의회 심의 후 확정 — 확정 여부는 제안 전 재확인). 수요처가 스스로 운영 주체가 되는 구조이므로 제안은 두 갈래: (a) 문화유산과·관광컨벤션과 파일럿(임베드·QR·계획서 표), (b) 센터가 운영 주체, 우리는 모듈·API 공급(연 운영비는 센터 예산, 딥파인 AI-XR 서비스에 교사 코스·편의시설 레이어를 API로 제공하는 협력 조건). AI 투자 근거: ChatGTS(2023, 국비 5억+시비 5억 — 토큰포스트 원문상 서라벌 메타버스(국토부 디지털트윈 시범)와 합산 사업비), 'AI 기반 현실확장형 가상융합 서비스'(202627, 주관 딥파인, 참여·수요처 경주시·센터, 2년 18억, 첨성대·동궁과 월지·황룡사지; 경북매일 2026-06-09·트위그24 2026-06-10). 계약 형태(지방계약법 시행령 §25①5): 1인 견적 소액수의 ≤2천만 원 → 파일럿 1,900만 원(VAT 포함, 산출표 §10과 동일 금액, 단일 범위). 활용사업은 2027년분 기선정(2026-09, 244건) → 변경 편입 타진, 정식 번들은 2028 사이클(2027-09 공모).
  • 2차: 교육 — 학교·구청·교육청 체험학습 사업. 2026-1학기부터 성취기준 연계·개인정보 처리 학습지원 SW는 교원 의견수렴→학운위 심의→학교장 확정(교육부 2025-12-29). 우리는 **학생 개인정보를 수집하지 않고 성취기준 콘텐츠를 포함하지 않는 '교사용 답사 계획 도구'**로 설계해 4단계 심의 비대상을 노리는 **교당 연 소액 구독(30만 원, 학교장터 S2B 등록 — 요건·수수료 확인 필요)**을 두되, 매출 라인이 아니라 지자체 파일럿의 성과 근거 채널이다(§10). 재원: 구청 교육경비보조금(동대문구 2026 교당 최대 500만 원 사례), 교육청 현장체험학습 지원사업(서울 2026 본예산 10.7억+추경 18억, 사전답사 차량 1.7억).
  • 3차: 국가유산청·국가유산진흥원 — 데이터·표준 파트너. 국가유산청은 202627년 총 30억의 다국어 AI 해설(4대궁·종묘)·46만 건 학습데이터·RAG DB를 직접 구축 중이라 '대화형 해설'을 외부 구매할 가능성은 낮다. 우리는 궁능 밖 지방 지정유산·향토유산·교사용 코스 공백을 맡고, Open-API 보급·조달청 혁신제품 시범구매 계획을 들어 실증 트랙과 방문 캠페인 거점(13코스 100거점) 무상 연계(MOU)로 접근한다. 관광공사 'AI 기반 지역관광 문제해결(역사문화형)' 과제(5천만1억)는 응모 경로.
  • 페르소나 A — 초등 5학년 담임 김수진(38, 경주 월성초): 사회 '우리 고장의 문화유산' 체험학습. 학운위 심의용 사전답사 계획서(장소·주소·관리자·편의시설·이동거리)를 내야 한다. v1이 답하는 것: "월성초등학교 기준으로 걸어서 30분 안에 갈 수 있는 유산으로 코스 짜줘"(전국 초·중·고 12,004곳 장소 사전, 동명 학교는 지도 중심 근접) → 정류장 번호 지도·패널·답변, 지정종목·시대·관리자·화장실/주차 거리('정보 없음')·구간/총 직선거리·계획서 표; "5학년 단원에 맞는 곳 골라줘 → 그중 두 번째는 어떻게 소개해?" → 나열의 두 번째를 열어 쉬운 요약으로 소개. 못 답하는 것(정직 안내): 입장료·단체 입장·휴관일·버스 주차 → "그 정보는 없어요. 관리자인 ○○에 문의해 주세요"(서버가 보충, '관리자 필드' 같은 자리표시자 금지).
  • 페르소나 B — 당일 답사객 박민호(52, 수원): 안내판 QR로 들어와 "근처에 뭐 있어?"(안내판 기준 직선 2km) → 공식 음성해설 → 영문 전환. (근거 약한 보조 페르소나.)

3. 고객 니즈와 근거

니즈근거이 모듈이 푸는 부분 (정직하게)
교사의 체험학습 기획·행정 부담초등교사노조 설문(2026-04, N=21,918) 추진 '부정' 96.2%; 부담 요소 법적 책임 50%·민원 37%·행정 12%(데일리안 2026-05-04). 전교조 2026 실태조사 체험학습 사실상 중단 7.2%(아시아경제 2026-05-04). 소규모·테마형 전환 지침(경기일보 2024-05-30)행정 12%의 '장소 조합·계획서 작성'. 심의 서류용 표(장소·종목·소재지·관리자·편의시설 거리·구간 거리·출발점 주석)를 대화 3턴 안에 뽑는다(실행: 코스 요청→정렬→빼기, 표 복사 1클릭). '10분 절감'은 가설 — 파일럿 교사 5명 관찰로 검증
공식 수요 근거국가유산청 「2024 국가유산교육 정기 실태조사」 학교 교육 부문 제언 "정보 플랫폼 개선"교사용 정보 플랫폼의 구체 형태
경주시: 관광 안내의 AI 전환ChatGTS(2023)·AI-XR(2026~27, 18억, 주관 딥파인) 투자, 경주AI&미디어센터 개편(2026-07)두 사업이 다루지 않는 교사·단체 답사 코스와 편의시설·계획서 출력 층을 센터가 운영할 모듈로 공급 — 담당 부서의 수요 발언은 아직 없음(가설)
지방 유산으로 방문 분산2025년 궁능 관람객 1,781만(+12.9%), 외국인 427만(24%)(헤럴드경제 2026-01-04)지자체 임베드 코스 모듈이 '궁 밖' 유산으로 유도

1차 근거 현황(정직): 교사 인터뷰·학운위 사전답사 계획서 서식 실물·담당 부서 접촉 메모는 현재까지 0건(문서로 만들 수 없는 항목을 지어내지 않는다). 제안 전 필수 과제(§11)로 두고, 그 전까지 표 열(순서·장소·종목·소재지·관리자·화장실/주차 거리·구간 거리)은 학교안전법 시행규칙상 현장체험학습 사전답사 항목(장소·이동 경로·안전시설·편의시설)에 맞춘 가설이다.

현재 대안과 한계

  • 국가유산청 공식 앱 '나만의 국가유산 해설사': 반경 검색·4개 국어 텍스트 해설·방문 스탬프. 코스·대화·음성·교사용 기능 없음, 2026-10-09 현재 스토어 404·웹 my.heritage.go.kr 축소 운영. 우리는 같은 공개 API 위의 보완 모듈.
  • 경주시 ChatGTS·AI-XR: 관광 챗봇과 위치 기반 XR 해설. 교사용 코스·편의시설·계획서 출력 없음 → 센터 운영 모듈/API 공급 대상.
  • 국가유산 방문 캠페인(13코스 100거점): 코스 설계·대화 없음 → '여권 거점' 태그 번들(라운드 2).
  • 국가유산포털(GIS)·네이버·카카오·교사의 ChatGPT+지도앱: 조건 교차·지시어·편의시설·표 출력·출발점 기준 코스가 한 흐름이 아니고, LLM 단독은 좌표·지정 정보를 지어낸다 — 우리는 공식 데이터만 근거로 답하고(회귀 품질 검사 §12) 표로 바로 나온다.

왜 대화+지도가 본질적으로 유리한가: 답사 질의는 조건 교차(종목×시대×유형×거리) → 지시어(그중/두 번째/여기서/세 번째 대신) → 해설 청취 → 표로 저장이 한 흐름이다. 폼은 조건을 하나씩, 해설은 다른 화면, 표는 손으로 옮겨야 한다.

4. 와우 포인트 (같은 순서로 재현)

초기 화면은 불국사 앞(35.790, 129.332), 줌 14, 중심 2km 거리순 15건이다.

  1. “지금 화면에서 국보만 남겨줘” → 지도 위치를 유지하고 가시 결과만 재필터한다. 건수는 전체 검색·표시·현재 가시 결과를 구분한다. 데스크톱/모바일의 가시 범위는 다르므로 특정 숫자를 항상 약속하지 않는다.
  2. “두 번째 거 해설 들려줘” → 화면 2번의 상세와 공식 음성해설을 연결한다. 이 대본의 실제 2번은 불국사 삼층석탑 사리장엄구이며 석굴암이 아니다. 석굴암은 ?focus=11-0000240000000-37 QR로 진입해 첫 “해설 들려줘” → 한국어 → 영어 → “그만” 순서로 확인한다. 영문 해설은 실제 제공된 유산만 지원한다.
  3. “경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘” → 7정류장(10건), 총 직선거리 5.6km, 출발 경주향교. 향교 경내 4건은 1정류장으로 묶인다. 화장실 정렬은 걷는 순서를 유지하고, 석빙고 제외 뒤에는 6정류장(9건)·5.2km, 이어 세 번째(경주사마소) 제외 뒤에는 5정류장(8건)·5.2km가 된다. 표 복사·TSV·인쇄는 같은 열·행·순서로 나온다. 답변·패널·표에 입력한 도보 시간은 검색 반경이며 전체 코스 시간이 아니라는 안내가 붙는다.

재현 명령은 §12에 있다. 개별 후보가 출발점 반경 안에 있어도 전체 이동 거리는 5.6km일 수 있다. 실제 보행 길찾기와 시간표는 지원하지 않는다.

5. 니즈 선도 포인트

포인트제공하는 것한계·검증
계획서 표장소·지정종목·소재지·관리자·화장실/주차장 직선거리·구간거리·출발점·시간 안내를 복사/TSV/인쇄학운위 서식 실물은 아직 0건, 파일럿 교사 확인 필요
학교 기준 후보전국 운영 학교 12,004곳 지명 사전, 동명 학교는 지도 근접 또는 지역 병기월성초등학교는 경주/창원/김제 동명, 전국 검색 후에는 “경주시 월성초등학교”로 지정
학생 눈높이 소개추천 목록의 N번째를 실제로 열고 공식 설명문 기반 쉬운 요약을 AI 생성 라벨과 함께 답함유형·거리 조건으로 실제 검색 후보 4곳을 선택, 교육 적합성은 교사 확인; 상세 대상은 서버가 결정
QR 첫 해설진입한 유산의 상세 선택을 서버 세션에도 등록하고 첫 해설을 즉시 연결공식 음성 제공분만, 요금/휴관은 관리자 확인
운영 근거 수집CMS 세션·오류·비용 로그현재 데이터는 개발·평가용, 고객 사용 성과로 표현하지 않음
확장여권 거점·향토유산·외국어·활동지후속 과업, 현재 완성 기능 아님

6. 대화 시나리오 (결과평가 기본 세트)

기존 회귀 24턴(tools/eval/scenarios/heritage-guide.json)은 S1·S2·S3·S4·S5·S6·S7·S8·S9·S11·S14·S16·S17·S18을 덮고, S10·S12(손으로 지도 이동)·S15(QR)는 브라우저 수동/드라이버 세션으로 확인한다(5회차 지적대로 '1:1'이 아님을 명시).

#대화기대 동작 (실행 결과)
S1"경주 근처 국보 보여줘" → "그중에서 석탑만" → "두 번째 거 설명해줘"region=경주·designation=국보(야외 기준) → within_last_results·kind=탑 → 직전 나열의 2번째 상세 소개
S2"지금 화면에 몇 개 보여?" → "지금 화면에서 조선 시대 것만 남겨줘"서버가 전체 검색·표시·가시 건수로 답(tool 없음) → within_visible·era=조선, 지도 고정
S2-1코스 모드에서 "지금 화면에 몇 개 보여?"코스 패널(실측 높이)·상세 시트가 가린 결과는 '화면 밖' — 실행한 학교 코스 제외 후 전체 42건 중 9건 표시·화면 안 9건. 가시 범위는 실제 visible_ids로 집계
S3"여기 근처에 걸어서 15분 안에 갈 수 있는 사적 있어?"near_me·radius 1200·designation=사적, "직선 반경 1.2km" 1회(반경 표기는 tool 인자 그대로 — '2km'≠2,500m 오류 수정)
S4"경주향교 기준으로 … 코스 짜줘" → "화장실 가까운 순으로" → "세 번째 대신 더 가까운 걸로" / "석빙고는 빼줘"서버 기준점 고정·가까운 10건·거리순·목록=정류장 순서 → payload.course → 정렬 턴은 서버 문장(집합·순서·지도 고정) → '세 번째 대신'은 서버 지름길: 정류장 3 제외·나머지 순서 유지·서버 문장 → "석빙고는 빼줘"는 모델이 exclude_indexes로 호출, 답변은 서버 문장
S4-1결과가 요청 수 미만"조건에 맞는 곳은 M곳이에요. 반경을 넓히거나 조건을 빼면 …"
S5"주차장 가까운 데가 어디야?"명시 조건 전용: 범위 필터는 거리 표현이 없으면 서버가 떼고 거리값으로 답함(결과를 비우지 않음)
S6"그거 해설 들려줘" → "영어로 들려줘" → "그만"play_audio_guide(상세 동시) → lang=en(실존분만) → stop_audio
S7"울릉도에 국보 있어?"region+designation → 0건 → "조건에 맞는 곳은 없지만 지정종목=국보 조건 제외하면 N건 있어요. 볼까요?"(모델이 빠뜨리면 서버가 덧붙임)
S8"이거 누가 관리해?" → "전화번호는?"열린 상세의 관리자 즉답 → "그 정보는 없어요. 관리자인 ○○에 문의해 주세요"(서버 보충; 관리자 비공개면 소재지 지자체 문화유산 담당 부서)
S9"입장료 있어?" / "30명 단체로?" / "휴관일?"동일 — 열린 상세가 없으면 "어느 곳인지 말씀해 주시면 관리자를 안내할게요"
S10"시도지정 중에 조선 시대 것"era 필터, '시대추정' 고지는 세션 1회
S11"고성에 있는 문화재"동명 되묻기(지도 중심 40km 안이면 자동)
S12지도를 손으로 옮긴 뒤 "여기는 뭐 있어?"near_me → 뷰포트 중심 기준
S13"아까 본 석탑들 다시" → "그중 제일 북쪽"세션에 저장한 과거 탑 검색과 지도 범위를 복원 → "북쪽 순 정렬은 지원하지 않아요 …"
S14"경주 박물관에 있는 국보도 보여줘"후보 제외 유산도 포함하여 검색. 박물관 소재는 공식 소재지·관리자에 박물관이 명시된 경우만 표시
S15QR ?focus=<석굴암 ID> → "해설 들려줘" → "근처에 뭐 있어?"그 유산 중심·상세에서 시작 → play_audio → near_me 2km(현장 여부 미확인 후보 등의 제외 건수 고지)
S16"고마워, 이제 끝낼게"end_session
S17(화장실 순 정렬 뒤) "월성초등학교 기준으로 걸어서 30분 안에 갈 수 있는 유산으로 코스 짜줘" → "두 번째 빼고"학교 장소 사전 → 거리순 10곳(정렬 비계승) → 서버 지름길로 정류장 2 제외·순서 유지
S18"5학년 사회 '우리 고장의 문화유산' 단원에 맞는 곳 골라줘" → "그중 두 번째는 아이들한테 어떻게 소개하면 좋아?"출발점 반경 5km의 실제 검색 결과에서 유형 규칙으로 최대 4곳·쉬운 요약 선택(화면 번호 유지) → 나열의 두 번째를 서버가 열고(tool 결과에 해석 노트) 소개
S19“경주시 전체에 국보 몇 개야?” → “야외만 총 몇 개?” → “박물관 소장 포함 전체 수는?”행정구역 전체 게시 데이터 27건 → 현장 답사 후보 15건 → 전체 27건. 짧은 후속도 지역·국보 조건을 유지. “실내는 몇 개?”는 물리적 실내 수 미확인과 후보 제외 12건을 구분
S20학교 코스 → “두 번째 빼고” → “지금 화면에 몇 개 보여?”전체 검색 42건 중 9건 표시, 가시 집합이 9건이면 화면 안 9건. 전체 검색 42건을 표시 건수라고 말하지 않음
S21“코스 전체를 30분 안에 돌 수 있어?”후보 검색 반경임을 설명, 완주 시간 보장하지 않음

| S22 | “경주 첨성대 보여줘” / “경주 남산 칠불암 마애불상군 보여줘” → “이거 설명해줘” → “이거 박물관 소장품이야?” | 실제 이름 검색, 선택 상세 소개, 공식 분류=유물과 현장 유산 구분. 새 이름 검색 뒤 단일 결과의 분류 질문도 실제 해당 상세를 열어 답한다. 첨성대는 화면 국보·야외 재필터에서도 남음 | | S23 | “경주 고선사지 삼층석탑 보여줘” → “이거 박물관 소장품이야?” | 박물관 소재와 야외 전시 후보를 별개로 안내, 물리적 실내외·현재 개방은 보장하지 않음 | | S25 | “첨성대 보여줘”→설명→박물관 질문→“칠불암 보여줘”→설명→박물관 질문→“고선사지 삼층석탑 보여줘”→“이거 박물관 소장품이야?” | 새 검색 직후라도 현재 단일 결과의 실제 상세를 열고 박물관 소재·유적건조물·실제 근거를 답한다. 다중/0건이면 먼저 유산 선택 요청 | | S26 | “서비스에 등록된 유산은 총 몇 개야?” / “전국에 등록된 유산은 총 몇 개야?” | 전국 게시 데이터 10,217건, 직전 경주·국보·현장 후보 조건을 새 전체 질문에 적용하지 않음 | | S27 | “데이터 언제 거야?”→“편의시설 원자료 기준 시점은?” / 오류 신고 / 실제 보행 경로·실내 체험 복합 요청 | 유산 수집일·화장실/주차 원자료 시점 분리. 전담 신고 경로 미설정·현재 개방/실내체험/책임 미확인을 밝히고 지원하는 조건으로 나눠 요청 안내 | | S24 | 초기 결과 “화장실 가까운 순으로” / 코스 2번 팝업 → 2번 제외 → 새 2번 팝업 | 실제 표시 15건과 전체 검색 건수 구분, 동률도 장소별 번호 유지, 팝업·마커·패널의 정류장 번호 일치 |

  • 음성 연결은 가짜 마이크로 라운드당 1회 스모크. 음성 대본 정확성 전반과는 구분한다.

heritage-guide-result.json 추가 14턴은 S12·S13·S19·S20·S21, heritage-guide-classification.json 17턴은 이름·선택 상세·분류와 짧은 후속 통계를 검증한다. 새 heritage-guide-selection.json 18턴은 S25~S27과 기본 정렬을 검증한다. 지도 수동 이동 자체와 QR·인쇄는 별도 브라우저 확인.

7. 데이터 전략 (수집 완료본 기준, 스키마 v6)

  • 국가유산청 공개 API의 좌표 있는 유산 10,217건을 게시한다. 임베딩·공식 설명문·쉬운 요약은 유지하고 이번 분류 재빌드에 새 LLM 호출은 없다. 국문 해설 10,195건, 영문 3,941건. 좌표 결측 5,552건은 제외돼 행정 집계도 공식 전수 통계와 다를 수 있다.
  • 공식 분류와 서비스 분류를 분리한다. 공식 유물을 박물관 소장·실내로 단정하지 않는다. 유형 규칙은 공식 소분류→중분류→대분류→이름 순으로 적용한다. 첨성대는 천문·과학, 고성 운흥사 대웅전은 사찰 건축이다.
  • 방문 구분·구분 근거를 상세에 표시한다. 박물관 소재는 주소·관리자에 박물관이 명시된 경우이며 야외 후보 여부와 독립이다. 첨성대·칠불암은 공식 장소 자료를 별도 확인했다(data/classification_checks.json). 마애·암각 등은 규칙에서 도출한 현장 후보다. 물리적 실내외·현재 개방은 이 데이터로 보장하지 않는다.
  • v7 대비 유형 304건, 현장 후보 플래그 171건을 교정하고 방문 구분·근거 10,217건을 추가했다. 경주시 국보 27건 중 현장 후보 15건, 후보 제외 12건이며 12건은 물리적 실내 유산 수가 아니다. 미해소 유형 1,268건은 data/build_report.json에 기록한다.
  • 공중화장실 33,820건(2017~2020, 경주 2019), 주차장 18,939건(2026), 운영 학교 12,004곳. 최근접 직선거리와 1.5km 밖 정보 없음을 표시한다. 자동 시대 추정 4,764건은 추정 배지·고지로 드러낸다. 관리자 마스킹 개인명은 개인(비공개)로 표시한다.
  • 도메인 스키마·명칭 검색·추천 유형·집계 범위 라벨·상세 근거·지도 테마는 데이터 설정이다. 쉬운 요약은 AI 생성 라벨, 공식 설명문은 원문 출처와 함께 제공한다.
  • 이미지 프록시는 완전 수신·형식 확인·한 차례 재시도·캐시 후 정확한 전송 길이로 응답한다. 원본 장애는 “사진을 불러오지 못했어요” 대체 이미지로 표시하고 로그에 남긴다. 음성 프록시 Range 지원은 유지한다. 공공누리 A/B만 사진 표시, 출처 상시 표기·파일럿 전 이용 조건 서면 확인.
  • OpenFreeMap 외부 타일을 사용한다. 자체 타일 운영·접근성 인증·공공 SLA는 후속 과업이며 파일럿 전 검증한다.

8. 지도의 역할 — "화면" 규칙 (구현·실행 확인)

  • "지금 화면" = 지도 컨테이너 − 대화 패널(좌 432px) − 카드 띠(하단 150px) 또는 코스 패널(실측 높이+24px) − 상세 시트(우 452px). 클라이언트가 매 턴 visible_ids를 보고한다. 패딩을 먼저 반영한 뒤 fitBounds, 코스 패널 높이가 확정되면 한 번 더 맞춘다.
  • 지도를 움직이지 않는 동작: 화면 안/직전 결과 재필터, 코스 안 정렬, 선택·상세(보이는 영역 안이면). 움직이는 동작: 새 검색·지역 이동·코스 조립.
  • 기준점 고정(엔진 규칙): 발화(또는 q)의 등록 장소(places 11곳 + 학교 12,004곳)를 기준점으로 치환, 재필터 턴의 상위 지역 무시, 제외·정렬·'−'는 기준점·조건 유지, 동명 장소는 지도 중심 40km 근접.
  • 코스 모드(엔진 상태): 코스 발화 또는 course=true로 켜지고 재필터·정렬·제외 동안 유지, 비코스 새 검색이면 해제. 켜지면 **가까운 10건·거리순(직전 정렬 비계승)**으로 검색해 결과 목록을 정류장 순서로 재배열하고 payload.course(묶음·순서·구간·총거리)를 내린다 → 마커 번호·패널·답변·"N번째"가 모두 정류장 번호. 정렬은 같은 집합 안에서만(목록·마커·순서 고정, 답변은 서버 문장). 제외는 나머지 순서를 유지하고 새 후보만 뒤에 붙인다.
  • 지시어(엔진 규칙): "그중 N번째"는 직전 답변의 나열(화면 순번 목록)의 N번째로 치환(코스 모드는 정류장 N), "N번"은 화면 번호 그대로; "N번째 대신/빼고/말고"는 모델을 거치지 않는 제외 재검색. 답변의 목록 번호는 화면 순번 하나로 정규화.
  • 야외 우선·명시 조건 전용·근처 2km·고지 1회: 현장 후보에서 제외된 건수를 고지하며 실내·박물관 소장으로 단정하지 않는다. 이름을 지정한 검색은 이 기본 제외를 해제한다.
  • 모바일 '화면': 가림 영역 = 상단 56 + 하단(대화 시트 50dvh + 카드 띠 110) / 코스 모드: 하단(입력 바 112 + 마지막 답변 바 54 + 코스 패널 실측 ≤32dvh).
  • 과거 검색은 세션 내 최근 비코스 검색 8개 중 발화의 enum 조건이 일치하는 결과만 복원한다. 찾지 못하면 다시 검색하도록 요청한다.
  • 단순 “여기는 뭐 있어?”는 현재 지도 중심에서 새 검색을 수행한다. 북쪽/남쪽 순 정렬은 지원하지 않는다고 답한다.
  • 행정구역 전체 집계는 좌표 반경·야외 기본값·화면 표시 상한을 적용하지 않는 별도 DB 집계다. “야외만 총 몇 개?”, “실내는 몇 개?”, “몇 개야?”도 직전 지역·종목·범위를 상속한다. 화면을 명시하거나 새 검색을 실행하면 행정 집계 문맥을 끝낸다.

9. UI/UX (구현된 화면 기준)

  • 톤·레이아웃: 한지 톤 종이(#fbf8f3)·단청 적색(#8b2e2e)·먹색(#1f1a17), Pretendard. 데스크톱 좌 400px 대화 패널 / 중앙 벡터 지도 / 하단 카드 띠(또는 코스 패널) / 우 상세 시트(열리면 하단 패널 폭이 줄어 가려지지 않음).
  • 번호 체계 하나: 비코스 모드 = 화면 순번(카드·마커·답변·"N번째"), 코스 모드 = 정류장 번호(마커·패널·답변·"N번째", 같은 경내는 같은 번호). 답변의 이중 표기("1. (6)", "2. 3.")는 서버가 화면 순번으로 정규화한다.
  • 상세 큐레이션(적용): 사진 → 쉬운 요약(AI 생성, 길이 무관 첫 섹션) → 설명문 → 속성 표(지정종목·유형·시대·분류·시도·지정연도·소유·관리자·소재지·가까운 공중화장실/주차장 거리·주차장 이름) → 사진 갤러리 → 출처. 내부 플래그·좌표 비표시.
  • 플레이어 통합: 시트 상단 '음성해설: 한국어 듣기/영어 듣기' → 같은 tool → 대화 패널 플레이어 하나. 모바일 상세는 하단 50dvh(플레이어·입력창)를 남긴다.
  • 코스 패널: 자동(서버 상태) → 지도 하단 · 정류장(묶음)·종목·소재지·관리자·화장실/주차 거리·구간/총 직선거리·"전체 43건 중 가까운 10건"(이번 학교 코스 실행) · 행 '−'(서버 제외 경로, 스레드에 서버 문장 기록) · "코스로 보기" 토글도 서버 코스 · 표 복사·TSV·인쇄. 모바일 코스 모드: 대화 패널을 입력 바로 접되 **마지막 답변 한 줄 바(탭하면 대화 전체)**를 두고 패널 ≤32dvh — 지도·답변이 함께 보인다(5회차 '답변 미노출' 해소).
  • 근거 칩: 한글 라벨, 내부 오류 문자열 비노출(모델이 지어낸 파라미터는 서버가 무시).
  • 카드 띠: 새 결과마다 1번부터, 배지(박물관 소재·현장 여부 미확인·시대 추정·사진 제공 제한), 0건 빈 상태 카드.
  • QR·임베드: v5와 같음(?focus, iframe/스크립트 1줄, allow="clipboard-write; autoplay", KWCAG 2.2 점검 비용 포함; 되묻기 선택지 칩·마커 키보드 순회는 라운드 2).
  • 코스 팝업도 패널과 같은 번호를 사용하고 제외 직후 다시 계산한다. 범위 안내는 모바일에서 짧은 요약+펼치기로 두 행 이상을 볼 수 있게 한다. 상세 기획서는 최신 버전만 펼치고 이전 버전·평가를 접으며 표는 별도 가로 스크롤로 페이지 넘침을 막는다.
  • 인쇄는 별도 표 레이아웃으로 장소 행이 버튼 숨김에 의해 사라지지 않게 한다. 모바일 사진은 높이 160px, 코스 제외 버튼은 44×44px, 결측 주차거리도 “정보 없음”으로 표시한다.

10. 비즈니스 관점 (조달·가격 정합 — 5회차 지적 반영)

  • 포지셔닝: 공식 앱·경주시 챗봇/XR의 대체가 아니라 교사용 코스·대화형 필터·편의시설·계획서 출력 레이어(B2G 모듈). 센터 개편 시 센터 운영·우리 모듈/API 공급.

  • 1차 경로 — 파일럿 1,900만 원(VAT 포함) = 산출표 금액, 단일 범위(1인 견적 소액수의 ≤2천만, 추정가격 1,727만 원). 단가: 한국AI·소프트웨어산업협회 2026년 적용 SW기술자 평균임금(일평균 IT기획자 578,206원·응용SW개발자 378,250원·UI/UX 개발자 336,666원; 전체 414,762원, +4.7%, 2025-12 공표) × 제경비 110%·기술료 20%:

    항목인일단가(원/일)금액(원)
    IT기획(요구 정리·BI·검수 대응)2578,2061,156,412
    응용SW개발(임베드·QR 매핑·편의시설 덮어쓰기·대시보드·운영 인수)9378,2503,404,250
    UI/UX(접근성 점검·보완)3336,6661,009,998
    직접인건비 소계145,570,660
    제경비(110%)6,127,726
    기술료(20% × (인건비+제경비))2,339,677
    직접경비(접근성 외부 검수 165만 · 타일 자체 호스팅 초기 세팅 100만 · 교육·교통·인쇄 58.5만)3,234,664
    합계(VAT 별도)17,272,727
    VAT 포함19,000,000

    타일 자체 호스팅 운영과 접근성 인증마크 취득은 2차년 과업·운영비 항목. 확인 필요(제안 전): 소기업 확인서·소재지(지역업체 우선), 경주시 수의계약 운영기준, 활용사업 보조금의 SW 모듈 집행 가능 여부, 학교장터 S2B 등록 요건·수수료.

  • 연 운영 가격 1,000만 원(월 3,000세션 포함) vs 원가 ≈ 830만 원: 모델·서버 — 세션 평균 ≈ $0.065(텍스트 6턴 $0.024 + 음성 30%×2분 $0.041), 3,000세션 ≈ $195/월 ≈ 27만 원 + 서버·프록시 10만 원 → 연 ≈ 450만 원; 운영 인건비 — 분기 재수집 4×0.5일·장애 대응 5일·접근성 유지 3일 ≈ 10인일/년 ≈ 380만 원(응용SW 단가). 초과는 세션당 100원 종량(한계비용 ≈91원), 음성 세션 5분·일일 총량 캡. 실측(대시보드 7일, 개발·평가 트래픽): 분당 비용 세션 평균 $0.0213.

  • 3년·3시군 가정(만 원) — 같은 노임단가·같은 산식으로 재계산. 2·3호 구축은 8인일(데이터 재수집·임베드·QR 매핑·시 데이터 덮어쓰기·검수; 직접인건비 3.2M + 제경비 110% 3.5M + 기술료 20% 1.3M + 직접경비 2.0M = VAT 포함 ≈1,100만 원 — 6회차 지적대로 파일럿과 같은 산식):

    Y1(2027)Y2(2028)Y3(2029)
    경주 파일럿 → 운영1,9001,0001,000
    2호 구축(Y2, 1,100) → 운영(Y3)–1,1001,000
    3호 구축(Y3, 1,100) → 운영(Y4)––1,100
    교육 구독(10→20→30교×30)300600900
    매출2,2002,7004,000
    구축 직접인건비·직접경비(파일럿 14인일 557+323 / 2·3호 8인일 320+200)880520520
    모델·서버(450/시군·년)4509001,350
    운영 인건비(10인일/시군·년, 380)3807601,140
    원가1,7102,1803,010
    공헌이익(제경비·기술료 포함)490520990

    해석: 파일럿 3년은 진입·레퍼런스 확보 단계이며 이익은 4호 이후·센터 운영비 모델·교육청 단위에서 난다 — 단독 사업성으로 포장하지 않는다.

  • 앵커: 소규모 AI 안내 구축 2,750만 낙찰(2026, 민간 조합 발주·검색 요약 기준 △), 경기도 생성형 AI 챗봇 4.17억·운영 7.66억(2025, 광역 참고). 관광공사 역사문화형 과제(5천만~1억)는 응모 경로.

  • 왜 지금: 국가유산청 2026 예산 +8%·2027 예산안 +11.2%(활용 1,311억), 활용사업 379건·방문 캠페인 100거점, 학습지원 SW 선정 기준 시행, 공식 앱 축소, 경주 AI-XR(2026~27)·센터 개편(2026-07) 창.

  • 경쟁 방어: 국가유산청 30억 AI 해설은 궁능, 경주 XR은 위치 기반 해설 — 교사용 코스·편의시설·계획서·QR·대시보드는 겹치지 않는 층이며, 도메인 스키마·에이전트 규칙·테마·장소 사전이 전부 데이터라 2호 복제에 코드 변경이 없다.

11. 리스크와 대응

리스크대응
모델이 지시어 대상·화면 건수를 바꾸거나 도구 없이 답함단일 번호 소개·선택 또는 단일 결과 분류·단순 건수·QR 해설·과거 검색 복원·기본 정렬은 서버가 처리. 추천 뒤 소개는 실제 열린 상세의 요약으로만 답함
직선 반경이 전체 코스 시간으로 오해됨답변·패널·내보낸 표에 범위 안내. 실제 길찾기·완주 시간은 제공하지 않음
통계를 반경 검색·야외 검색으로 오답도메인 행정 필드에 따른 전체 DB 집계, 현장 후보·전체·미확인 범위와 좌표 누락 고지
교사·담당자 1차 근거 0건제안 전 교사 3~5명 인터뷰·계획서 서식 1건·담당 부서 접촉 메모 1건 필요. 아직 수행되지 않은 인간 작업이며 점수·개발 로그로 대체하지 않음
화장실 2017~2020, 관광지 주차장 누락출처·기준일·직선거리·정보 없음 표시, 파일럿 시 보유 목록으로 갱신
자동 시대·유형 분류, 좌표 누락추정 배지·설명문 근거·커버리지 고지, CMS 수정. 행정 통계도 공식 전체 통계와 다를 수 있음
API·타일·이미지·음성 외부 의존프록시·재사용·실존 검사, 타일 자체 호스팅과 접근성 검수는 파일럿 비용 가설
법령·부서·조달·가격 조건 변동§2·§10은 기존 조사와 가격 가설이며 제안 직전 공식 자료로 재확인
운영 성과 과장개발·평가 세션을 고객 완료율·시장 검증으로 사용하지 않음

12. 성공 기준과 이번 검증

  • 독립 결과평가 1회차 69.0 → 2회차 73.0 → 3회차 78.0(P1 75 / P2 75 / P3 84) 미달. 원본·프롬프트·브라우저 증거는 result-evals/round-3/, evidence/round-3/, 집계는 round-3.json. 4회차 평균 80 이상이어야 게시한다.
  • v9 개발 셀프체크는 result-evals/self-check-v9/. 백엔드 단위 검사 272개, API 24+14+17+18=73턴을 확인한다. 프런트 production BUILD_ID·실제 API 성공/오류·DB 게시/임베딩·서버 로그·브라우저 콘솔을 대조한다. 완료 검사·실행 수치는 해당 summary.json이 원본이며 독립 점수로 쓰지 않는다.
  • 3회차 치명 오류 대본에 기본 정렬을 붙여 9턴×5회(모바일 1회) 반복하고 실제 고선사지 상세 시트·도구 실행·박물관 소재 배지·분류·근거를 대조한다. tools/eval/heritage_selection_review.mjs가 이 검증을 수행한다.
  • 기존 9턴 와우 대본도 v9에서 한 번 다시 실행하고, 독립 평가자들이 같은 세션 순서로 각각 2~3회 재현한다. 7정류장(10건)·5.6km → 석빙고 제외 6정류장(9건)·5.2km → 사마소 제외 5정류장(8건)·5.2km가 답변·패널에 같아야 한다.
  • 직전 v8의 학교 추천 5회, QR 실제 KR/EN/정지, 7행 PDF/TSV·복사, 팝업·모바일 검증은 self-check-v8/와 3회차 독립 증거에 보존한다. v9 관련 회귀와 독립 4회차에서 해당 기능도 확인한다.
  • 가짜 마이크 음성 연결·인사·정지 1회는 전체 음성 대본 검증이 아니다. responseMs는 답변 완료까지, ms는 안정화·캡처를 포함하며 첫 토큰 지표가 아니다.
  • 미완료: 새로고침 세션 복원·마커 키보드·고객 성과 분리 대시보드·운영자 신고 접수·인터뷰·서식·담당자 접촉. 현재 신고 경로 미설정을 정직하게 안내하고 개발·평가 기록을 고객 성과로 쓰지 않는다.
python3 tools/eval/chat_scenarios.py tools/eval/scenarios/heritage-guide.json --base http://127.0.0.1:10016
python3 tools/eval/chat_scenarios.py tools/eval/scenarios/heritage-guide-result.json --base http://127.0.0.1:10016
python3 tools/eval/chat_scenarios.py tools/eval/scenarios/heritage-guide-classification.json --base http://127.0.0.1:10016
python3 tools/eval/chat_scenarios.py tools/eval/scenarios/heritage-guide-selection.json --base http://127.0.0.1:10016
node tools/eval/heritage_selection_review.mjs /tmp/v9-selection
node tools/eval/browser_session.mjs --url http://192.168.0.55:9016/s/heritage-guide --out /tmp/wow-v9 --messages '["지금 화면에서 국보만 남겨줘","두 번째 거 해설 들려줘","영어로 들려줘","그만","경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘","화장실 가까운 순으로","석빙고는 빼줘","세 번째 대신 더 가까운 걸로","지금 화면에 몇 개 보여?"]'

이전 기획 · v8 (2026-10-09) — 결과평가 2회차(73.0) 반영: 통계 후속 범위·현장 분류·실제 목록·팝업 번호

v8 (2026-10-09) — 결과평가 2회차(73.0) 반영: 통계 후속 범위·현장 분류·실제 목록·팝업 번호

결과평가 2회차는 73.0(P1 74 / P2 72 / P3 73)으로 미달했다. 짧은 통계 후속 질문이 화면 범위로 바뀌고, 정렬 답변의 건수·장소 번호와 팝업 번호가 어긋났으며, 첨성대·칠불암을 박물관 소장으로 잘못 처리했다. v8은 실제 검색 목록으로 답변을 만들고 공식 분류와 방문 구분을 분리한다. 현재 독립 점수는 73.0이며 3회차를 준비한다. 인터뷰·고객 사용·계약 확인은 모두 0건이다.

1. 한 줄 정의

국가유산청 공식 데이터 위에서 교사·답사객이 말로 유산을 거르고, 출발점 주변 후보로 코스를 조합해 계획서 표를 만드는 모듈. 지도·답변·코스 표는 같은 정류장 순서와 직선거리를 사용한다. “걸어서 30분”은 출발점에서 후보를 찾는 직선 반경으로 환산하며, 코스 전체의 보행·관람 시간을 보장하지 않는다. 지자체 사이트 임베드와 안내판 QR로 사용한다.

2. 제안 대상(클라이언트)과 최종 사용자

  • 1차 계약 주체(파일럿): 경주시 — 활용사업·안내판·국가유산은 문화유산과, 관광 사이트 임베드는 관광컨벤션과, AI 연계는 경주AI&미디어센터(구 경주스마트미디어센터)·디지털정책과. 경주시는 2026-07-22 조례 개정안을 입법예고(7/228/4)해 명칭을 경주AI&미디어센터로 바꾸고 주요 사업에 **"AI 기반 문화·관광·도시서비스 개발 및 운영"**을 넣었다(경북매일·메트로 2026-07-22, 시의회 심의 후 확정 — 확정 여부는 제안 전 재확인). 수요처가 스스로 운영 주체가 되는 구조이므로 제안은 두 갈래: (a) 문화유산과·관광컨벤션과 파일럿(임베드·QR·계획서 표), (b) 센터가 운영 주체, 우리는 모듈·API 공급(연 운영비는 센터 예산, 딥파인 AI-XR 서비스에 교사 코스·편의시설 레이어를 API로 제공하는 협력 조건). AI 투자 근거: ChatGTS(2023, 국비 5억+시비 5억 — 토큰포스트 원문상 서라벌 메타버스(국토부 디지털트윈 시범)와 합산 사업비), 'AI 기반 현실확장형 가상융합 서비스'(202627, 주관 딥파인, 참여·수요처 경주시·센터, 2년 18억, 첨성대·동궁과 월지·황룡사지; 경북매일 2026-06-09·트위그24 2026-06-10). 계약 형태(지방계약법 시행령 §25①5): 1인 견적 소액수의 ≤2천만 원 → 파일럿 1,900만 원(VAT 포함, 산출표 §10과 동일 금액, 단일 범위). 활용사업은 2027년분 기선정(2026-09, 244건) → 변경 편입 타진, 정식 번들은 2028 사이클(2027-09 공모).
  • 2차: 교육 — 학교·구청·교육청 체험학습 사업. 2026-1학기부터 성취기준 연계·개인정보 처리 학습지원 SW는 교원 의견수렴→학운위 심의→학교장 확정(교육부 2025-12-29). 우리는 **학생 개인정보를 수집하지 않고 성취기준 콘텐츠를 포함하지 않는 '교사용 답사 계획 도구'**로 설계해 4단계 심의 비대상을 노리는 **교당 연 소액 구독(30만 원, 학교장터 S2B 등록 — 요건·수수료 확인 필요)**을 두되, 매출 라인이 아니라 지자체 파일럿의 성과 근거 채널이다(§10). 재원: 구청 교육경비보조금(동대문구 2026 교당 최대 500만 원 사례), 교육청 현장체험학습 지원사업(서울 2026 본예산 10.7억+추경 18억, 사전답사 차량 1.7억).
  • 3차: 국가유산청·국가유산진흥원 — 데이터·표준 파트너. 국가유산청은 202627년 총 30억의 다국어 AI 해설(4대궁·종묘)·46만 건 학습데이터·RAG DB를 직접 구축 중이라 '대화형 해설'을 외부 구매할 가능성은 낮다. 우리는 궁능 밖 지방 지정유산·향토유산·교사용 코스 공백을 맡고, Open-API 보급·조달청 혁신제품 시범구매 계획을 들어 실증 트랙과 방문 캠페인 거점(13코스 100거점) 무상 연계(MOU)로 접근한다. 관광공사 'AI 기반 지역관광 문제해결(역사문화형)' 과제(5천만1억)는 응모 경로.
  • 페르소나 A — 초등 5학년 담임 김수진(38, 경주 월성초): 사회 '우리 고장의 문화유산' 체험학습. 학운위 심의용 사전답사 계획서(장소·주소·관리자·편의시설·이동거리)를 내야 한다. v1이 답하는 것: "월성초등학교 기준으로 걸어서 30분 안에 갈 수 있는 유산으로 코스 짜줘"(전국 초·중·고 12,004곳 장소 사전, 동명 학교는 지도 중심 근접) → 정류장 번호 지도·패널·답변, 지정종목·시대·관리자·화장실/주차 거리('정보 없음')·구간/총 직선거리·계획서 표; "5학년 단원에 맞는 곳 골라줘 → 그중 두 번째는 어떻게 소개해?" → 나열의 두 번째를 열어 쉬운 요약으로 소개. 못 답하는 것(정직 안내): 입장료·단체 입장·휴관일·버스 주차 → "그 정보는 없어요. 관리자인 ○○에 문의해 주세요"(서버가 보충, '관리자 필드' 같은 자리표시자 금지).
  • 페르소나 B — 당일 답사객 박민호(52, 수원): 안내판 QR로 들어와 "근처에 뭐 있어?"(안내판 기준 직선 2km) → 공식 음성해설 → 영문 전환. (근거 약한 보조 페르소나.)

3. 고객 니즈와 근거

니즈근거이 모듈이 푸는 부분 (정직하게)
교사의 체험학습 기획·행정 부담초등교사노조 설문(2026-04, N=21,918) 추진 '부정' 96.2%; 부담 요소 법적 책임 50%·민원 37%·행정 12%(데일리안 2026-05-04). 전교조 2026 실태조사 체험학습 사실상 중단 7.2%(아시아경제 2026-05-04). 소규모·테마형 전환 지침(경기일보 2024-05-30)행정 12%의 '장소 조합·계획서 작성'. 심의 서류용 표(장소·종목·소재지·관리자·편의시설 거리·구간 거리·출발점 주석)를 대화 3턴 안에 뽑는다(실행: 코스 요청→정렬→빼기, 표 복사 1클릭). '10분 절감'은 가설 — 파일럿 교사 5명 관찰로 검증
공식 수요 근거국가유산청 「2024 국가유산교육 정기 실태조사」 학교 교육 부문 제언 "정보 플랫폼 개선"교사용 정보 플랫폼의 구체 형태
경주시: 관광 안내의 AI 전환ChatGTS(2023)·AI-XR(2026~27, 18억, 주관 딥파인) 투자, 경주AI&미디어센터 개편(2026-07)두 사업이 다루지 않는 교사·단체 답사 코스와 편의시설·계획서 출력 층을 센터가 운영할 모듈로 공급 — 담당 부서의 수요 발언은 아직 없음(가설)
지방 유산으로 방문 분산2025년 궁능 관람객 1,781만(+12.9%), 외국인 427만(24%)(헤럴드경제 2026-01-04)지자체 임베드 코스 모듈이 '궁 밖' 유산으로 유도

1차 근거 현황(정직): 교사 인터뷰·학운위 사전답사 계획서 서식 실물·담당 부서 접촉 메모는 현재까지 0건(문서로 만들 수 없는 항목을 지어내지 않는다). 제안 전 필수 과제(§11)로 두고, 그 전까지 표 열(순서·장소·종목·소재지·관리자·화장실/주차 거리·구간 거리)은 학교안전법 시행규칙상 현장체험학습 사전답사 항목(장소·이동 경로·안전시설·편의시설)에 맞춘 가설이다.

현재 대안과 한계

  • 국가유산청 공식 앱 '나만의 국가유산 해설사': 반경 검색·4개 국어 텍스트 해설·방문 스탬프. 코스·대화·음성·교사용 기능 없음, 2026-10-09 현재 스토어 404·웹 my.heritage.go.kr 축소 운영. 우리는 같은 공개 API 위의 보완 모듈.
  • 경주시 ChatGTS·AI-XR: 관광 챗봇과 위치 기반 XR 해설. 교사용 코스·편의시설·계획서 출력 없음 → 센터 운영 모듈/API 공급 대상.
  • 국가유산 방문 캠페인(13코스 100거점): 코스 설계·대화 없음 → '여권 거점' 태그 번들(라운드 2).
  • 국가유산포털(GIS)·네이버·카카오·교사의 ChatGPT+지도앱: 조건 교차·지시어·편의시설·표 출력·출발점 기준 코스가 한 흐름이 아니고, LLM 단독은 좌표·지정 정보를 지어낸다 — 우리는 공식 데이터만 근거로 답하고(회귀 품질 검사 §12) 표로 바로 나온다.

왜 대화+지도가 본질적으로 유리한가: 답사 질의는 조건 교차(종목×시대×유형×거리) → 지시어(그중/두 번째/여기서/세 번째 대신) → 해설 청취 → 표로 저장이 한 흐름이다. 폼은 조건을 하나씩, 해설은 다른 화면, 표는 손으로 옮겨야 한다.

4. 와우 포인트 (같은 순서로 재현)

초기 화면은 불국사 앞(35.790, 129.332), 줌 14, 중심 2km 거리순 15건이다.

  1. “지금 화면에서 국보만 남겨줘” → 지도 위치를 유지하고 가시 결과만 재필터한다. 건수는 전체 검색·표시·현재 가시 결과를 구분한다. 데스크톱/모바일의 가시 범위는 다르므로 특정 숫자를 항상 약속하지 않는다.
  2. “두 번째 거 해설 들려줘” → 화면 2번의 상세와 공식 음성해설을 연결한다. 이 대본의 실제 2번은 불국사 삼층석탑 사리장엄구이며 석굴암이 아니다. 석굴암은 ?focus=11-0000240000000-37 QR로 진입해 첫 “해설 들려줘” → 한국어 → 영어 → “그만” 순서로 확인한다. 영문 해설은 실제 제공된 유산만 지원한다.
  3. “경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘” → 7정류장(10건), 총 직선거리 5.6km, 출발 경주향교. 향교 경내 4건은 1정류장으로 묶인다. 화장실 정렬은 걷는 순서를 유지하고, 석빙고 제외 뒤에는 6정류장(9건)·5.2km, 이어 세 번째(경주사마소) 제외 뒤에는 5정류장(8건)·5.2km가 된다. 표 복사·TSV·인쇄는 같은 열·행·순서로 나온다. 답변·패널·표에 입력한 도보 시간은 검색 반경이며 전체 코스 시간이 아니라는 안내가 붙는다.

재현 명령은 §12에 있다. 개별 후보가 출발점 반경 안에 있어도 전체 이동 거리는 5.6km일 수 있다. 실제 보행 길찾기와 시간표는 지원하지 않는다.

5. 니즈 선도 포인트

포인트제공하는 것한계·검증
계획서 표장소·지정종목·소재지·관리자·화장실/주차장 직선거리·구간거리·출발점·시간 안내를 복사/TSV/인쇄학운위 서식 실물은 아직 0건, 파일럿 교사 확인 필요
학교 기준 후보전국 운영 학교 12,004곳 지명 사전, 동명 학교는 지도 근접 또는 지역 병기월성초등학교는 경주/창원/김제 동명, 전국 검색 후에는 “경주시 월성초등학교”로 지정
학생 눈높이 소개추천 목록의 N번째를 실제로 열고 공식 설명문 기반 쉬운 요약을 AI 생성 라벨과 함께 답함유형·거리 조건으로 실제 검색 후보 4곳을 선택, 교육 적합성은 교사 확인; 상세 대상은 서버가 결정
QR 첫 해설진입한 유산의 상세 선택을 서버 세션에도 등록하고 첫 해설을 즉시 연결공식 음성 제공분만, 요금/휴관은 관리자 확인
운영 근거 수집CMS 세션·오류·비용 로그현재 데이터는 개발·평가용, 고객 사용 성과로 표현하지 않음
확장여권 거점·향토유산·외국어·활동지후속 과업, 현재 완성 기능 아님

6. 대화 시나리오 (결과평가 기본 세트)

기존 회귀 24턴(tools/eval/scenarios/heritage-guide.json)은 S1·S2·S3·S4·S5·S6·S7·S8·S9·S11·S14·S16·S17·S18을 덮고, S10·S12(손으로 지도 이동)·S15(QR)는 브라우저 수동/드라이버 세션으로 확인한다(5회차 지적대로 '1:1'이 아님을 명시).

#대화기대 동작 (실행 결과)
S1"경주 근처 국보 보여줘" → "그중에서 석탑만" → "두 번째 거 설명해줘"region=경주·designation=국보(야외 기준) → within_last_results·kind=탑 → 직전 나열의 2번째 상세 소개
S2"지금 화면에 몇 개 보여?" → "지금 화면에서 조선 시대 것만 남겨줘"서버가 전체 검색·표시·가시 건수로 답(tool 없음) → within_visible·era=조선, 지도 고정
S2-1코스 모드에서 "지금 화면에 몇 개 보여?"코스 패널(실측 높이)·상세 시트가 가린 결과는 '화면 밖' — 실행한 학교 코스 제외 후 전체 42건 중 9건 표시·화면 안 9건. 가시 범위는 실제 visible_ids로 집계
S3"여기 근처에 걸어서 15분 안에 갈 수 있는 사적 있어?"near_me·radius 1200·designation=사적, "직선 반경 1.2km" 1회(반경 표기는 tool 인자 그대로 — '2km'≠2,500m 오류 수정)
S4"경주향교 기준으로 … 코스 짜줘" → "화장실 가까운 순으로" → "세 번째 대신 더 가까운 걸로" / "석빙고는 빼줘"서버 기준점 고정·가까운 10건·거리순·목록=정류장 순서 → payload.course → 정렬 턴은 서버 문장(집합·순서·지도 고정) → '세 번째 대신'은 서버 지름길: 정류장 3 제외·나머지 순서 유지·서버 문장 → "석빙고는 빼줘"는 모델이 exclude_indexes로 호출, 답변은 서버 문장
S4-1결과가 요청 수 미만"조건에 맞는 곳은 M곳이에요. 반경을 넓히거나 조건을 빼면 …"
S5"주차장 가까운 데가 어디야?"명시 조건 전용: 범위 필터는 거리 표현이 없으면 서버가 떼고 거리값으로 답함(결과를 비우지 않음)
S6"그거 해설 들려줘" → "영어로 들려줘" → "그만"play_audio_guide(상세 동시) → lang=en(실존분만) → stop_audio
S7"울릉도에 국보 있어?"region+designation → 0건 → "조건에 맞는 곳은 없지만 지정종목=국보 조건 제외하면 N건 있어요. 볼까요?"(모델이 빠뜨리면 서버가 덧붙임)
S8"이거 누가 관리해?" → "전화번호는?"열린 상세의 관리자 즉답 → "그 정보는 없어요. 관리자인 ○○에 문의해 주세요"(서버 보충; 관리자 비공개면 소재지 지자체 문화유산 담당 부서)
S9"입장료 있어?" / "30명 단체로?" / "휴관일?"동일 — 열린 상세가 없으면 "어느 곳인지 말씀해 주시면 관리자를 안내할게요"
S10"시도지정 중에 조선 시대 것"era 필터, '시대추정' 고지는 세션 1회
S11"고성에 있는 문화재"동명 되묻기(지도 중심 40km 안이면 자동)
S12지도를 손으로 옮긴 뒤 "여기는 뭐 있어?"near_me → 뷰포트 중심 기준
S13"아까 본 석탑들 다시" → "그중 제일 북쪽"세션에 저장한 과거 탑 검색과 지도 범위를 복원 → "북쪽 순 정렬은 지원하지 않아요 …"
S14"경주 박물관에 있는 국보도 보여줘"후보 제외 유산도 포함하여 검색. 박물관 소재는 공식 소재지·관리자에 박물관이 명시된 경우만 표시
S15QR ?focus=<석굴암 ID> → "해설 들려줘" → "근처에 뭐 있어?"그 유산 중심·상세에서 시작 → play_audio → near_me 2km(현장 여부 미확인 후보 등의 제외 건수 고지)
S16"고마워, 이제 끝낼게"end_session
S17(화장실 순 정렬 뒤) "월성초등학교 기준으로 걸어서 30분 안에 갈 수 있는 유산으로 코스 짜줘" → "두 번째 빼고"학교 장소 사전 → 거리순 10곳(정렬 비계승) → 서버 지름길로 정류장 2 제외·순서 유지
S18"5학년 사회 '우리 고장의 문화유산' 단원에 맞는 곳 골라줘" → "그중 두 번째는 아이들한테 어떻게 소개하면 좋아?"출발점 반경 5km의 실제 검색 결과에서 유형 규칙으로 최대 4곳·쉬운 요약 선택(화면 번호 유지) → 나열의 두 번째를 서버가 열고(tool 결과에 해석 노트) 소개
S19“경주시 전체에 국보 몇 개야?” → “야외만 총 몇 개?” → “박물관 소장 포함 전체 수는?”행정구역 전체 게시 데이터 27건 → 현장 답사 후보 15건 → 전체 27건. 짧은 후속도 지역·국보 조건을 유지. “실내는 몇 개?”는 물리적 실내 수 미확인과 후보 제외 12건을 구분
S20학교 코스 → “두 번째 빼고” → “지금 화면에 몇 개 보여?”전체 검색 42건 중 9건 표시, 가시 집합이 9건이면 화면 안 9건. 전체 검색 42건을 표시 건수라고 말하지 않음
S21“코스 전체를 30분 안에 돌 수 있어?”후보 검색 반경임을 설명, 완주 시간 보장하지 않음

| S22 | “경주 첨성대 보여줘” / “경주 남산 칠불암 마애불상군 보여줘” → “이거 설명해줘” → “이거 박물관 소장품이야?” | 실제 이름 검색, 선택 상세 소개, 공식 분류=유물과 현장 유산 구분. 첨성대는 화면 국보·야외 재필터에서도 남음 | | S23 | “경주 고선사지 삼층석탑 보여줘” → “이거 박물관 소장품이야?” | 박물관 소재와 야외 전시 후보를 별개로 안내, 물리적 실내외·현재 개방은 보장하지 않음 | | S24 | 초기 결과 “화장실 가까운 순으로” / 코스 2번 팝업 → 2번 제외 → 새 2번 팝업 | 실제 표시 15건과 전체 검색 건수 구분, 동률도 장소별 번호 유지, 팝업·마커·패널의 정류장 번호 일치 |

  • 음성 연결은 가짜 마이크로 라운드당 1회 스모크. 음성 대본 정확성 전반과는 구분한다.

heritage-guide-result.json 추가 14턴은 S12·S13·S19·S20·S21, heritage-guide-classification.json 17턴은 이름·선택 상세·분류와 짧은 후속 통계를 검증한다. 지도 수동 이동 자체와 QR·인쇄는 별도 브라우저 확인.

7. 데이터 전략 (수집 완료본 기준, 스키마 v6)

  • 국가유산청 공개 API의 좌표 있는 유산 10,217건을 게시한다. 임베딩·공식 설명문·쉬운 요약은 유지하고 이번 분류 재빌드에 새 LLM 호출은 없다. 국문 해설 10,195건, 영문 3,941건. 좌표 결측 5,552건은 제외돼 행정 집계도 공식 전수 통계와 다를 수 있다.
  • 공식 분류와 서비스 분류를 분리한다. 공식 유물을 박물관 소장·실내로 단정하지 않는다. 유형 규칙은 공식 소분류→중분류→대분류→이름 순으로 적용한다. 첨성대는 천문·과학, 고성 운흥사 대웅전은 사찰 건축이다.
  • 방문 구분·구분 근거를 상세에 표시한다. 박물관 소재는 주소·관리자에 박물관이 명시된 경우이며 야외 후보 여부와 독립이다. 첨성대·칠불암은 공식 장소 자료를 별도 확인했다(data/classification_checks.json). 마애·암각 등은 규칙에서 도출한 현장 후보다. 물리적 실내외·현재 개방은 이 데이터로 보장하지 않는다.
  • v7 대비 유형 304건, 현장 후보 플래그 171건을 교정하고 방문 구분·근거 10,217건을 추가했다. 경주시 국보 27건 중 현장 후보 15건, 후보 제외 12건이며 12건은 물리적 실내 유산 수가 아니다. 미해소 유형 1,268건은 data/build_report.json에 기록한다.
  • 공중화장실 33,820건(2017~2020, 경주 2019), 주차장 18,939건(2026), 운영 학교 12,004곳. 최근접 직선거리와 1.5km 밖 정보 없음을 표시한다. 자동 시대 추정 4,764건은 추정 배지·고지로 드러낸다. 관리자 마스킹 개인명은 개인(비공개)로 표시한다.
  • 도메인 스키마·명칭 검색·추천 유형·집계 범위 라벨·상세 근거·지도 테마는 데이터 설정이다. 쉬운 요약은 AI 생성 라벨, 공식 설명문은 원문 출처와 함께 제공한다.
  • 이미지 프록시는 완전 수신·형식 확인·한 차례 재시도·캐시 후 정확한 전송 길이로 응답한다. 원본 장애는 “사진을 불러오지 못했어요” 대체 이미지로 표시하고 로그에 남긴다. 음성 프록시 Range 지원은 유지한다. 공공누리 A/B만 사진 표시, 출처 상시 표기·파일럿 전 이용 조건 서면 확인.
  • OpenFreeMap 외부 타일을 사용한다. 자체 타일 운영·접근성 인증·공공 SLA는 후속 과업이며 파일럿 전 검증한다.

8. 지도의 역할 — "화면" 규칙 (구현·실행 확인)

  • "지금 화면" = 지도 컨테이너 − 대화 패널(좌 432px) − 카드 띠(하단 150px) 또는 코스 패널(실측 높이+24px) − 상세 시트(우 452px). 클라이언트가 매 턴 visible_ids를 보고한다. 패딩을 먼저 반영한 뒤 fitBounds, 코스 패널 높이가 확정되면 한 번 더 맞춘다.
  • 지도를 움직이지 않는 동작: 화면 안/직전 결과 재필터, 코스 안 정렬, 선택·상세(보이는 영역 안이면). 움직이는 동작: 새 검색·지역 이동·코스 조립.
  • 기준점 고정(엔진 규칙): 발화(또는 q)의 등록 장소(places 11곳 + 학교 12,004곳)를 기준점으로 치환, 재필터 턴의 상위 지역 무시, 제외·정렬·'−'는 기준점·조건 유지, 동명 장소는 지도 중심 40km 근접.
  • 코스 모드(엔진 상태): 코스 발화 또는 course=true로 켜지고 재필터·정렬·제외 동안 유지, 비코스 새 검색이면 해제. 켜지면 **가까운 10건·거리순(직전 정렬 비계승)**으로 검색해 결과 목록을 정류장 순서로 재배열하고 payload.course(묶음·순서·구간·총거리)를 내린다 → 마커 번호·패널·답변·"N번째"가 모두 정류장 번호. 정렬은 같은 집합 안에서만(목록·마커·순서 고정, 답변은 서버 문장). 제외는 나머지 순서를 유지하고 새 후보만 뒤에 붙인다.
  • 지시어(엔진 규칙): "그중 N번째"는 직전 답변의 나열(화면 순번 목록)의 N번째로 치환(코스 모드는 정류장 N), "N번"은 화면 번호 그대로; "N번째 대신/빼고/말고"는 모델을 거치지 않는 제외 재검색. 답변의 목록 번호는 화면 순번 하나로 정규화.
  • 야외 우선·명시 조건 전용·근처 2km·고지 1회: 현장 후보에서 제외된 건수를 고지하며 실내·박물관 소장으로 단정하지 않는다. 이름을 지정한 검색은 이 기본 제외를 해제한다.
  • 모바일 '화면': 가림 영역 = 상단 56 + 하단(대화 시트 50dvh + 카드 띠 110) / 코스 모드: 하단(입력 바 112 + 마지막 답변 바 54 + 코스 패널 실측 ≤32dvh).
  • 과거 검색은 세션 내 최근 비코스 검색 8개 중 발화의 enum 조건이 일치하는 결과만 복원한다. 찾지 못하면 다시 검색하도록 요청한다.
  • 단순 “여기는 뭐 있어?”는 현재 지도 중심에서 새 검색을 수행한다. 북쪽/남쪽 순 정렬은 지원하지 않는다고 답한다.
  • 행정구역 전체 집계는 좌표 반경·야외 기본값·화면 표시 상한을 적용하지 않는 별도 DB 집계다. “야외만 총 몇 개?”, “실내는 몇 개?”, “몇 개야?”도 직전 지역·종목·범위를 상속한다. 화면을 명시하거나 새 검색을 실행하면 행정 집계 문맥을 끝낸다.

9. UI/UX (구현된 화면 기준)

  • 톤·레이아웃: 한지 톤 종이(#fbf8f3)·단청 적색(#8b2e2e)·먹색(#1f1a17), Pretendard. 데스크톱 좌 400px 대화 패널 / 중앙 벡터 지도 / 하단 카드 띠(또는 코스 패널) / 우 상세 시트(열리면 하단 패널 폭이 줄어 가려지지 않음).
  • 번호 체계 하나: 비코스 모드 = 화면 순번(카드·마커·답변·"N번째"), 코스 모드 = 정류장 번호(마커·패널·답변·"N번째", 같은 경내는 같은 번호). 답변의 이중 표기("1. (6)", "2. 3.")는 서버가 화면 순번으로 정규화한다.
  • 상세 큐레이션(적용): 사진 → 쉬운 요약(AI 생성, 길이 무관 첫 섹션) → 설명문 → 속성 표(지정종목·유형·시대·분류·시도·지정연도·소유·관리자·소재지·가까운 공중화장실/주차장 거리·주차장 이름) → 사진 갤러리 → 출처. 내부 플래그·좌표 비표시.
  • 플레이어 통합: 시트 상단 '음성해설: 한국어 듣기/영어 듣기' → 같은 tool → 대화 패널 플레이어 하나. 모바일 상세는 하단 50dvh(플레이어·입력창)를 남긴다.
  • 코스 패널: 자동(서버 상태) → 지도 하단 · 정류장(묶음)·종목·소재지·관리자·화장실/주차 거리·구간/총 직선거리·"전체 43건 중 가까운 10건"(이번 학교 코스 실행) · 행 '−'(서버 제외 경로, 스레드에 서버 문장 기록) · "코스로 보기" 토글도 서버 코스 · 표 복사·TSV·인쇄. 모바일 코스 모드: 대화 패널을 입력 바로 접되 **마지막 답변 한 줄 바(탭하면 대화 전체)**를 두고 패널 ≤32dvh — 지도·답변이 함께 보인다(5회차 '답변 미노출' 해소).
  • 근거 칩: 한글 라벨, 내부 오류 문자열 비노출(모델이 지어낸 파라미터는 서버가 무시).
  • 카드 띠: 새 결과마다 1번부터, 배지(박물관 소재·현장 여부 미확인·시대 추정·사진 제공 제한), 0건 빈 상태 카드.
  • QR·임베드: v5와 같음(?focus, iframe/스크립트 1줄, allow="clipboard-write; autoplay", KWCAG 2.2 점검 비용 포함; 되묻기 선택지 칩·마커 키보드 순회는 라운드 2).
  • 코스 팝업도 패널과 같은 번호를 사용하고 제외 직후 다시 계산한다. 범위 안내는 모바일에서 짧은 요약+펼치기로 두 행 이상을 볼 수 있게 한다. 상세 기획서는 최신 버전만 펼치고 이전 버전·평가를 접으며 표는 별도 가로 스크롤로 페이지 넘침을 막는다.
  • 인쇄는 별도 표 레이아웃으로 장소 행이 버튼 숨김에 의해 사라지지 않게 한다. 모바일 사진은 높이 160px, 코스 제외 버튼은 44×44px, 결측 주차거리도 “정보 없음”으로 표시한다.

10. 비즈니스 관점 (조달·가격 정합 — 5회차 지적 반영)

  • 포지셔닝: 공식 앱·경주시 챗봇/XR의 대체가 아니라 교사용 코스·대화형 필터·편의시설·계획서 출력 레이어(B2G 모듈). 센터 개편 시 센터 운영·우리 모듈/API 공급.

  • 1차 경로 — 파일럿 1,900만 원(VAT 포함) = 산출표 금액, 단일 범위(1인 견적 소액수의 ≤2천만, 추정가격 1,727만 원). 단가: 한국AI·소프트웨어산업협회 2026년 적용 SW기술자 평균임금(일평균 IT기획자 578,206원·응용SW개발자 378,250원·UI/UX 개발자 336,666원; 전체 414,762원, +4.7%, 2025-12 공표) × 제경비 110%·기술료 20%:

    항목인일단가(원/일)금액(원)
    IT기획(요구 정리·BI·검수 대응)2578,2061,156,412
    응용SW개발(임베드·QR 매핑·편의시설 덮어쓰기·대시보드·운영 인수)9378,2503,404,250
    UI/UX(접근성 점검·보완)3336,6661,009,998
    직접인건비 소계145,570,660
    제경비(110%)6,127,726
    기술료(20% × (인건비+제경비))2,339,677
    직접경비(접근성 외부 검수 165만 · 타일 자체 호스팅 초기 세팅 100만 · 교육·교통·인쇄 58.5만)3,234,664
    합계(VAT 별도)17,272,727
    VAT 포함19,000,000

    타일 자체 호스팅 운영과 접근성 인증마크 취득은 2차년 과업·운영비 항목. 확인 필요(제안 전): 소기업 확인서·소재지(지역업체 우선), 경주시 수의계약 운영기준, 활용사업 보조금의 SW 모듈 집행 가능 여부, 학교장터 S2B 등록 요건·수수료.

  • 연 운영 가격 1,000만 원(월 3,000세션 포함) vs 원가 ≈ 830만 원: 모델·서버 — 세션 평균 ≈ $0.065(텍스트 6턴 $0.024 + 음성 30%×2분 $0.041), 3,000세션 ≈ $195/월 ≈ 27만 원 + 서버·프록시 10만 원 → 연 ≈ 450만 원; 운영 인건비 — 분기 재수집 4×0.5일·장애 대응 5일·접근성 유지 3일 ≈ 10인일/년 ≈ 380만 원(응용SW 단가). 초과는 세션당 100원 종량(한계비용 ≈91원), 음성 세션 5분·일일 총량 캡. 실측(대시보드 7일, 개발·평가 트래픽): 분당 비용 세션 평균 $0.0213.

  • 3년·3시군 가정(만 원) — 같은 노임단가·같은 산식으로 재계산. 2·3호 구축은 8인일(데이터 재수집·임베드·QR 매핑·시 데이터 덮어쓰기·검수; 직접인건비 3.2M + 제경비 110% 3.5M + 기술료 20% 1.3M + 직접경비 2.0M = VAT 포함 ≈1,100만 원 — 6회차 지적대로 파일럿과 같은 산식):

    Y1(2027)Y2(2028)Y3(2029)
    경주 파일럿 → 운영1,9001,0001,000
    2호 구축(Y2, 1,100) → 운영(Y3)–1,1001,000
    3호 구축(Y3, 1,100) → 운영(Y4)––1,100
    교육 구독(10→20→30교×30)300600900
    매출2,2002,7004,000
    구축 직접인건비·직접경비(파일럿 14인일 557+323 / 2·3호 8인일 320+200)880520520
    모델·서버(450/시군·년)4509001,350
    운영 인건비(10인일/시군·년, 380)3807601,140
    원가1,7102,1803,010
    공헌이익(제경비·기술료 포함)490520990

    해석: 파일럿 3년은 진입·레퍼런스 확보 단계이며 이익은 4호 이후·센터 운영비 모델·교육청 단위에서 난다 — 단독 사업성으로 포장하지 않는다.

  • 앵커: 소규모 AI 안내 구축 2,750만 낙찰(2026, 민간 조합 발주·검색 요약 기준 △), 경기도 생성형 AI 챗봇 4.17억·운영 7.66억(2025, 광역 참고). 관광공사 역사문화형 과제(5천만~1억)는 응모 경로.

  • 왜 지금: 국가유산청 2026 예산 +8%·2027 예산안 +11.2%(활용 1,311억), 활용사업 379건·방문 캠페인 100거점, 학습지원 SW 선정 기준 시행, 공식 앱 축소, 경주 AI-XR(2026~27)·센터 개편(2026-07) 창.

  • 경쟁 방어: 국가유산청 30억 AI 해설은 궁능, 경주 XR은 위치 기반 해설 — 교사용 코스·편의시설·계획서·QR·대시보드는 겹치지 않는 층이며, 도메인 스키마·에이전트 규칙·테마·장소 사전이 전부 데이터라 2호 복제에 코드 변경이 없다.

11. 리스크와 대응

리스크대응
모델이 지시어 대상·화면 건수를 바꾸거나 도구 없이 답함단일 번호 소개·단순 건수·QR 해설·과거 검색 복원은 서버가 처리. 추천 뒤 소개는 실제 열린 상세의 요약으로만 답함
직선 반경이 전체 코스 시간으로 오해됨답변·패널·내보낸 표에 범위 안내. 실제 길찾기·완주 시간은 제공하지 않음
통계를 반경 검색·야외 검색으로 오답도메인 행정 필드에 따른 전체 DB 집계, 현장 후보·전체·미확인 범위와 좌표 누락 고지
교사·담당자 1차 근거 0건제안 전 교사 3~5명 인터뷰·계획서 서식 1건·담당 부서 접촉 메모 1건 필요. 아직 수행되지 않은 인간 작업이며 점수·개발 로그로 대체하지 않음
화장실 2017~2020, 관광지 주차장 누락출처·기준일·직선거리·정보 없음 표시, 파일럿 시 보유 목록으로 갱신
자동 시대·유형 분류, 좌표 누락추정 배지·설명문 근거·커버리지 고지, CMS 수정. 행정 통계도 공식 전체 통계와 다를 수 있음
API·타일·이미지·음성 외부 의존프록시·재사용·실존 검사, 타일 자체 호스팅과 접근성 검수는 파일럿 비용 가설
법령·부서·조달·가격 조건 변동§2·§10은 기존 조사와 가격 가설이며 제안 직전 공식 자료로 재확인
운영 성과 과장개발·평가 세션을 고객 완료율·시장 검증으로 사용하지 않음

12. 성공 기준과 이번 검증

  • 결과평가 1회차 69.0, 2회차 73.0(P1 74 / P2 72 / P3 73) 미달. 원본·프롬프트·브라우저 증거는 result-evals/round-2/, result-evals/evidence/round-2/, 집계는 result-evals/round-2.json에 보존한다. 독립 결과평가 3회차 평균 80 이상이어야 게시한다.
  • 개발 셀프체크는 result-evals/self-check-v8/. 백엔드 전체 단위 검사, production 빌드, DB 게시·임베딩 수, API 24+14+17턴, 브라우저 콘솔·서버 로그를 검증한다. 완료 여부·실행값은 해당 summary.json이 원본이며 독립 점수로 사용하지 않는다.
  • 아래 9턴 대본을 데스크톱 4회·모바일 1회 같은 순서로 실행한다. 7정류장(10건)·5.6km → 석빙고 제외 6정류장(9건)·5.2km → 사마소 제외 5정류장(8건)·5.2km가 실제 답변·패널에 일치해야 한다.
  • 학교 추천→그중 두 번째 소개를 5회 반복해 실제 추천 두 번째=열린 상세=소개를 대조한다. QR 첫 한국어·영어 해설/정지, 첨성대 상세·분류·야외 재필터, 초기 정렬 15건·팝업 재번호, 7행 인쇄 PDF·TSV·모바일 44px 제외 버튼·범위 안내·가로 넘침을 확인한다.
  • 가짜 마이크 음성 연결·인사 전사·정지 스모크는 라운드당 1회. 음성 대본 전체 정확성 검증과 구분한다. responseMs는 답변 완료까지이며 ms는 지도 안정화 1,500ms와 캡처를 포함한다. 첫 토큰/첫 반응 지표가 아니다.
  • 남은 한계: 새로고침 세션 복원·마커 키보드 순회·고객 성과 분리 대시보드·운영자 문의 경로, 고객 인터뷰·서식·담당자 접촉은 아직 미완료다. 현재 개발·평가 기록을 고객 성과로 사용하지 않는다.
python3 tools/eval/chat_scenarios.py tools/eval/scenarios/heritage-guide.json --base http://127.0.0.1:10016
python3 tools/eval/chat_scenarios.py tools/eval/scenarios/heritage-guide-result.json --base http://127.0.0.1:10016
python3 tools/eval/chat_scenarios.py tools/eval/scenarios/heritage-guide-classification.json --base http://127.0.0.1:10016
node tools/eval/browser_session.mjs --url http://192.168.0.55:9016/s/heritage-guide --out /tmp/wow-v8 --messages '["지금 화면에서 국보만 남겨줘","두 번째 거 해설 들려줘","영어로 들려줘","그만","경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘","화장실 가까운 순으로","석빙고는 빼줘","세 번째 대신 더 가까운 걸로","지금 화면에 몇 개 보여?"]'
node tools/eval/heritage_review.mjs /tmp/v8-review
node tools/eval/heritage_r2_review.mjs /tmp/v8-followups

이전 기획 · v7 (2026-10-09) — 결과평가 1회차(69.0) 반영: 화면·통계·검색 복원·QR·인쇄 정합

v7 (2026-10-09) — 결과평가 1회차(69.0) 반영: 화면·통계·검색 복원·QR·인쇄 정합

1회차는 추천 후 잘못된 장소 소개, 전체 검색과 표시 건수 혼동, 과거 검색 미복원, 지도 이동 후 이전 결과 재사용, 행정 전체를 반경으로 집계, QR 첫 해설 되묻기, 인쇄 장소 행 누락을 발견했다. v7은 해당 동작을 서버 실행 결과와 연결하고, 입력한 도보 시간의 의미를 답변·패널·표에 표시한다. 사전평가 통과점수 80.0은 기획 v6 기준이며, 현재 결과평가 점수는 69.0이다. 수요 인터뷰는 여전히 0건이다.

1. 한 줄 정의

국가유산청 공식 데이터 위에서 교사·답사객이 말로 유산을 거르고, 출발점 주변 후보로 코스를 조합해 계획서 표를 만드는 모듈. 지도·답변·코스 표는 같은 정류장 순서와 직선거리를 사용한다. “걸어서 30분”은 출발점에서 후보를 찾는 직선 반경으로 환산하며, 코스 전체의 보행·관람 시간을 보장하지 않는다. 지자체 사이트 임베드와 안내판 QR로 사용한다.

2. 제안 대상(클라이언트)과 최종 사용자

  • 1차 계약 주체(파일럿): 경주시 — 활용사업·안내판·국가유산은 문화유산과, 관광 사이트 임베드는 관광컨벤션과, AI 연계는 경주AI&미디어센터(구 경주스마트미디어센터)·디지털정책과. 경주시는 2026-07-22 조례 개정안을 입법예고(7/228/4)해 명칭을 경주AI&미디어센터로 바꾸고 주요 사업에 **"AI 기반 문화·관광·도시서비스 개발 및 운영"**을 넣었다(경북매일·메트로 2026-07-22, 시의회 심의 후 확정 — 확정 여부는 제안 전 재확인). 수요처가 스스로 운영 주체가 되는 구조이므로 제안은 두 갈래: (a) 문화유산과·관광컨벤션과 파일럿(임베드·QR·계획서 표), (b) 센터가 운영 주체, 우리는 모듈·API 공급(연 운영비는 센터 예산, 딥파인 AI-XR 서비스에 교사 코스·편의시설 레이어를 API로 제공하는 협력 조건). AI 투자 근거: ChatGTS(2023, 국비 5억+시비 5억 — 토큰포스트 원문상 서라벌 메타버스(국토부 디지털트윈 시범)와 합산 사업비), 'AI 기반 현실확장형 가상융합 서비스'(202627, 주관 딥파인, 참여·수요처 경주시·센터, 2년 18억, 첨성대·동궁과 월지·황룡사지; 경북매일 2026-06-09·트위그24 2026-06-10). 계약 형태(지방계약법 시행령 §25①5): 1인 견적 소액수의 ≤2천만 원 → 파일럿 1,900만 원(VAT 포함, 산출표 §10과 동일 금액, 단일 범위). 활용사업은 2027년분 기선정(2026-09, 244건) → 변경 편입 타진, 정식 번들은 2028 사이클(2027-09 공모).
  • 2차: 교육 — 학교·구청·교육청 체험학습 사업. 2026-1학기부터 성취기준 연계·개인정보 처리 학습지원 SW는 교원 의견수렴→학운위 심의→학교장 확정(교육부 2025-12-29). 우리는 **학생 개인정보를 수집하지 않고 성취기준 콘텐츠를 포함하지 않는 '교사용 답사 계획 도구'**로 설계해 4단계 심의 비대상을 노리는 **교당 연 소액 구독(30만 원, 학교장터 S2B 등록 — 요건·수수료 확인 필요)**을 두되, 매출 라인이 아니라 지자체 파일럿의 성과 근거 채널이다(§10). 재원: 구청 교육경비보조금(동대문구 2026 교당 최대 500만 원 사례), 교육청 현장체험학습 지원사업(서울 2026 본예산 10.7억+추경 18억, 사전답사 차량 1.7억).
  • 3차: 국가유산청·국가유산진흥원 — 데이터·표준 파트너. 국가유산청은 202627년 총 30억의 다국어 AI 해설(4대궁·종묘)·46만 건 학습데이터·RAG DB를 직접 구축 중이라 '대화형 해설'을 외부 구매할 가능성은 낮다. 우리는 궁능 밖 지방 지정유산·향토유산·교사용 코스 공백을 맡고, Open-API 보급·조달청 혁신제품 시범구매 계획을 들어 실증 트랙과 방문 캠페인 거점(13코스 100거점) 무상 연계(MOU)로 접근한다. 관광공사 'AI 기반 지역관광 문제해결(역사문화형)' 과제(5천만1억)는 응모 경로.
  • 페르소나 A — 초등 5학년 담임 김수진(38, 경주 월성초): 사회 '우리 고장의 문화유산' 체험학습. 학운위 심의용 사전답사 계획서(장소·주소·관리자·편의시설·이동거리)를 내야 한다. v1이 답하는 것: "월성초등학교 기준으로 걸어서 30분 안에 갈 수 있는 유산으로 코스 짜줘"(전국 초·중·고 12,004곳 장소 사전, 동명 학교는 지도 중심 근접) → 정류장 번호 지도·패널·답변, 지정종목·시대·관리자·화장실/주차 거리('정보 없음')·구간/총 직선거리·계획서 표; "5학년 단원에 맞는 곳 골라줘 → 그중 두 번째는 어떻게 소개해?" → 나열의 두 번째를 열어 쉬운 요약으로 소개. 못 답하는 것(정직 안내): 입장료·단체 입장·휴관일·버스 주차 → "그 정보는 없어요. 관리자인 ○○에 문의해 주세요"(서버가 보충, '관리자 필드' 같은 자리표시자 금지).
  • 페르소나 B — 당일 답사객 박민호(52, 수원): 안내판 QR로 들어와 "근처에 뭐 있어?"(안내판 기준 직선 2km) → 공식 음성해설 → 영문 전환. (근거 약한 보조 페르소나.)

3. 고객 니즈와 근거

니즈근거이 모듈이 푸는 부분 (정직하게)
교사의 체험학습 기획·행정 부담초등교사노조 설문(2026-04, N=21,918) 추진 '부정' 96.2%; 부담 요소 법적 책임 50%·민원 37%·행정 12%(데일리안 2026-05-04). 전교조 2026 실태조사 체험학습 사실상 중단 7.2%(아시아경제 2026-05-04). 소규모·테마형 전환 지침(경기일보 2024-05-30)행정 12%의 '장소 조합·계획서 작성'. 심의 서류용 표(장소·종목·소재지·관리자·편의시설 거리·구간 거리·출발점 주석)를 대화 3턴 안에 뽑는다(실행: 코스 요청→정렬→빼기, 표 복사 1클릭). '10분 절감'은 가설 — 파일럿 교사 5명 관찰로 검증
공식 수요 근거국가유산청 「2024 국가유산교육 정기 실태조사」 학교 교육 부문 제언 "정보 플랫폼 개선"교사용 정보 플랫폼의 구체 형태
경주시: 관광 안내의 AI 전환ChatGTS(2023)·AI-XR(2026~27, 18억, 주관 딥파인) 투자, 경주AI&미디어센터 개편(2026-07)두 사업이 다루지 않는 교사·단체 답사 코스와 편의시설·계획서 출력 층을 센터가 운영할 모듈로 공급 — 담당 부서의 수요 발언은 아직 없음(가설)
지방 유산으로 방문 분산2025년 궁능 관람객 1,781만(+12.9%), 외국인 427만(24%)(헤럴드경제 2026-01-04)지자체 임베드 코스 모듈이 '궁 밖' 유산으로 유도

1차 근거 현황(정직): 교사 인터뷰·학운위 사전답사 계획서 서식 실물·담당 부서 접촉 메모는 5회차까지 0건이며 v6에서도 없다(문서로 만들 수 없는 항목을 지어내지 않는다). 제안 전 필수 과제(§11)로 두고, 그 전까지 표 열(순서·장소·종목·소재지·관리자·화장실/주차 거리·구간 거리)은 학교안전법 시행규칙상 현장체험학습 사전답사 항목(장소·이동 경로·안전시설·편의시설)에 맞춘 가설이다.

현재 대안과 한계

  • 국가유산청 공식 앱 '나만의 국가유산 해설사': 반경 검색·4개 국어 텍스트 해설·방문 스탬프. 코스·대화·음성·교사용 기능 없음, 2026-10-09 현재 스토어 404·웹 my.heritage.go.kr 축소 운영. 우리는 같은 공개 API 위의 보완 모듈.
  • 경주시 ChatGTS·AI-XR: 관광 챗봇과 위치 기반 XR 해설. 교사용 코스·편의시설·계획서 출력 없음 → 센터 운영 모듈/API 공급 대상.
  • 국가유산 방문 캠페인(13코스 100거점): 코스 설계·대화 없음 → '여권 거점' 태그 번들(라운드 2).
  • 국가유산포털(GIS)·네이버·카카오·교사의 ChatGPT+지도앱: 조건 교차·지시어·편의시설·표 출력·출발점 기준 코스가 한 흐름이 아니고, LLM 단독은 좌표·지정 정보를 지어낸다 — 우리는 공식 데이터만 근거로 답하고(회귀 품질 검사 §12) 표로 바로 나온다.

왜 대화+지도가 본질적으로 유리한가: 답사 질의는 조건 교차(종목×시대×유형×거리) → 지시어(그중/두 번째/여기서/세 번째 대신) → 해설 청취 → 표로 저장이 한 흐름이다. 폼은 조건을 하나씩, 해설은 다른 화면, 표는 손으로 옮겨야 한다.

4. 와우 포인트 (같은 순서로 재현)

초기 화면은 불국사 앞(35.790, 129.332), 줌 14, 중심 2km 거리순 15건이다.

  1. “지금 화면에서 국보만 남겨줘” → 지도 위치를 유지하고 가시 결과만 재필터한다. 건수는 전체 검색·표시·현재 가시 결과를 구분한다. 데스크톱/모바일의 가시 범위는 다르므로 특정 숫자를 항상 약속하지 않는다.
  2. “두 번째 거 해설 들려줘” → 화면 2번의 상세와 공식 음성해설을 연결한다. 이 대본의 실제 2번은 불국사 삼층석탑 사리장엄구이며 석굴암이 아니다. 석굴암은 ?focus=11-0000240000000-37 QR로 진입해 첫 “해설 들려줘” → 한국어 → 영어 → “그만” 순서로 확인한다. 영문 해설은 실제 제공된 유산만 지원한다.
  3. “경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘” → 7정류장(10건), 총 직선거리 5.6km, 출발 경주향교. 향교 경내 4건은 1정류장으로 묶인다. 화장실 정렬은 걷는 순서를 유지하고, 석빙고 제외 뒤에는 6정류장(9건)·5.2km, 이어 세 번째(경주사마소) 제외 뒤에는 5정류장(8건)·5.2km가 된다. 표 복사·TSV·인쇄는 같은 열·행·순서로 나온다. 답변·패널·표에 입력한 도보 시간은 검색 반경이며 전체 코스 시간이 아니라는 안내가 붙는다.

재현 명령은 §12에 있다. 개별 후보가 출발점 반경 안에 있어도 전체 이동 거리는 5.6km일 수 있다. 실제 보행 길찾기와 시간표는 지원하지 않는다.

5. 니즈 선도 포인트

포인트제공하는 것한계·검증
계획서 표장소·지정종목·소재지·관리자·화장실/주차장 직선거리·구간거리·출발점·시간 안내를 복사/TSV/인쇄학운위 서식 실물은 아직 0건, 파일럿 교사 확인 필요
학교 기준 후보전국 운영 학교 12,004곳 지명 사전, 동명 학교는 지도 근접 또는 지역 병기월성초등학교는 경주/창원/김제 동명, 전국 검색 후에는 “경주시 월성초등학교”로 지정
학생 눈높이 소개추천 목록의 N번째를 실제로 열고 공식 설명문 기반 쉬운 요약을 AI 생성 라벨과 함께 답함추천 목록 자체는 모델 판단, 상세 대상은 서버가 결정
QR 첫 해설진입한 유산의 상세 선택을 서버 세션에도 등록하고 첫 해설을 즉시 연결공식 음성 제공분만, 요금/휴관은 관리자 확인
운영 근거 수집CMS 세션·오류·비용 로그현재 데이터는 개발·평가용, 고객 사용 성과로 표현하지 않음
확장여권 거점·향토유산·외국어·활동지후속 과업, 현재 완성 기능 아님

6. 대화 시나리오 (결과평가 기본 세트)

기존 회귀 24턴(tools/eval/scenarios/heritage-guide.json)은 S1·S2·S3·S4·S5·S6·S7·S8·S9·S11·S14·S16·S17·S18을 덮고, S10·S12(손으로 지도 이동)·S15(QR)는 브라우저 수동/드라이버 세션으로 확인한다(5회차 지적대로 '1:1'이 아님을 명시).

#대화기대 동작 (실행 결과)
S1"경주 근처 국보 보여줘" → "그중에서 석탑만" → "두 번째 거 설명해줘"region=경주·designation=국보(야외 기준) → within_last_results·kind=탑 → 직전 나열의 2번째 상세 소개
S2"지금 화면에 몇 개 보여?" → "지금 화면에서 조선 시대 것만 남겨줘"서버가 전체 검색·표시·가시 건수로 답(tool 없음) → within_visible·era=조선, 지도 고정
S2-1코스 모드에서 "지금 화면에 몇 개 보여?"코스 패널(실측 높이)·상세 시트가 가린 결과는 '화면 밖' — 데스크톱 9/9, 모바일 10/10
S3"여기 근처에 걸어서 15분 안에 갈 수 있는 사적 있어?"near_me·radius 1200·designation=사적, "직선 반경 1.2km" 1회(반경 표기는 tool 인자 그대로 — '2km'≠2,500m 오류 수정)
S4"경주향교 기준으로 … 코스 짜줘" → "화장실 가까운 순으로" → "세 번째 대신 더 가까운 걸로" / "석빙고는 빼줘"서버 기준점 고정·가까운 10건·거리순·목록=정류장 순서 → payload.course → 정렬 턴은 서버 문장(집합·순서·지도 고정) → '세 번째 대신'은 서버 지름길: 정류장 3 제외·나머지 순서 유지·서버 문장 → "석빙고는 빼줘"는 모델이 exclude_indexes로 호출, 답변은 서버 문장
S4-1결과가 요청 수 미만"조건에 맞는 곳은 M곳이에요. 반경을 넓히거나 조건을 빼면 …"
S5"주차장 가까운 데가 어디야?"명시 조건 전용: 범위 필터는 거리 표현이 없으면 서버가 떼고 거리값으로 답함(결과를 비우지 않음)
S6"그거 해설 들려줘" → "영어로 들려줘" → "그만"play_audio_guide(상세 동시) → lang=en(실존분만) → stop_audio
S7"울릉도에 국보 있어?"region+designation → 0건 → "조건에 맞는 곳은 없지만 지정종목=국보 조건 제외하면 N건 있어요. 볼까요?"(모델이 빠뜨리면 서버가 덧붙임)
S8"이거 누가 관리해?" → "전화번호는?"열린 상세의 관리자 즉답 → "그 정보는 없어요. 관리자인 ○○에 문의해 주세요"(서버 보충; 관리자 비공개면 소재지 지자체 문화유산 담당 부서)
S9"입장료 있어?" / "30명 단체로?" / "휴관일?"동일 — 열린 상세가 없으면 "어느 곳인지 말씀해 주시면 관리자를 안내할게요"
S10"시도지정 중에 조선 시대 것"era 필터, '시대추정' 고지는 세션 1회
S11"고성에 있는 문화재"동명 되묻기(지도 중심 40km 안이면 자동)
S12지도를 손으로 옮긴 뒤 "여기는 뭐 있어?"near_me → 뷰포트 중심 기준
S13"아까 본 석탑들 다시" → "그중 제일 북쪽"세션에 저장한 과거 탑 검색과 지도 범위를 복원 → "북쪽 순 정렬은 지원하지 않아요 …"
S14"경주 박물관에 있는 국보도 보여줘"include_indoor=true, "박물관 소장 N건"
S15QR ?focus=<석굴암 ID> → "해설 들려줘" → "근처에 뭐 있어?"그 유산 중심·상세에서 시작 → play_audio → near_me 2km(박물관 소장 1건 제외 고지)
S16"고마워, 이제 끝낼게"end_session
S17(화장실 순 정렬 뒤) "월성초등학교 기준으로 걸어서 30분 안에 갈 수 있는 유산으로 코스 짜줘" → "두 번째 빼고"학교 장소 사전 → 거리순 10곳(정렬 비계승) → 서버 지름길로 정류장 2 제외·순서 유지
S18"5학년 사회 '우리 고장의 문화유산' 단원에 맞는 곳 골라줘" → "그중 두 번째는 아이들한테 어떻게 소개하면 좋아?"search 후 화면 순번으로 3~5곳·쉬운 요약(번호 정규화) → 나열의 두 번째를 서버가 열고(tool 결과에 해석 노트) 소개
  • 음성: S1·S6을 음성으로 1회(가짜 마이크). | S19 | “경주시 전체에 국보 몇 개야?” → “야외만 총 몇 개?” → “박물관 소장 포함 전체 수는?” | 행정구역 전체 게시 데이터 27건(야외 12+실내 15), 반경 검색과 분리, 좌표 없는 유산은 제외됐음을 고지 | | S20 | 학교 코스 → “두 번째 빼고” → “지금 화면에 몇 개 보여?” | 전체 검색 40건 중 9건 표시, 가시 집합이 9건이면 화면 안 9건. 전체 검색 40건을 표시 건수라고 말하지 않음 | | S21 | “코스 전체를 30분 안에 돌 수 있어?” | 후보 검색 반경임을 설명, 완주 시간 보장하지 않음 |

  • 음성 연결은 가짜 마이크로 라운드당 1회 스모크. 음성 대본 정확성 전반과는 구분한다.

heritage-guide-result.json 추가 회귀는 S12·S13·S19·S20·S21을 검증한다. 지도 수동 이동 자체와 QR·인쇄는 별도 브라우저 확인.

7. 데이터 전략 (수집 완료본 기준, 스키마 v5)

  • 국가유산청 공개 API: 좌표 유효 10,361건 상세 전수 → 엔티티 10,217건 게시·임베딩 100%. 음성해설 실존 — 국문 99.8%, 영문 3,941(39%)(국보 97·보물 96·사적 93·명승 92·천연기념물 96·국가민속 96·국가등록 87·시도유형 6·시도기념물 12·시도민속 2·문화유산자료 7%; 경주 253/295=86%). 좌표 결측 5,552건(보물 40%)은 v1 제외·고지. 관리자 마스킹 개인명 1,767건 → '개인(비공개)'.
  • 유형(kind) 분류: 규칙 파서(코드·이름) + LLM 보정. 5회차 지적(진평왕릉 등 무덤류 46건이 '성곽·요새')은 규칙의 '진' 토큰 오매칭 — 무덤 규칙을 성곽보다 앞세우고 '진'은 단어 경계로 제한해 왕릉·릉 66건 전부 고분·왕릉으로 재분류. kind_unresolved(규칙·LLM 모두 미해소 → '기타') 1,338(기타 832)건은 §11에 고지.
  • 표준데이터: 공중화장실 33,820(2017~2020, 경주 39건·2019), 주차장 18,939(2026, 관광지 누락 가능) → 최근접 직선거리, 1.5km 밖 '정보 없음'. 경주 화장실 300m 안 52/295(17%), 정보 없음 104, 주차 정보 없음 131(주차장명은 표준데이터 원문 — '베이글' 같은 상호도 그대로). 전국초중등학교위치표준데이터 12,004곳(운영 중) → 지명 사전.
  • 시대(era): 규칙 파서 우선, 빈값은 설명문 LLM 분류 → era_estimated 4,764(47%; 조선 2,161/4,717). 배지·고지(세션 1회).
  • field_defs 38개: 표시 숨김(hidden) 10개(era_estimated·is_outdoor·has_audio_·_within_300m·era_text·subcategory·sigungu·image_license), 본문(body) 2개(summary_kid·description — 길이와 무관하게 상세 본문), 라벨 중복 제거('가까운 주차장 이름'). agent_config 엔진 규칙 데이터: search_defaults(야외), explicit_only, near_me_radius_m: 2000, result_notes.once, context_fields, places 11곳.
  • LLM 보강: 쉬운 요약(60~120자, 원문 밖 연도·인물 금지), 캐시로 재실행 비용 0, 실비용 ≈ $4.56(gpt-4.1-mini). 대화 모델 gpt-5-mini(reasoning minimal) — 성능은 §12의 이번 실행값 참고.
  • 지도 타일: OpenFreeMap(무료 CDN). 공공 임베드 SLA는 2차년 과업(PMTiles 자체 호스팅 또는 VWorld).
  • 프록시·라이선스: 이미지·음성 /api/proxy/media(화이트리스트·연결 재사용·Range·MIME 정규화). 출처 상시 표기. 공공누리 A/B만 표시, 공공데이터법 3조④, 파일럿 전 서면 확인.
  • 추가 설정: detail_reply_field, statistics.region_fields/outdoor_field/coverage_note, course_scope_note. 도메인 코드를 엔진에 하드코딩하지 않는다.

8. 지도의 역할 — "화면" 규칙 (구현·실행 확인)

  • "지금 화면" = 지도 컨테이너 − 대화 패널(좌 432px) − 카드 띠(하단 150px) 또는 코스 패널(실측 높이+24px) − 상세 시트(우 452px). 클라이언트가 매 턴 visible_ids를 보고한다. 패딩을 먼저 반영한 뒤 fitBounds, 코스 패널 높이가 확정되면 한 번 더 맞춘다.
  • 지도를 움직이지 않는 동작: 화면 안/직전 결과 재필터, 코스 안 정렬, 선택·상세(보이는 영역 안이면). 움직이는 동작: 새 검색·지역 이동·코스 조립.
  • 기준점 고정(엔진 규칙): 발화(또는 q)의 등록 장소(places 11곳 + 학교 12,004곳)를 기준점으로 치환, 재필터 턴의 상위 지역 무시, 제외·정렬·'−'는 기준점·조건 유지, 동명 장소는 지도 중심 40km 근접.
  • 코스 모드(엔진 상태): 코스 발화 또는 course=true로 켜지고 재필터·정렬·제외 동안 유지, 비코스 새 검색이면 해제. 켜지면 **가까운 10건·거리순(직전 정렬 비계승)**으로 검색해 결과 목록을 정류장 순서로 재배열하고 payload.course(묶음·순서·구간·총거리)를 내린다 → 마커 번호·패널·답변·"N번째"가 모두 정류장 번호. 정렬은 같은 집합 안에서만(목록·마커·순서 고정, 답변은 서버 문장). 제외는 나머지 순서를 유지하고 새 후보만 뒤에 붙인다.
  • 지시어(엔진 규칙): "그중 N번째"는 직전 답변의 나열(화면 순번 목록)의 N번째로 치환(코스 모드는 정류장 N), "N번"은 화면 번호 그대로; "N번째 대신/빼고/말고"는 모델을 거치지 않는 제외 재검색. 답변의 목록 번호는 화면 순번 하나로 정규화.
  • 야외 우선·명시 조건 전용·근처 2km·고지 1회: v5와 같고, 야외 기준으로 빠진 박물관 소장 건수를 세어 고지한다.
  • 모바일 '화면': 가림 영역 = 상단 56 + 하단(대화 시트 50dvh + 카드 띠 110) / 코스 모드: 하단(입력 바 112 + 마지막 답변 바 54 + 코스 패널 실측 ≤32dvh).
  • 과거 검색은 세션 내 최근 비코스 검색 8개 중 발화의 enum 조건이 일치하는 결과만 복원한다. 찾지 못하면 다시 검색하도록 요청한다.
  • 단순 “여기는 뭐 있어?”는 현재 지도 중심에서 새 검색을 수행한다. 북쪽/남쪽 순 정렬은 지원하지 않는다고 답한다.
  • 행정구역 전체 집계는 좌표 반경·야외 기본값·화면 표시 상한을 적용하지 않는 별도 DB 집계다.

9. UI/UX (구현된 화면 기준)

  • 톤·레이아웃: 한지 톤 종이(#fbf8f3)·단청 적색(#8b2e2e)·먹색(#1f1a17), Pretendard. 데스크톱 좌 400px 대화 패널 / 중앙 벡터 지도 / 하단 카드 띠(또는 코스 패널) / 우 상세 시트(열리면 하단 패널 폭이 줄어 가려지지 않음).
  • 번호 체계 하나: 비코스 모드 = 화면 순번(카드·마커·답변·"N번째"), 코스 모드 = 정류장 번호(마커·패널·답변·"N번째", 같은 경내는 같은 번호). 답변의 이중 표기("1. (6)", "2. 3.")는 서버가 화면 순번으로 정규화한다.
  • 상세 큐레이션(적용): 사진 → 쉬운 요약(AI 생성, 길이 무관 첫 섹션) → 설명문 → 속성 표(지정종목·유형·시대·분류·시도·지정연도·소유·관리자·소재지·가까운 공중화장실/주차장 거리·주차장 이름) → 사진 갤러리 → 출처. 내부 플래그·좌표 비표시.
  • 플레이어 통합: 시트 상단 '음성해설: 한국어 듣기/영어 듣기' → 같은 tool → 대화 패널 플레이어 하나. 모바일 상세는 하단 50dvh(플레이어·입력창)를 남긴다.
  • 코스 패널: 자동(서버 상태) → 지도 하단 · 정류장(묶음)·종목·소재지·관리자·화장실/주차 거리·구간/총 직선거리·"전체 41건 중 가까운 10건" · 행 '−'(서버 제외 경로, 스레드에 서버 문장 기록) · "코스로 보기" 토글도 서버 코스 · 표 복사·TSV·인쇄. 모바일 코스 모드: 대화 패널을 입력 바로 접되 **마지막 답변 한 줄 바(탭하면 대화 전체)**를 두고 패널 ≤32dvh — 지도·답변이 함께 보인다(5회차 '답변 미노출' 해소).
  • 근거 칩: 한글 라벨, 내부 오류 문자열 비노출(모델이 지어낸 파라미터는 서버가 무시).
  • 카드 띠: 새 결과마다 1번부터, 배지(박물관 소장·시대 추정·사진 제공 제한), 0건 빈 상태 카드.
  • QR·임베드: v5와 같음(?focus, iframe/스크립트 1줄, allow="clipboard-write; autoplay", KWCAG 2.2 점검 비용 포함; 되묻기 선택지 칩·마커 키보드 순회는 라운드 2).
  • 인쇄는 별도 표 레이아웃으로 장소 행이 버튼 숨김에 의해 사라지지 않게 한다. 모바일 사진은 높이 160px, 코스 제외 버튼은 44×44px, 결측 주차거리도 “정보 없음”으로 표시한다.

10. 비즈니스 관점 (조달·가격 정합 — 5회차 지적 반영)

  • 포지셔닝: 공식 앱·경주시 챗봇/XR의 대체가 아니라 교사용 코스·대화형 필터·편의시설·계획서 출력 레이어(B2G 모듈). 센터 개편 시 센터 운영·우리 모듈/API 공급.

  • 1차 경로 — 파일럿 1,900만 원(VAT 포함) = 산출표 금액, 단일 범위(1인 견적 소액수의 ≤2천만, 추정가격 1,727만 원). 단가: 한국AI·소프트웨어산업협회 2026년 적용 SW기술자 평균임금(일평균 IT기획자 578,206원·응용SW개발자 378,250원·UI/UX 개발자 336,666원; 전체 414,762원, +4.7%, 2025-12 공표) × 제경비 110%·기술료 20%:

    항목인일단가(원/일)금액(원)
    IT기획(요구 정리·BI·검수 대응)2578,2061,156,412
    응용SW개발(임베드·QR 매핑·편의시설 덮어쓰기·대시보드·운영 인수)9378,2503,404,250
    UI/UX(접근성 점검·보완)3336,6661,009,998
    직접인건비 소계145,570,660
    제경비(110%)6,127,726
    기술료(20% × (인건비+제경비))2,339,677
    직접경비(접근성 외부 검수 165만 · 타일 자체 호스팅 초기 세팅 100만 · 교육·교통·인쇄 58.5만)3,234,664
    합계(VAT 별도)17,272,727
    VAT 포함19,000,000

    타일 자체 호스팅 운영과 접근성 인증마크 취득은 2차년 과업·운영비 항목. 확인 필요(제안 전): 소기업 확인서·소재지(지역업체 우선), 경주시 수의계약 운영기준, 활용사업 보조금의 SW 모듈 집행 가능 여부, 학교장터 S2B 등록 요건·수수료.

  • 연 운영 가격 1,000만 원(월 3,000세션 포함) vs 원가 ≈ 830만 원: 모델·서버 — 세션 평균 ≈ $0.065(텍스트 6턴 $0.024 + 음성 30%×2분 $0.041), 3,000세션 ≈ $195/월 ≈ 27만 원 + 서버·프록시 10만 원 → 연 ≈ 450만 원; 운영 인건비 — 분기 재수집 4×0.5일·장애 대응 5일·접근성 유지 3일 ≈ 10인일/년 ≈ 380만 원(응용SW 단가). 초과는 세션당 100원 종량(한계비용 ≈91원), 음성 세션 5분·일일 총량 캡. 실측(대시보드 7일, 개발·평가 트래픽): 분당 비용 세션 평균 $0.0213.

  • 3년·3시군 가정(만 원) — 같은 노임단가·같은 산식으로 재계산. 2·3호 구축은 8인일(데이터 재수집·임베드·QR 매핑·시 데이터 덮어쓰기·검수; 직접인건비 3.2M + 제경비 110% 3.5M + 기술료 20% 1.3M + 직접경비 2.0M = VAT 포함 ≈1,100만 원 — 6회차 지적대로 파일럿과 같은 산식):

    Y1(2027)Y2(2028)Y3(2029)
    경주 파일럿 → 운영1,9001,0001,000
    2호 구축(Y2, 1,100) → 운영(Y3)–1,1001,000
    3호 구축(Y3, 1,100) → 운영(Y4)––1,100
    교육 구독(10→20→30교×30)300600900
    매출2,2002,7004,000
    구축 직접인건비·직접경비(파일럿 14인일 557+323 / 2·3호 8인일 320+200)880520520
    모델·서버(450/시군·년)4509001,350
    운영 인건비(10인일/시군·년, 380)3807601,140
    원가1,7102,1803,010
    공헌이익(제경비·기술료 포함)490520990

    해석: 파일럿 3년은 진입·레퍼런스 확보 단계이며 이익은 4호 이후·센터 운영비 모델·교육청 단위에서 난다 — 단독 사업성으로 포장하지 않는다.

  • 앵커: 소규모 AI 안내 구축 2,750만 낙찰(2026, 민간 조합 발주·검색 요약 기준 △), 경기도 생성형 AI 챗봇 4.17억·운영 7.66억(2025, 광역 참고). 관광공사 역사문화형 과제(5천만~1억)는 응모 경로.

  • 왜 지금: 국가유산청 2026 예산 +8%·2027 예산안 +11.2%(활용 1,311억), 활용사업 379건·방문 캠페인 100거점, 학습지원 SW 선정 기준 시행, 공식 앱 축소, 경주 AI-XR(2026~27)·센터 개편(2026-07) 창.

  • 경쟁 방어: 국가유산청 30억 AI 해설은 궁능, 경주 XR은 위치 기반 해설 — 교사용 코스·편의시설·계획서·QR·대시보드는 겹치지 않는 층이며, 도메인 스키마·에이전트 규칙·테마·장소 사전이 전부 데이터라 2호 복제에 코드 변경이 없다.

11. 리스크와 대응

리스크대응
모델이 지시어 대상·화면 건수를 바꾸거나 도구 없이 답함단일 번호 소개·단순 건수·QR 해설·과거 검색 복원은 서버가 처리. 추천 뒤 소개는 실제 열린 상세의 요약으로만 답함
직선 반경이 전체 코스 시간으로 오해됨답변·패널·내보낸 표에 범위 안내. 실제 길찾기·완주 시간은 제공하지 않음
통계를 반경 검색·야외 검색으로 오답도메인 행정 필드에 따른 전체 DB 집계, 실내 포함과 좌표 누락 고지
교사·담당자 1차 근거 0건제안 전 교사 3~5명 인터뷰·계획서 서식 1건·담당 부서 접촉 메모 1건 필요. 아직 수행되지 않은 인간 작업이며 점수·개발 로그로 대체하지 않음
화장실 2017~2020, 관광지 주차장 누락출처·기준일·직선거리·정보 없음 표시, 파일럿 시 보유 목록으로 갱신
자동 시대·유형 분류, 좌표 누락추정 배지·설명문 근거·커버리지 고지, CMS 수정. 행정 통계도 공식 전체 통계와 다를 수 있음
API·타일·이미지·음성 외부 의존프록시·재사용·실존 검사, 타일 자체 호스팅과 접근성 검수는 파일럿 비용 가설
법령·부서·조달·가격 조건 변동§2·§10은 기존 조사와 가격 가설이며 제안 직전 공식 자료로 재확인
운영 성과 과장개발·평가 세션을 고객 완료율·시장 검증으로 사용하지 않음

12. 성공 기준과 이번 검증

  • 결과평가 1회차: 69.0점(P1 71 / P2 67 / P3 69), 미달. 원본·스크린샷·대화·집계는 result-evals/round-1/, result-evals/evidence/round-1/, result-evals/round-1.json에 보관한다.
  • 이번 개발 셀프체크는 result-evals/self-check-v7/에 저장한다. 독립 평가 점수와 구분한다. 백엔드 전체 검사·프런트 타입/production 빌드·DB 게시/임베딩 수·실제 API 회귀·브라우저·서버 로그를 확인한다.
  • 기존 회귀 24턴과 추가 회귀 13턴 모두 통과해야 한다. 학교 코스 뒤 추천→“그중 두 번째”는 브라우저 5회 반복에서 실제 추천 목록의 두 번째 이름=열린 상세 이름=소개 이름이어야 한다.
  • QR 첫 해설(KR/EN/정지), 인쇄 PDF의 7개 장소 행과 소재지·관리자·거리, 모바일 범위 안내·44px 제외 버튼·대화 복귀, 90초 유휴 후 질문을 확인한다.
  • 브라우저 드라이버의 responseMs는 답변 완료까지, ms는 지도 안정화 대기 1,500ms와 캡처를 포함한다. 둘 모두 첫 토큰/첫 반응 측정이 아니며 응답 시간 근거로 구분해 사용한다.
  • 결과평가 2회차는 독립 세 평가자가 최신 서비스와 v7을 직접 사용해 채점한다. 평균 80 미만이면 게시하지 않고 개선을 반복한다.
python3 tools/eval/chat_scenarios.py tools/eval/scenarios/heritage-guide.json --base http://127.0.0.1:10016
python3 tools/eval/chat_scenarios.py tools/eval/scenarios/heritage-guide-result.json --base http://127.0.0.1:10016
node tools/eval/browser_session.mjs --url http://192.168.0.55:9016/s/heritage-guide --out /tmp/wow-v7 --messages '["지금 화면에서 국보만 남겨줘","두 번째 거 해설 들려줘","영어로 들려줘","그만","경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘","화장실 가까운 순으로","석빙고는 빼줘","세 번째 대신 더 가까운 걸로","지금 화면에 몇 개 보여?"]'
node tools/eval/ui_probe.mjs

이전 기획 · v6 (2026-10-09) — 사전평가 5회차(78.0) 반영: 정렬·제외·지시어까지 서버가 보증, 번호 체계 통일, 손익표 정합

v6 (2026-10-09) — 사전평가 5회차(78.0) 반영: 정렬·제외·지시어까지 서버가 보증, 번호 체계 통일, 손익표 정합

5회차는 세 평가자가 모두 78을 줬다. 와우3 코스 턴(7곳·10건·5.6km)은 전 세션 동일 재현을 확인했지만, 코스 턴 밖에서 "답변=지도=패널"이 깨졌다: 정렬 턴 답변이 패널과 다른 '코스' 형식(7회 중 3~4회), 직전 정렬이 새 장소 코스에 잔존(가까운 10건 라벨이 거짓), 5학년 추천 뒤 "그중 두 번째"가 나열 아닌 화면 #2를 열음(7회 중 6회), 번호 체계가 셋(답변·마커·정류장), 모바일 코스 모드에서 답변 미노출, 패널 '−' 무음, 입장료·전화 질문이 "그 정보는 없어요."로 끝남, 쉬운 요약 섹션 위치 불일치, 왕릉이 '성곽'으로 분류, 손익표가 같은 문서의 노임단가와 4배 어긋남. v6은 모델 재량이 남아 있던 턴을 서버가 답변까지 조립하도록 바꿨다: ① 코스 모드의 정렬·제외 턴은 서버 문장(reply_override)으로 답한다("가까운 공중화장실 순으로 보면 숭덕전 155m · … 걷는 순서는 그대로예요" / "경주 석빙고를 뺐어요. 정류장 6곳(9건) · 총 5.2km · …") ② "세 번째 대신/빼고"는 모델을 거치지 않는 서버 지름길(제외 재검색), 코스 모드에서는 '세 번째'=정류장 3(같은 경내 묶음 전부), 제외 후 나머지 순서는 유지(재조립 금지) ③ "그중 두 번째"는 직전 답변이 나열한 목록의 두 번째로 서버가 바꿔 열고(화면 순번 N으로 치환, tool 결과에 해석 노트) 답변 번호는 화면 순번 하나로 정규화("1. (6) 남고루"·"2. 3.월성" → "6. 남고루"·"3. 월성") ④ 새 검색은 직전 정렬을 이어받지 않고 코스 턴은 거리순을 서버가 강제 ⑤ 코스 모드에서는 결과 목록·지도 마커·패널·답변이 모두 정류장 번호(같은 경내는 같은 번호) ⑥ 입장료·전화·휴관 질문이 "없어요"로 끝나면 열린 상세의 관리자(또는 '어느 곳인지' 되묻기)를 서버가 덧붙임 ⑦ 야외 기본값으로 빠진 박물관 소장 건수를 세어 "박물관 소장 N건 제외" 고지 ⑧ 모델이 지어낸 파라미터("course?")는 오류 대신 무시 ⑨ 셸: 모바일 코스 모드에 마지막 답변 바(탭하면 대화), 패널 '−'·'코스로 보기'도 서버 경로+스레드 기록, 코스 모드 십자 제거, 쉬운 요약은 길이와 무관하게 첫 본문(body 플래그), 라벨 중복 제거, 모바일 시트 폭 버그 ⑩ 데이터: 유형 규칙에서 '진'이 왕릉을 성곽으로 잡던 오류 수정(왕릉·릉 66건 → 고분·왕릉) ⑪ 문서: 손익표를 산출표 노임단가로 재계산(운영 10인일/년), 제안가=산출표 1,900만(직접경비 323만), '연 1,000만'은 가격·원가 830만 명시, §6 회귀 대응 범위 정직 표기. 아래 수치는 2026-10-09 게시본(스키마 v5)에서 회귀 23턴(답변 품질·정렬 턴 토큰·나열 지시어 검사) + 브라우저 데스크톱 5·5학년 6·모바일 2·QR 1 세션을 다시 돌린 결과다(result-evals/regression-plan-v6.json).

v6.1 — 개발 마감 정정(2026-10-09, 6회차 통과 80.0 뒤 결과평가 전 반영). 평가자 지적 중 문서·수치 정합: ① §4·§12의 '세 번째 대신'·'몇 개 보여?' 수치를 재현 명령 순서(석빙고 제외 뒤) 기준으로 정정 — "경주사마소를 뺐어요. 정류장 5곳(8건) · 총 직선거리 5.2km", "몇 개 보여?" 8/8(모바일 9/9); '(2/7)' 같은 표기는 '통과 세션/총 세션'으로 통일 ② §10 2·3호 구축 단가는 산출표 방식으로 재산출: 8인일(데이터 재수집·임베드·QR 매핑·시 데이터 덮어쓰기·검수) 3.2M + 제경비 110% 3.5M + 기술료 20% 1.3M + 직접경비 2.0M = VAT 포함 ≈1,100만 원(기존 1,500만은 근거 없음) → 3년표 매출 2,200/2,700/4,000, 원가 1,710/2,180/3,010, 공헌 490/520/990 ③ ChatGTS '10억'은 토큰포스트 원문상 ChatGTS+서라벌 메타버스(국토부 디지털트윈 시범) 합산 사업비로 표기, 2,750만 앵커는 '민간 조합 낙찰(검색 요약 △)'로 표기 ④ 엔진·셸 잔여 결함 수정(패널 '−'·토글 뒤 답변 오염, 텍스트 세션 60초 유휴 종료, 첫 턴 정렬이 전체 DB, 서수 이중 재해석, '대신' 보충 의미·설명, 추천 턴 무요청 상세, '노트:' 구조어, 모바일 코스 CSS 충돌(32dvh·답변 바)·'대화 보기'가 코스 해제, 근거 칩 해석 전 인덱스, alert→토스트, 영문 아이브로우, 랜드마크·탭 순서·칩 11px, 설명문 HTML 이스케이프, TSV m 단위) — 실행 수치는 §12 결과평가용 재측정으로 갱신. ⑤ 1차 근거(교사 인터뷰·계획서 서식·담당 부서 접촉)는 여전히 0건 — 제안 전 필수 과제 그대로.

1. 한 줄 정의

국가유산청 공식 데이터(설명문·사진·음성해설) 위에 얹는 "교사용 답사 코스 설계 + 대화형 필터" 모듈. 교사·답사객이 "경주향교 기준으로(또는 월성초등학교 기준으로) 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘"라고 말하면, 서버가 출발점 기준 정류장 순서를 만들어 지도(정류장 번호 마커·경로선)·코스 패널·답변이 같은 순서·건수·거리를 보여주고, 정렬·빼기·"그중 N번째"도 서버가 같은 객체로 해소하며, 공식 해설·음성해설을 그 자리에서 이어 주고, 편의시설 거리(공공데이터, '정보 없음' 구분)를 붙인 계획서용 표로 내보낸다. 새 앱이 아니라 지자체·교육청 사이트에 임베드되고, 현장 안내판 QR(?focus=유산ID)로 그 유산 화면에서 바로 시작한다.

2. 제안 대상(클라이언트)과 최종 사용자

  • 1차 계약 주체(파일럿): 경주시 — 활용사업·안내판·국가유산은 문화유산과, 관광 사이트 임베드는 관광컨벤션과, AI 연계는 경주AI&미디어센터(구 경주스마트미디어센터)·디지털정책과. 경주시는 2026-07-22 조례 개정안을 입법예고(7/228/4)해 명칭을 경주AI&미디어센터로 바꾸고 주요 사업에 **"AI 기반 문화·관광·도시서비스 개발 및 운영"**을 넣었다(경북매일·메트로 2026-07-22, 시의회 심의 후 확정 — 확정 여부는 제안 전 재확인). 수요처가 스스로 운영 주체가 되는 구조이므로 제안은 두 갈래: (a) 문화유산과·관광컨벤션과 파일럿(임베드·QR·계획서 표), (b) 센터가 운영 주체, 우리는 모듈·API 공급(연 운영비는 센터 예산, 딥파인 AI-XR 서비스에 교사 코스·편의시설 레이어를 API로 제공하는 협력 조건). AI 투자 근거: ChatGTS(2023, 국비 5억+시비 5억 — 토큰포스트 원문상 서라벌 메타버스(국토부 디지털트윈 시범)와 합산 사업비), 'AI 기반 현실확장형 가상융합 서비스'(202627, 주관 딥파인, 참여·수요처 경주시·센터, 2년 18억, 첨성대·동궁과 월지·황룡사지; 경북매일 2026-06-09·트위그24 2026-06-10). 계약 형태(지방계약법 시행령 §25①5): 1인 견적 소액수의 ≤2천만 원 → 파일럿 1,900만 원(VAT 포함, 산출표 §10과 동일 금액, 단일 범위). 활용사업은 2027년분 기선정(2026-09, 244건) → 변경 편입 타진, 정식 번들은 2028 사이클(2027-09 공모).
  • 2차: 교육 — 학교·구청·교육청 체험학습 사업. 2026-1학기부터 성취기준 연계·개인정보 처리 학습지원 SW는 교원 의견수렴→학운위 심의→학교장 확정(교육부 2025-12-29). 우리는 **학생 개인정보를 수집하지 않고 성취기준 콘텐츠를 포함하지 않는 '교사용 답사 계획 도구'**로 설계해 4단계 심의 비대상을 노리는 **교당 연 소액 구독(30만 원, 학교장터 S2B 등록 — 요건·수수료 확인 필요)**을 두되, 매출 라인이 아니라 지자체 파일럿의 성과 근거 채널이다(§10). 재원: 구청 교육경비보조금(동대문구 2026 교당 최대 500만 원 사례), 교육청 현장체험학습 지원사업(서울 2026 본예산 10.7억+추경 18억, 사전답사 차량 1.7억).
  • 3차: 국가유산청·국가유산진흥원 — 데이터·표준 파트너. 국가유산청은 202627년 총 30억의 다국어 AI 해설(4대궁·종묘)·46만 건 학습데이터·RAG DB를 직접 구축 중이라 '대화형 해설'을 외부 구매할 가능성은 낮다. 우리는 궁능 밖 지방 지정유산·향토유산·교사용 코스 공백을 맡고, Open-API 보급·조달청 혁신제품 시범구매 계획을 들어 실증 트랙과 방문 캠페인 거점(13코스 100거점) 무상 연계(MOU)로 접근한다. 관광공사 'AI 기반 지역관광 문제해결(역사문화형)' 과제(5천만1억)는 응모 경로.
  • 페르소나 A — 초등 5학년 담임 김수진(38, 경주 월성초): 사회 '우리 고장의 문화유산' 체험학습. 학운위 심의용 사전답사 계획서(장소·주소·관리자·편의시설·이동거리)를 내야 한다. v1이 답하는 것: "월성초등학교 기준으로 걸어서 30분 안에 갈 수 있는 유산으로 코스 짜줘"(전국 초·중·고 12,004곳 장소 사전, 동명 학교는 지도 중심 근접) → 정류장 번호 지도·패널·답변, 지정종목·시대·관리자·화장실/주차 거리('정보 없음')·구간/총 직선거리·계획서 표; "5학년 단원에 맞는 곳 골라줘 → 그중 두 번째는 어떻게 소개해?" → 나열의 두 번째를 열어 쉬운 요약으로 소개. 못 답하는 것(정직 안내): 입장료·단체 입장·휴관일·버스 주차 → "그 정보는 없어요. 관리자인 ○○에 문의해 주세요"(서버가 보충, '관리자 필드' 같은 자리표시자 금지).
  • 페르소나 B — 당일 답사객 박민호(52, 수원): 안내판 QR로 들어와 "근처에 뭐 있어?"(안내판 기준 직선 2km) → 공식 음성해설 → 영문 전환. (근거 약한 보조 페르소나.)

3. 고객 니즈와 근거

니즈근거이 모듈이 푸는 부분 (정직하게)
교사의 체험학습 기획·행정 부담초등교사노조 설문(2026-04, N=21,918) 추진 '부정' 96.2%; 부담 요소 법적 책임 50%·민원 37%·행정 12%(데일리안 2026-05-04). 전교조 2026 실태조사 체험학습 사실상 중단 7.2%(아시아경제 2026-05-04). 소규모·테마형 전환 지침(경기일보 2024-05-30)행정 12%의 '장소 조합·계획서 작성'. 심의 서류용 표(장소·종목·소재지·관리자·편의시설 거리·구간 거리·출발점 주석)를 대화 3턴 안에 뽑는다(실행: 코스 요청→정렬→빼기, 표 복사 1클릭). '10분 절감'은 가설 — 파일럿 교사 5명 관찰로 검증
공식 수요 근거국가유산청 「2024 국가유산교육 정기 실태조사」 학교 교육 부문 제언 "정보 플랫폼 개선"교사용 정보 플랫폼의 구체 형태
경주시: 관광 안내의 AI 전환ChatGTS(2023)·AI-XR(2026~27, 18억, 주관 딥파인) 투자, 경주AI&미디어센터 개편(2026-07)두 사업이 다루지 않는 교사·단체 답사 코스와 편의시설·계획서 출력 층을 센터가 운영할 모듈로 공급 — 담당 부서의 수요 발언은 아직 없음(가설)
지방 유산으로 방문 분산2025년 궁능 관람객 1,781만(+12.9%), 외국인 427만(24%)(헤럴드경제 2026-01-04)지자체 임베드 코스 모듈이 '궁 밖' 유산으로 유도

1차 근거 현황(정직): 교사 인터뷰·학운위 사전답사 계획서 서식 실물·담당 부서 접촉 메모는 5회차까지 0건이며 v6에서도 없다(문서로 만들 수 없는 항목을 지어내지 않는다). 제안 전 필수 과제(§11)로 두고, 그 전까지 표 열(순서·장소·종목·소재지·관리자·화장실/주차 거리·구간 거리)은 학교안전법 시행규칙상 현장체험학습 사전답사 항목(장소·이동 경로·안전시설·편의시설)에 맞춘 가설이다.

현재 대안과 한계

  • 국가유산청 공식 앱 '나만의 국가유산 해설사': 반경 검색·4개 국어 텍스트 해설·방문 스탬프. 코스·대화·음성·교사용 기능 없음, 2026-10-09 현재 스토어 404·웹 my.heritage.go.kr 축소 운영. 우리는 같은 공개 API 위의 보완 모듈.
  • 경주시 ChatGTS·AI-XR: 관광 챗봇과 위치 기반 XR 해설. 교사용 코스·편의시설·계획서 출력 없음 → 센터 운영 모듈/API 공급 대상.
  • 국가유산 방문 캠페인(13코스 100거점): 코스 설계·대화 없음 → '여권 거점' 태그 번들(라운드 2).
  • 국가유산포털(GIS)·네이버·카카오·교사의 ChatGPT+지도앱: 조건 교차·지시어·편의시설·표 출력·출발점 기준 코스가 한 흐름이 아니고, LLM 단독은 좌표·지정 정보를 지어낸다 — 우리는 공식 데이터만 근거로 답하고(회귀 품질 검사 §12) 표로 바로 나온다.

왜 대화+지도가 본질적으로 유리한가: 답사 질의는 조건 교차(종목×시대×유형×거리) → 지시어(그중/두 번째/여기서/세 번째 대신) → 해설 청취 → 표로 저장이 한 흐름이다. 폼은 조건을 하나씩, 해설은 다른 화면, 표는 손으로 옮겨야 한다.

4. 와우 포인트 (데모 첫 3분 — 1440×900, 실데이터 실행 결과)

초기 화면: 불국사 앞(35.790, 129.332) 줌 14, 중심 2km 거리순 15건(불국사박물관 소장 사리장엄구는 '박물관 소장' 배지). 거리 기준점은 지도 중심 십자(코스 모드에서는 출발점).

  1. [0:30] "지금 화면에서 국보만 남겨줘" → 지도는 움직이지 않고 마커만 줄며 화면 안 국보 6건(사리장엄구(박물관 소장)·석굴암 석굴·다보탑·삼층석탑·연화교 및 칠보교·청운교 및 백운교), 답변·카드 모두 '박물관 소장' 표기, 근거 칩 "화면 안에서 · 지정종목 국보". 답변의 번호는 화면 순번 하나로 정규화된다("1. (6) …" 같은 이중 표기는 서버가 "6. …"로). 모바일(390×844)은 5건.
  2. [1:30] "두 번째 거 해설 들려줘" → 두 번째(석굴암)의 상세 시트(사진 → 쉬운 요약(AI) → 설명문 → 속성 표 → 출처)가 열리며 공식 음성해설이 플레이어 하나로 재생(시트 상단 '한국어 듣기/영어 듣기' 버튼도 같은 플레이어), 마이크 자동 음소거, "그만"→정지. 모바일에서도 시트가 플레이어·입력창을 덮지 않는다.
  3. [2:30] "경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘" → 서버가 기준점을 경주향교로 고정하고 **가까운 10건(야외 기본값, 박물관 소장 2건 제외 고지)**을 코스로 조립해 결과 목록 자체를 걷는 순서로 재배열: 패널 "답사 코스 · 7곳 (10건) · 출발: 경주향교", 지도 마커 번호 = 정류장 번호(향교 경내 4건은 모두 '1'), 답변(실행 7(데스크톱 5·모바일 2)세션 동일): "출발 경주향교 → 1.경주향교 동무‧서무‧신삼문(+181m) → 2.경주 최부자댁(+79m) → 3.경주사마소(+249m) → 4.숭덕전(+904m) → 5.경주 월암종택(+876m) → 6.경주 석빙고(+1580m) → 7.동경관(+1737m) · 정류장 7곳(10건) · 총 직선거리 5.6km". 이어 "화장실 가까운 순으로" → 서버 문장: "가까운 공중화장실 순으로 보면 숭덕전 155m · 경주향교 명륜당 224m · 경주향교 대성전 224m · 경주향교 233m · 경주향교 동무‧서무‧신삼문 244m · 경주 최부자댁 316m · 경주 석빙고 452m · 동경관 512m · 경주사마소 565m · 경주 월암종택 797m 입니다. 걷는 순서(코스 패널·지도 번호)는 그대로예요." — 패널·마커·순서는 바뀌지 않는다. "석빙고는 빼줘" → 서버 문장: "경주 석빙고를 뺐어요. 정류장 6곳(9건) · 총 직선거리 5.2km · 출발 경주향교 → 1.… → 6.동경관(+2956m)"(기존 순서 유지, 패널 '−'도 같은 문장을 스레드에 남김). "세 번째 대신 더 가까운 걸로" → 모델을 거치지 않는 서버 지름길: 정류장 3(경주사마소)을 빼고 나머지 순서를 유지하며 '대신'의 의미를 말한다("경주사마소를 뺐어요. 반경 안에 대신 넣을 후보가 없어 빼기만 했어요. 정류장 5곳(8건) · 총 직선거리 5.2km · …" — 석빙고 제외 뒤 실행 기준; 후보가 있으면 "대신 다음으로 가까운 ○○(출발점에서 N m)이(가) 들어왔어요"). "지금 화면에 몇 개 보여?" → 패널 뒤를 뺀 유효 영역 기준(데스크톱 8/8, 모바일 9/9). "표 복사"·TSV·인쇄 — 순서·장소·종목·소재지·관리자('개인(비공개)')·화장실/주차 거리·구간 거리·출발점 주석. "주차장 가까운 데가 어디야?" → 하드 필터 없이 "경주사마소 56m(교촌입구), 동경관 123m, 숭덕전 177m … 직선거리, 1.5km 밖이면 정보 없음".

5. 니즈 선도 포인트 (제안 시 "이것도 되네?")

포인트v1 실물 (실행 확인)구매 주체·단가
계획서 표 출력코스 패널 표 복사(폴백)·TSV·인쇄 — 순서·장소·종목·소재지·관리자·화장실/주차 거리·구간 직선거리·출발점 주석; 답변·패널·지도·표가 같은 코스 객체교사(교당 연 30만 원) / 교육청 체험학습 지원사업
우리 학교 기준 코스전국 초·중·고 12,004곳 장소 사전 — "월성초등학교 기준으로 …" → "답사 코스 · 10곳 · 출발: 월성초등학교 · 전체 41건 중 가까운 10건"(직전에 화장실 순으로 정렬했어도 거리순 10건 — 5회차 결함 수정, 실행 5/5), 동명 학교(월성초 3곳)는 지도 중심 40km 안 1곳이면 즉시, 아니면 되묻기교사 구독
편의시설 거리 한눈에공중화장실 33,820·주차장 18,939 표준데이터 교차 — 거리값·'정보 없음', 고지 세션 1회, 범위 필터는 "300m 안만"처럼 말할 때만경주시(파일럿에 시 보유 목록 덮어쓰기)
학생 눈높이 설명(AI)쉬운 요약(summary_kid) — 상세 본문 첫 섹션(길이 무관), 답변에 '(AI 생성)' 라벨교사 구독
5학년 사회 단원 스타터 → "그중 두 번째"게시본 스타터 — 검색 후 화면 순번으로 3~5곳+쉬운 요약; "그중 두 번째는 아이들한테 어떻게 소개하면 좋아?"는 나열의 두 번째를 서버가 열고 소개(실행 3/3)교사 구독(성취기준 해석 리스크 §11)
안내판 QR 딥링크?focus=유산ID → 그 유산 중심(줌 15)·상세·"해설 들려줘" 재생, "근처에 뭐 있어?" = 직선 2km 12곳(박물관 소장 1건 제외 고지)국가유산청 안내판 정비(2026 전국 46억) 연계
답사 로그 = 성과 지표세션 대시보드 실물(assets/cms-dashboard.png, 최근 7일: 세션 93·참여 78·완료율 81.7%·오류율 14.0%(개발·평가 트래픽 포함, 파일럿 전 재측정)·총비용 $1.32·분당 비용 세션 평균 $0.0213·0건 검색 53)경주시 활용사업 성과 보고
여권 거점 100곳 태그 · 향토유산 4,301건 · 외국어 전면화 · 학생 활동지 인쇄라운드 2진흥원 MOU / 지자체 / 교육청

6. 대화 시나리오 (결과평가 기본 세트)

회귀 23턴(tools/eval/scenarios/heritage-guide.json)은 S1·S2·S3·S4·S5·S6·S7·S8·S9·S11·S14·S16·S17·S18을 덮고, S10·S12(손으로 지도 이동)·S13·S15(QR)는 브라우저 수동/드라이버 세션으로 확인한다(5회차 지적대로 '1:1'이 아님을 명시).

#대화기대 동작 (실행 결과)
S1"경주 근처 국보 보여줘" → "그중에서 석탑만" → "두 번째 거 설명해줘"region=경주·designation=국보(야외 기준, 박물관 소장 N건 제외 고지) → within_last_results·kind=탑 → open_detail(2)
S2"지금 화면에 몇 개 보여?" → "지금 화면에서 조선 시대 것만 남겨줘"[화면 상태]로 답(tool 없음) → within_visible·era=조선, 지도 고정
S2-1코스 모드에서 "지금 화면에 몇 개 보여?"코스 패널(실측 높이)·상세 시트가 가린 결과는 '화면 밖' — 데스크톱 9/9, 모바일 10/10
S3"여기 근처에 걸어서 15분 안에 갈 수 있는 사적 있어?"near_me·radius 1200·designation=사적, "직선 반경 1.2km" 1회(반경 표기는 tool 인자 그대로 — '2km'≠2,500m 오류 수정)
S4"경주향교 기준으로 … 코스 짜줘" → "화장실 가까운 순으로" → "세 번째 대신 더 가까운 걸로" / "석빙고는 빼줘"서버 기준점 고정·가까운 10건·거리순·목록=정류장 순서 → payload.course → 정렬 턴은 서버 문장(집합·순서·지도 고정) → '세 번째 대신'은 서버 지름길: 정류장 3 제외·나머지 순서 유지·서버 문장 → "석빙고는 빼줘"는 모델이 exclude_indexes로 호출, 답변은 서버 문장
S4-1결과가 요청 수 미만"조건에 맞는 곳은 M곳이에요. 반경을 넓히거나 조건을 빼면 …"
S5"주차장 가까운 데가 어디야?"명시 조건 전용: 범위 필터는 거리 표현이 없으면 서버가 떼고 거리값으로 답함(결과를 비우지 않음)
S6"그거 해설 들려줘" → "영어로 들려줘" → "그만"play_audio_guide(상세 동시) → lang=en(실존분만) → stop_audio
S7"울릉도에 국보 있어?"region+designation → 0건 → "조건에 맞는 곳은 없지만 지정종목=국보 조건 제외하면 N건 있어요. 볼까요?"(모델이 빠뜨리면 서버가 덧붙임)
S8"이거 누가 관리해?" → "전화번호는?"열린 상세의 관리자 즉답 → "그 정보는 없어요. 관리자인 ○○에 문의해 주세요"(서버 보충; 관리자 비공개면 소재지 지자체 문화유산 담당 부서)
S9"입장료 있어?" / "30명 단체로?" / "휴관일?"동일 — 열린 상세가 없으면 "어느 곳인지 말씀해 주시면 관리자를 안내할게요"
S10"시도지정 중에 조선 시대 것"era 필터, '시대추정' 고지는 세션 1회
S11"고성에 있는 문화재"동명 되묻기(지도 중심 40km 안이면 자동)
S12지도를 손으로 옮긴 뒤 "여기는 뭐 있어?"near_me → 뷰포트 중심 기준
S13"아까 본 석탑들 다시" → "그중 제일 북쪽"결과셋 재필터 → "북쪽 순 정렬은 지원하지 않아요 …"
S14"경주 박물관에 있는 국보도 보여줘"include_indoor=true, "박물관 소장 N건"
S15QR ?focus=<석굴암 ID> → "해설 들려줘" → "근처에 뭐 있어?"그 유산 중심·상세에서 시작 → play_audio → near_me 2km(박물관 소장 1건 제외 고지)
S16"고마워, 이제 끝낼게"end_session
S17(화장실 순 정렬 뒤) "월성초등학교 기준으로 걸어서 30분 안에 갈 수 있는 유산으로 코스 짜줘" → "두 번째 빼고"학교 장소 사전 → 거리순 10곳(정렬 비계승) → 서버 지름길로 정류장 2 제외·순서 유지
S18"5학년 사회 '우리 고장의 문화유산' 단원에 맞는 곳 골라줘" → "그중 두 번째는 아이들한테 어떻게 소개하면 좋아?"search 후 화면 순번으로 3~5곳·쉬운 요약(번호 정규화) → 나열의 두 번째를 서버가 열고(tool 결과에 해석 노트) 소개
  • 음성: S1·S6을 음성으로 1회(가짜 마이크).

7. 데이터 전략 (수집 완료본 기준, 스키마 v5)

  • 국가유산청 공개 API: 좌표 유효 10,361건 상세 전수 → 엔티티 10,217건 게시·임베딩 100%. 음성해설 실존 — 국문 99.8%, 영문 3,941(39%)(국보 97·보물 96·사적 93·명승 92·천연기념물 96·국가민속 96·국가등록 87·시도유형 6·시도기념물 12·시도민속 2·문화유산자료 7%; 경주 253/295=86%). 좌표 결측 5,552건(보물 40%)은 v1 제외·고지. 관리자 마스킹 개인명 1,767건 → '개인(비공개)'.
  • 유형(kind) 분류: 규칙 파서(코드·이름) + LLM 보정. 5회차 지적(진평왕릉 등 무덤류 46건이 '성곽·요새')은 규칙의 '진' 토큰 오매칭 — 무덤 규칙을 성곽보다 앞세우고 '진'은 단어 경계로 제한해 왕릉·릉 66건 전부 고분·왕릉으로 재분류. kind_unresolved(규칙·LLM 모두 미해소 → '기타') 1,338(기타 832)건은 §11에 고지.
  • 표준데이터: 공중화장실 33,820(2017~2020, 경주 39건·2019), 주차장 18,939(2026, 관광지 누락 가능) → 최근접 직선거리, 1.5km 밖 '정보 없음'. 경주 화장실 300m 안 52/295(17%), 정보 없음 104, 주차 정보 없음 131(주차장명은 표준데이터 원문 — '베이글' 같은 상호도 그대로). 전국초중등학교위치표준데이터 12,004곳(운영 중) → 지명 사전.
  • 시대(era): 규칙 파서 우선, 빈값은 설명문 LLM 분류 → era_estimated 4,764(47%; 조선 2,161/4,717). 배지·고지(세션 1회).
  • field_defs 38개: 표시 숨김(hidden) 10개(era_estimated·is_outdoor·has_audio_·_within_300m·era_text·subcategory·sigungu·image_license), 본문(body) 2개(summary_kid·description — 길이와 무관하게 상세 본문), 라벨 중복 제거('가까운 주차장 이름'). agent_config 엔진 규칙 데이터: search_defaults(야외), explicit_only, near_me_radius_m: 2000, result_notes.once, context_fields, places 11곳.
  • LLM 보강: 쉬운 요약(60~120자, 원문 밖 연도·인물 금지), 캐시로 재실행 비용 0, 실비용 ≈ $4.56(gpt-4.1-mini). 대화 모델 gpt-5-mini(reasoning minimal) — 회귀 23턴 p50 3.1s·p90 4.4s.
  • 지도 타일: OpenFreeMap(무료 CDN). 공공 임베드 SLA는 2차년 과업(PMTiles 자체 호스팅 또는 VWorld).
  • 프록시·라이선스: 이미지·음성 /api/proxy/media(화이트리스트·연결 재사용·Range·MIME 정규화). 출처 상시 표기. 공공누리 A/B만 표시, 공공데이터법 3조④, 파일럿 전 서면 확인.

8. 지도의 역할 — "화면" 규칙 (구현·실행 확인)

  • "지금 화면" = 지도 컨테이너 − 대화 패널(좌 432px) − 카드 띠(하단 150px) 또는 코스 패널(실측 높이+24px) − 상세 시트(우 452px). 클라이언트가 매 턴 visible_ids를 보고한다. 패딩을 먼저 반영한 뒤 fitBounds, 코스 패널 높이가 확정되면 한 번 더 맞춘다.
  • 지도를 움직이지 않는 동작: 화면 안/직전 결과 재필터, 코스 안 정렬, 선택·상세(보이는 영역 안이면). 움직이는 동작: 새 검색·지역 이동·코스 조립.
  • 기준점 고정(엔진 규칙): 발화(또는 q)의 등록 장소(places 11곳 + 학교 12,004곳)를 기준점으로 치환, 재필터 턴의 상위 지역 무시, 제외·정렬·'−'는 기준점·조건 유지, 동명 장소는 지도 중심 40km 근접.
  • 코스 모드(엔진 상태): 코스 발화 또는 course=true로 켜지고 재필터·정렬·제외 동안 유지, 비코스 새 검색이면 해제. 켜지면 **가까운 10건·거리순(직전 정렬 비계승)**으로 검색해 결과 목록을 정류장 순서로 재배열하고 payload.course(묶음·순서·구간·총거리)를 내린다 → 마커 번호·패널·답변·"N번째"가 모두 정류장 번호. 정렬은 같은 집합 안에서만(목록·마커·순서 고정, 답변은 서버 문장). 제외는 나머지 순서를 유지하고 새 후보만 뒤에 붙인다.
  • 지시어(엔진 규칙): "그중 N번째"는 직전 답변의 나열(화면 순번 목록)의 N번째로 치환(코스 모드는 정류장 N), "N번"은 화면 번호 그대로; "N번째 대신/빼고/말고"는 모델을 거치지 않는 제외 재검색. 답변의 목록 번호는 화면 순번 하나로 정규화.
  • 야외 우선·명시 조건 전용·근처 2km·고지 1회: v5와 같고, 야외 기준으로 빠진 박물관 소장 건수를 세어 고지한다.
  • 모바일 '화면': 가림 영역 = 상단 56 + 하단(대화 시트 50dvh + 카드 띠 110) / 코스 모드: 하단(입력 바 112 + 마지막 답변 바 54 + 코스 패널 실측 ≤32dvh).

9. UI/UX (구현된 화면 기준)

  • 톤·레이아웃: 한지 톤 종이(#fbf8f3)·단청 적색(#8b2e2e)·먹색(#1f1a17), Pretendard. 데스크톱 좌 400px 대화 패널 / 중앙 벡터 지도 / 하단 카드 띠(또는 코스 패널) / 우 상세 시트(열리면 하단 패널 폭이 줄어 가려지지 않음).
  • 번호 체계 하나: 비코스 모드 = 화면 순번(카드·마커·답변·"N번째"), 코스 모드 = 정류장 번호(마커·패널·답변·"N번째", 같은 경내는 같은 번호). 답변의 이중 표기("1. (6)", "2. 3.")는 서버가 화면 순번으로 정규화한다.
  • 상세 큐레이션(적용): 사진 → 쉬운 요약(AI 생성, 길이 무관 첫 섹션) → 설명문 → 속성 표(지정종목·유형·시대·분류·시도·지정연도·소유·관리자·소재지·가까운 공중화장실/주차장 거리·주차장 이름) → 사진 갤러리 → 출처. 내부 플래그·좌표 비표시.
  • 플레이어 통합: 시트 상단 '음성해설: 한국어 듣기/영어 듣기' → 같은 tool → 대화 패널 플레이어 하나. 모바일 상세는 하단 50dvh(플레이어·입력창)를 남긴다.
  • 코스 패널: 자동(서버 상태) → 지도 하단 · 정류장(묶음)·종목·소재지·관리자·화장실/주차 거리·구간/총 직선거리·"전체 41건 중 가까운 10건" · 행 '−'(서버 제외 경로, 스레드에 서버 문장 기록) · "코스로 보기" 토글도 서버 코스 · 표 복사·TSV·인쇄. 모바일 코스 모드: 대화 패널을 입력 바로 접되 **마지막 답변 한 줄 바(탭하면 대화 전체)**를 두고 패널 ≤32dvh — 지도·답변이 함께 보인다(5회차 '답변 미노출' 해소).
  • 근거 칩: 한글 라벨, 내부 오류 문자열 비노출(모델이 지어낸 파라미터는 서버가 무시).
  • 카드 띠: 새 결과마다 1번부터, 배지(박물관 소장·시대 추정·사진 제공 제한), 0건 빈 상태 카드.
  • QR·임베드: v5와 같음(?focus, iframe/스크립트 1줄, allow="clipboard-write; autoplay", KWCAG 2.2 점검 비용 포함; 되묻기 선택지 칩·마커 키보드 순회는 라운드 2).

10. 비즈니스 관점 (조달·가격 정합 — 5회차 지적 반영)

  • 포지셔닝: 공식 앱·경주시 챗봇/XR의 대체가 아니라 교사용 코스·대화형 필터·편의시설·계획서 출력 레이어(B2G 모듈). 센터 개편 시 센터 운영·우리 모듈/API 공급.

  • 1차 경로 — 파일럿 1,900만 원(VAT 포함) = 산출표 금액, 단일 범위(1인 견적 소액수의 ≤2천만, 추정가격 1,727만 원). 단가: 한국AI·소프트웨어산업협회 2026년 적용 SW기술자 평균임금(일평균 IT기획자 578,206원·응용SW개발자 378,250원·UI/UX 개발자 336,666원; 전체 414,762원, +4.7%, 2025-12 공표) × 제경비 110%·기술료 20%:

    항목인일단가(원/일)금액(원)
    IT기획(요구 정리·BI·검수 대응)2578,2061,156,412
    응용SW개발(임베드·QR 매핑·편의시설 덮어쓰기·대시보드·운영 인수)9378,2503,404,250
    UI/UX(접근성 점검·보완)3336,6661,009,998
    직접인건비 소계145,570,660
    제경비(110%)6,127,726
    기술료(20% × (인건비+제경비))2,339,677
    직접경비(접근성 외부 검수 165만 · 타일 자체 호스팅 초기 세팅 100만 · 교육·교통·인쇄 58.5만)3,234,664
    합계(VAT 별도)17,272,727
    VAT 포함19,000,000

    타일 자체 호스팅 운영과 접근성 인증마크 취득은 2차년 과업·운영비 항목. 확인 필요(제안 전): 소기업 확인서·소재지(지역업체 우선), 경주시 수의계약 운영기준, 활용사업 보조금의 SW 모듈 집행 가능 여부, 학교장터 S2B 등록 요건·수수료.

  • 연 운영 가격 1,000만 원(월 3,000세션 포함) vs 원가 ≈ 830만 원: 모델·서버 — 세션 평균 ≈ $0.065(텍스트 6턴 $0.024 + 음성 30%×2분 $0.041), 3,000세션 ≈ $195/월 ≈ 27만 원 + 서버·프록시 10만 원 → 연 ≈ 450만 원; 운영 인건비 — 분기 재수집 4×0.5일·장애 대응 5일·접근성 유지 3일 ≈ 10인일/년 ≈ 380만 원(응용SW 단가). 초과는 세션당 100원 종량(한계비용 ≈91원), 음성 세션 5분·일일 총량 캡. 실측(대시보드 7일, 개발·평가 트래픽): 분당 비용 세션 평균 $0.0213.

  • 3년·3시군 가정(만 원) — 같은 노임단가·같은 산식으로 재계산. 2·3호 구축은 8인일(데이터 재수집·임베드·QR 매핑·시 데이터 덮어쓰기·검수; 직접인건비 3.2M + 제경비 110% 3.5M + 기술료 20% 1.3M + 직접경비 2.0M = VAT 포함 ≈1,100만 원 — 6회차 지적대로 파일럿과 같은 산식):

    Y1(2027)Y2(2028)Y3(2029)
    경주 파일럿 → 운영1,9001,0001,000
    2호 구축(Y2, 1,100) → 운영(Y3)–1,1001,000
    3호 구축(Y3, 1,100) → 운영(Y4)––1,100
    교육 구독(10→20→30교×30)300600900
    매출2,2002,7004,000
    구축 직접인건비·직접경비(파일럿 14인일 557+323 / 2·3호 8인일 320+200)880520520
    모델·서버(450/시군·년)4509001,350
    운영 인건비(10인일/시군·년, 380)3807601,140
    원가1,7102,1803,010
    공헌이익(제경비·기술료 포함)490520990

    해석: 파일럿 3년은 진입·레퍼런스 확보 단계이며 이익은 4호 이후·센터 운영비 모델·교육청 단위에서 난다 — 단독 사업성으로 포장하지 않는다.

  • 앵커: 소규모 AI 안내 구축 2,750만 낙찰(2026, 민간 조합 발주·검색 요약 기준 △), 경기도 생성형 AI 챗봇 4.17억·운영 7.66억(2025, 광역 참고). 관광공사 역사문화형 과제(5천만~1억)는 응모 경로.

  • 왜 지금: 국가유산청 2026 예산 +8%·2027 예산안 +11.2%(활용 1,311억), 활용사업 379건·방문 캠페인 100거점, 학습지원 SW 선정 기준 시행, 공식 앱 축소, 경주 AI-XR(2026~27)·센터 개편(2026-07) 창.

  • 경쟁 방어: 국가유산청 30억 AI 해설은 궁능, 경주 XR은 위치 기반 해설 — 교사용 코스·편의시설·계획서·QR·대시보드는 겹치지 않는 층이며, 도메인 스키마·에이전트 규칙·테마·장소 사전이 전부 데이터라 2호 복제에 코드 변경이 없다.

11. 리스크와 대응

리스크대응
LLM 인자·답변의 비결정성(5회차: 정렬 턴 코스 형식 3/7, 지시어 오해소 6/7, 되묻기 1/3)모델 재량이 남는 턴을 서버가 답변까지 조립(정렬·제외·'N번째 대신'), 서수 지시어 서버 치환+해석 노트, 번호 정규화, 미지 파라미터 무시. 회귀 23턴이 금지 문구·정렬 턴 코스 토큰·나열 지시어(실제 열린 항목)·번호 정합을 검사. 잔여: 추천 목록 뒤 모델이 해석 노트를 무시하고 다른 항목을 설명하는 경우가 남을 수 있어 결과평가에서 5회 반복 통과율로 보고
경주시 "우리 챗봇·XR·센터가 있는데?"§2·§10 센터 운영/모듈 공급 시나리오, 딥파인 API 협력, 데모 첫 장면(화면 집계+코스 표)
1차 근거 부재(교사·담당자)제안 전 필수 과제: 교사 3~5명 인터뷰·계획서 서식 1건(교육지원청 체험학습 담당 경유, 2주), 문화유산과·디지털정책과 접촉 메모 1건 — 완료 전 제안서 제출 금지
편의시설 커버리지(경주 화장실 39건·2019, 관광지 주차장 누락, 주차장명 원문)'정보 없음'·세션 1회 고지, 범위 필터는 명시 시만, 파일럿에서 시 목록 덮어쓰기
유형·시대 자동 분류 한계(kind 미해소 1,338(기타 832)건, 시대 추정 47%)규칙 우선·LLM 보정·배지·1회 고지, 오분류 신고는 CMS에서 즉시 수정
공개 API 이용 조건·이미지 유형공공누리 A/B만 표시, 출처 상시, 파일럿 전 서면 확인
좌표 결측 35%(보물 40%)고지·건수 문구·라운드 2 지오코딩
관리자 개인명 마스킹·사유 종택'개인(비공개)' 표기, 문의는 소재지 지자체 문화유산 담당 부서
동명 학교·장소지도 중심 40km 근접 자동, 아니면 상위 지역 병기 되묻기
외부 타일 CDN·접근성 인증2차년 과업·운영비 항목
조달 분할 발주 소지파일럿 단일 범위 1,900만(VAT 포함, 산출표 일치) + 별도 항목은 2차년
교육 가정(10교)·성취기준 해석매출 라인이 아닌 성과 채널, 교육청 서면 확인
대시보드 오류율 14%개발·평가 트래픽(의도적 오류 시나리오 포함) — 파일럿 전 운영 트래픽만으로 재측정
음성 mp3 서버·이미지 서버 연결 거부 / API 변경프록시 재사용·재시도·MIME 정규화 / 원본 스냅샷·재수집 스크립트

12. 성공 기준 (결과평가 — 실행 결과 수치)

  • 회귀 24턴(result-evals/regression-plan-v6.json, v6.1 재측정): 24/24 통과 — 셸과 같은 초기 상태(불국사 2km 15건 등록) 뒤 첫 턴 "화장실 가까운 순으로"가 15건 안에서 정렬(전체 DB 아님), 검사: tool·인자·결과 수·액션 + 답변 품질(금지 문구 17종, 'N. 이름' 번호=화면 순번, 정렬 턴에 코스 토큰 없음, "그중 두 번째"가 실제로 연 항목=나열의 두 번째, 0건 완화 문구, 관리자 안내). p50 2.8s·p90 3.8s.
  • UI 조작 경로(v6.1, Playwright 프로브 /tmp/ui-probe.json): 패널 '−' 클릭 → 스레드에 "경주 최부자댁을 뺐어요 · 6곳(9건) · 5.6km" → 다음 턴 "몇 개 보여?" 9/9(답변 오염 없음) → "경주 근처 보물" 새 검색 정상 → '코스로 보기' 토글 → "코스로 봤어요 — 출발 경상북도 경주시 → …" → 90초 유휴 후 "몇 개 보여?" 정상(세션 유지); 첫 턴 정렬 15건 안·학교 코스 거리순·"두 번째 빼고" 9곳(보충 없음); 모바일 코스 패널 270px(32dvh)·푸터 보임·'대화 보기'→스레드 펼침(코스 유지)→'코스 패널로' 복귀; 5학년 2/2 "그중 두 번째" 칩 '상세 열기: 8번째/4번째'(해석 인덱스)·답변 일치. 콘솔 오류 0.
  • 와우 대본 브라우저 재현(1440×900, 7(데스크톱 5·모바일 2)세션 동일): "국보만" 6건·지도 고정·'박물관 소장'; "두 번째 거 해설" 상세+플레이어; "경주향교 기준 … 코스" → 패널 "7곳 (10건) · 출발: 경주향교", 마커=정류장 번호, 답변=패널 순서·구간·총 5.6km; "화장실 가까운 순" → 서버 문장(순서·마커 고정); "석빙고는 빼줘" → "경주 석빙고를 뺐어요 · 6곳(9건) · 5.2km"; "세 번째 대신 더 가까운 걸로" → 서버 지름길로 정류장 3 제외(2/7(데스크톱 5·모바일 2)); "몇 개 보여?" 9/9; 비코스 새 검색이면 코스 해제. 콘솔 오류 0·네트워크 실패 0.
  • 정렬 뒤 학교 코스: "화장실 가까운 순으로" 뒤 "월성초등학교 기준으로 …" → 거리순 10건(동경관 486m부터), 패널 "전체 41건 중 가까운 10건" — 5/5.
  • 5학년 흐름: "골라줘" → 화면 순번 목록 → "그중 두 번째" → 나열의 두 번째를 열고 소개 — 3/3.
  • 모바일(390×844): 코스 모드에서 지도·패널·마지막 답변 바가 함께 보이고 "몇 개 보여?" 10/10; 해설 재생 중 시트가 플레이어·입력창을 남김.
  • QR: 석굴암 ?focus → 상세·재생·"근처에 뭐 있어?" 2km 12곳(박물관 소장 1건 제외 고지)·"이거 입장료 있어?" → 관리자 불국사 안내.
  • 데이터: 게시 10,217·임베딩 100%·스키마 v5, 왕릉 66건 고분·왕릉, 관리자 '개인(비공개)' 1,767건, 학교 12,004곳.
  • 재현 명령(평가자): node tools/eval/browser_session.mjs --url http://192.168.0.55:9016/s/heritage-guide --out /tmp/<label> --messages '["지금 화면에서 국보만 남겨줘","두 번째 거 해설 들려줘","경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘","화장실 가까운 순으로","석빙고는 빼줘","세 번째 대신 더 가까운 걸로","지금 화면에 몇 개 보여?"]' (transcript.json의 courseHeader·courseRows로 패널 확인, --mobile로 모바일).

이전 기획 · v5 (2026-10-09) — 사전평가 4회차(75.0) 반영: "답변=지도=패널"을 서버가 보증, 답변 품질을 회귀가 검사, 조달 패키지·수요처 개편 반영

v5 (2026-10-09) — 사전평가 4회차(75.0) 반영: "답변=지도=패널"을 서버가 보증, 답변 품질을 회귀가 검사, 조달 패키지·수요처 개편 반영

4회차에서 세 평가자가 브라우저로 같은 장면을 반복 실행해 찾아낸 것은 **"모델 인자 층이 흔들리면 와우3가 흔들린다"**는 사실이었다(기준점 '경상북도 경주시' 5회 중 1~2회, 답변 '5곳 코스' vs 패널 7곳, 상세 열린 채 새 검색 시 빈 지도, 패널 뒤 마커를 '보인다'고 집계, 정렬하면 걷는 순서가 바뀜, 지침 누출·'관리자 필드'·0건 문구). v5는 이 층을 엔진이 결정적으로 보정하도록 바꿨다: ① 코스는 서버가 조립(정류장 묶음·출발점 최근접 순서·구간/총거리)해 payload.course로 내려주고, 셸 패널·경로선·모델 답변(notes)이 같은 한 객체를 읽는다 ② 발화에 등록 장소(경주향교·전국 학교 12,004곳)가 있으면 모델이 region을 '경주시'로 잡거나 q로 보내도 서버가 그 장소를 기준점으로 고정 ③ 코스 턴은 가까운 10건·거리순, 코스 안 정렬은 같은 집합 재배열(지도 고정) ④ 편의시설 범위 필터는 발화에 거리 표현이 있을 때만(명시 조건 전용), '근처'는 2km, 시대 추정·결측 고지는 세션 1회 ⑤ 0건 되묻기 문장·이중 번호·목록 번호(화면 순번)·지침 누출은 서버가 답변을 보정 ⑥ 셸: 코스 패널 높이를 실측해 가림 영역에 포함하고 패널 확정 후 재맞춤, 패딩을 먼저 반영하고 fitBounds(시트가 닫히며 애니메이션이 끊기던 버그), 코스 모드는 서버 상태를 따름(비코스 새 검색이면 해제), 상세 시트·플레이어 통합(네이티브 audio 제거, 시트 버튼 → 플레이어 하나), 상세 큐레이션(사진→쉬운 요약→설명→속성표→편의시설, 내부 플래그 숨김), 근거 칩 한글 라벨, 모바일 코스 모드는 입력창만 남기고 지도가 보이게, 모바일 상세는 플레이어·입력창을 남김, 카드 띠 1번부터 ⑦ 데이터: 관리자 마스킹 개인명 1,767건 → '개인(비공개)', 표시 전용 숨김 플래그 ⑧ 문서: 조달 패키지(1,900만 단일 범위, 노임단가 산출표), 경주AI&미디어센터 개편(2026-07) 반영, S8 부서명·S15/§9 정합, 세션 대시보드 실물 캡처, 1차 근거 수집 계획(제안 전 필수 과제로 명시). 아래 §4·§12 수치는 2026-10-09 최종 게시본(스키마 v4, 10,217건)에서 **브라우저 7세션(데스크톱 5+2)·모바일 2·QR 2 + 회귀 20턴(답변 품질 검사 포함)**을 다시 돌린 결과이며 로그는 result-evals/regression-plan-v5.json, 화면은 /tmp/p5-*(평가자 재현 명령은 §12).

1. 한 줄 정의

국가유산청 공식 데이터(설명문·사진·음성해설) 위에 얹는 "교사용 답사 코스 설계 + 대화형 필터" 모듈. 교사·답사객이 "경주향교 기준으로(또는 월성초등학교 기준으로) 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘"라고 말하면, 서버가 출발점 기준 정류장 순서를 만들어 지도(번호 마커·경로선)·코스 패널·답변이 같은 순서·건수·거리를 보여주고, 공식 해설·음성해설을 그 자리에서 이어 주며, 편의시설 거리(공공데이터, '정보 없음' 구분)를 붙인 계획서용 표로 내보낸다. 새 앱이 아니라 지자체·교육청 사이트에 임베드되고, 현장 안내판 QR(?focus=유산ID)로 그 유산 화면에서 바로 시작한다.

2. 제안 대상(클라이언트)과 최종 사용자

  • 1차 계약 주체(파일럿): 경주시 — 활용사업·안내판·국가유산은 문화유산과, 관광 사이트 임베드는 관광컨벤션과, AI 연계는 경주AI&미디어센터(구 경주스마트미디어센터)·디지털정책과. 경주시는 2026-07-22 '경주스마트미디어센터 설립 및 운영지원 조례' 개정안을 입법예고해 명칭을 경주AI&미디어센터로 바꾸고 주요 사업에 **"AI 기반 문화·관광·도시서비스 개발 및 운영"**을 넣었다(경북매일·메트로 2026-07-22, 시의회 심의 후 확정 — 확정 여부는 제안 전 재확인). 즉 수요처가 스스로 운영 주체가 되는 구조이므로 제안은 두 갈래로 둔다: (a) 문화유산과·관광컨벤션과 파일럿(임베드·QR·계획서 표), (b) 센터가 운영 주체, 우리는 모듈·API 공급(연 운영비는 센터 예산, 딥파인 AI-XR 서비스에는 교사 코스·편의시설 레이어를 API로 제공하는 협력 조건). 경주시 AI 투자 근거는 그대로 — ChatGTS(2023, 국비 5억+시비 5억), 'AI 기반 현실확장형 가상융합 서비스'(2026~27, 주관 딥파인, 참여·수요처 경주시·센터, 2년 18억, 첨성대·동궁과 월지·황룡사지; 경북매일 2026-06-09·트위그24 2026-06-10). 계약 형태(지방계약법 시행령 §25①5): 1인 견적 소액수의 ≤2천만 원 → 파일럿 1,900만 원(VAT 포함, 단일 범위 — §10 산출표). 활용사업은 2027년분 기선정(2026-09, 244건) → 변경 편입 타진, 정식 번들은 2028 사이클(2027-09 공모).
  • 2차: 교육 — 학교·구청·교육청 체험학습 사업. 2026-1학기부터 성취기준 연계·개인정보 처리 학습지원 SW는 교원 의견수렴→학운위 심의→학교장 확정(교육부 2025-12-29). 우리는 **학생 개인정보를 수집하지 않고 성취기준 콘텐츠를 포함하지 않는 '교사용 답사 계획 도구'**로 설계해 4단계 심의 비대상을 노리는 교당 연 소액 구독(30만 원, 학교장터 S2B 등록 — 등록 요건·수수료 확인 필요) 상품을 두되, 매출 라인이 아니라 지자체 파일럿의 성과 근거 채널이다(§10). 재원: 구청 교육경비보조금(동대문구 2026 교당 최대 500만 원 사례), 교육청 현장체험학습 지원사업(서울 2026 본예산 10.7억+추경 18억, 사전답사 차량 1.7억).
  • 3차: 국가유산청·국가유산진흥원 — 데이터·표준 파트너. 국가유산청은 202627년 총 30억의 다국어 AI 해설(4대궁·종묘)·46만 건 학습데이터·RAG DB를 직접 구축 중이라 '대화형 해설'을 외부 구매할 가능성은 낮다. 우리는 궁능 밖 지방 지정유산·향토유산·교사용 코스 공백을 맡고, Open-API 보급·조달청 혁신제품 시범구매 계획을 들어 실증 트랙과 방문 캠페인 거점(13코스 100거점) 무상 연계(MOU)로 접근한다. 한국관광공사 'AI 기반 지역관광 문제해결(역사문화형)' 과제(과제당 5천만1억)는 응모 경로.
  • 페르소나 A — 초등 5학년 담임 김수진(38, 경주 월성초): 사회 '우리 고장의 문화유산' 체험학습. 학운위 심의용 사전답사 계획서(장소·주소·관리자·편의시설·이동거리)를 내야 한다. v1이 답하는 것: "월성초등학교 기준으로 걸어서 30분 안에 갈 수 있는 유산으로 코스 짜줘"(전국 초·중·고 12,004곳이 장소 사전에 있음, 동명 학교는 지도 중심 근접으로 해소) → 지정종목·시대·유형·거리·관리자명·가까운 공중화장실/주차장 거리(공공데이터, 정보 없음 구분)·구간/총 직선거리·계획서 표. 못 답하는 것(정직 안내): 입장료·단체 입장·휴관일·버스 주차 → "그 정보는 없어요. 관리자인 ○○(그 항목의 관리자 값)에 문의해 주세요" — '관리자 필드' 같은 자리표시자는 금지(회귀 검사).
  • 페르소나 B — 당일 답사객 박민호(52, 수원): 안내판 QR로 들어와 "근처에 뭐 있어?"(안내판 기준 직선 2km) → 공식 음성해설 → 영문 전환. (근거 약한 보조 페르소나.)

3. 고객 니즈와 근거

니즈근거이 모듈이 푸는 부분 (정직하게)
교사의 체험학습 기획·행정 부담초등교사노조 설문(2026-04, N=21,918) 추진 '부정' 96.2%; 부담 요소 법적 책임 50%·민원 37%·행정 12%(데일리안 2026-05-04). 전교조 2026 실태조사 체험학습 사실상 중단 7.2%(아시아경제 2026-05-04). 소규모·테마형 전환 지침(경기일보 2024-05-30)행정 12%의 '장소 조합·계획서 작성'. 심의 서류용 표(장소·종목·소재지·관리자·편의시설 거리·구간 거리·출발점 주석)를 대화 3턴 안에 뽑는다(실행: 코스 요청→정렬→빼기 3턴, 표 복사 1클릭). '10분 절감'은 가설 — 파일럿 교사 5명 관찰로 검증
공식 수요 근거국가유산청 「2024 국가유산교육 정기 실태조사」 학교 교육 부문 제언 "정보 플랫폼 개선"교사용 정보 플랫폼의 구체 형태
경주시: 관광 안내의 AI 전환ChatGTS(2023)·AI-XR(2026~27, 18억, 주관 딥파인) 투자, 경주AI&미디어센터 개편(2026-07, 'AI 기반 문화·관광 서비스 개발·운영' 직접 사업화)두 사업이 다루지 않는 교사·단체 답사 코스와 편의시설·계획서 출력 층을 센터가 운영할 모듈로 공급 — 담당 부서의 수요 발언은 아직 없음(가설)
지방 유산으로 방문 분산2025년 궁능 관람객 1,781만(+12.9%), 외국인 427만(24%)(헤럴드경제 2026-01-04)지자체 임베드 코스 모듈이 '궁 밖' 유산으로 유도

1차 근거 현황(정직): 교사 인터뷰·학운위 사전답사 계획서 서식 실물·담당 부서 접촉 메모는 4회차까지 0건이며 이번 v5에서도 추가하지 않았다(문서로 만들 수 없는 항목을 지어내지 않는다). 제안 전 필수 과제로 §11에 일정·방법을 고정했다: 경주 관내 초등 교사 3~5명(교육지원청 체험학습 담당 경유) 30분 인터뷰 — 계획서 서식 1건 입수 → 표 열(현재: 순서·장소·종목·소재지·관리자·화장실/주차 거리·구간 거리)을 서식에 맞춰 조정; 문화유산과·디지털정책과 사전 접촉 메모 1건.

현재 대안과 한계

  • 국가유산청 공식 앱 '나만의 국가유산 해설사'(data/RESEARCH_v2_facts.md §1): 반경 검색·4개 국어 텍스트 해설·방문 스탬프. 코스·대화·음성·교사용 기능 없음, 2026-10-09 현재 스토어 404·웹 my.heritage.go.kr 축소 운영. 우리는 같은 공개 API 위의 보완 모듈.
  • 경주시 ChatGTS·AI-XR: 관광 챗봇과 위치 기반 XR 해설. 교사용 코스·편의시설·계획서 출력 없음 → 센터 운영 모듈/API 공급 대상.
  • 국가유산 방문 캠페인(13코스 100거점): 코스 설계·대화 없음 → '여권 거점' 태그 번들(라운드 2).
  • 국가유산포털(GIS)·네이버·카카오·교사의 ChatGPT+지도앱: 조건 교차·지시어·편의시설·표 출력·출발점 기준 코스가 한 흐름이 아니고, LLM 단독은 좌표·지정 정보를 지어낸다 — 우리는 공식 데이터만 근거로 답하고(환각 검사 §12) 표로 바로 나온다.

왜 대화+지도가 본질적으로 유리한가: 답사 질의는 조건 교차(종목×시대×유형×거리) → 지시어(그중/두 번째/여기서/세 번째 대신) → 해설 청취 → 표로 저장이 한 흐름이다. 폼은 조건을 하나씩, 해설은 다른 화면, 표는 손으로 옮겨야 한다.

4. 와우 포인트 (데모 첫 3분 — 1440×900, 실데이터 실행 결과: 같은 대본 7세션 모두 동일)

초기 화면: 불국사 앞(35.790, 129.332) 줌 14, 중심 2km 거리순 15건(4회차 지적대로 '13건' 정정 — 데이터·화면 모두 15; 불국사박물관 소장 사리장엄구는 '박물관 소장' 배지). 거리 기준점은 지도 중심 십자.

  1. [0:30] "지금 화면에서 국보만 남겨줘" → 지도는 움직이지 않고 마커만 줄며 화면 안 국보 6건(사리장엄구(박물관 소장)·석굴암 석굴·다보탑·삼층석탑·연화교 및 칠보교·청운교 및 백운교) — 7/7 세션 동일, 답변·카드 모두 '박물관 소장' 표기, 근거 칩 "화면 안에서 · 지정종목 국보"(내부 키 대신 한글 라벨). 모바일(390×844)은 화면이 좁아 5건.
  2. [1:30] "두 번째 거 해설 들려줘" → 두 번째(석굴암)의 상세 시트(사진 → 쉬운 요약(AI) → 설명문 → 지정종목·시대·관리자·소재지·편의시설 거리 표 → 출처)가 열리며 국가유산청 공식 음성해설이 플레이어 하나로 재생(시트 상단 '한국어 듣기/영어 듣기' 버튼도 같은 플레이어), 마이크 자동 음소거, "그만"→정지. 모바일에서도 시트가 플레이어·입력창을 덮지 않는다.
  3. [2:30] "경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘" → 서버가 기준점을 경주향교로 고정(모델이 region='경주'·q='경주향교'로 보내도 동일 — 4회차의 '경상북도 경주시' 이탈 재발 0/7)하고 **가까운 10건(야외 기본값)**을 코스로 조립: 패널 "답사 코스 · 7곳 (10건) · 출발: 경주향교", 실제 답변(7/7 세션 같은 순서·수치): "출발 경주향교 → 1. 경주향교 동무‧서무‧신삼문 외 3(+181m) → 2. 경주 최부자댁(+79m) → 3. 경주사마소(+249m) → 4. 숭덕전(+904m) → 5. 경주 월암종택(+876m) → 6. 경주 석빙고(+1580m) → 7. 동경관(+1737m) · 정류장 7곳(10건) · 총 직선거리 5.6km". 이어 "화장실 가까운 순으로" → 코스 안에서 재배열(지도 고정): "숭덕전 155m, 명륜당 224m, 대성전 224m, 경주향교 233m, 동무‧서무‧신삼문 244m, 최부자댁 316m, 석빙고 452m, 동경관 512m, 사마소 565m, 월암종택 797m" — 패널의 걷는 순서·구간·총거리는 그대로(정렬과 독립). "석빙고는 빼줘" → "정류장 6곳(9건) · 총 직선거리 5.2km"(7번째 제외, 기준점·조건 유지; 패널 '−'도 서버 경로로 같은 결과). "지금 화면에 몇 개 보여?" → "9개"(코스 패널 뒤는 '보이지 않음'으로 계산 — 데스크톱 9/9, 모바일 10/10). "표 복사"(http 폴백)·TSV·인쇄 — 순서·장소(마커 번호)·지정종목·소재지·관리자('개인(비공개)' 표기)·화장실/주차 거리·구간 거리·출발점 주석. "주차장 가까운 데가 어디야?" → 하드 필터를 걸지 않고(명시 조건 전용 규칙) "경주사마소 56m(교촌입구), 동경관 123m, 숭덕전 177m … 직선거리 기준, 1.5km 밖이면 정보 없음".

5. 니즈 선도 포인트 (제안 시 "이것도 되네?")

포인트v1 실물 (실행 확인)구매 주체·단가
계획서 표 출력코스 패널 표 복사(폴백)·TSV·인쇄 — 순서·장소(마커 번호)·종목·소재지·관리자·화장실/주차 거리·구간 직선거리·출발점 주석, 묶음 표기; 답변·패널·지도가 같은 코스 객체교사(교당 연 30만 원) / 교육청 체험학습 지원사업
우리 학교 기준 코스전국 초·중·고 12,004곳(전국초중등학교위치표준데이터, 운영 중) 장소 사전 — "월성초등학교 기준으로 …" → "답사 코스 · 10곳 · 출발: 월성초등학교 · 전체 41건 중 가까운 10건"(실행), 동명 학교(월성초 3곳)는 지도 중심 40km 안 1곳이면 즉시, 아니면 "창원시/경주시/김제시 중 어느 곳?" 되묻기교사 구독
편의시설 거리 한눈에공중화장실 33,820·주차장 18,939 표준데이터 교차 — 거리값·'정보 없음' 구분, 고지 1회(세션), 범위 필터는 "300m 안만"처럼 말할 때만경주시(파일럿에 시 보유 목록 덮어쓰기)
학생 눈높이 설명(AI)쉬운 요약(summary_kid) — 상세 본문 첫 섹션·답변에 '(AI 생성)' 라벨교사 구독
5학년 사회 단원 스타터게시본 스타터 4개 중 하나(v4의 '주차장' 스타터 교체) — 반드시 검색 후 결과 index로 번호를 붙여 3~5곳 + 쉬운 요약 한 줄(실행: "6. 경주 남고루 — 사적 … 쉬운 요약: …"), "그중 두 번째"는 그 나열의 두 번째를 화면 순번으로 호출교사 구독(성취기준 해석 리스크 §11)
안내판 QR 딥링크?focus=유산ID → 그 유산 중심(줌 15)·상세 열림·"해설 들려줘" 재생, "근처에 뭐 있어?" = 직선 2km 12곳(실행)국가유산청 안내판 정비(2026 전국 46억) 연계
답사 로그 = 성과 지표세션 대시보드 실물(assets/cms-dashboard.png, 2026-10-09 최근 7일: 세션 93·참여 78·완료율 81.7%·오류율 14.0%·총비용 $1.32·분당 비용 세션 평균 $0.0213·0건 검색 53) — 세션별 턴·tool·오류·비용·분당 비용·종료 방식경주시 활용사업 성과 보고
여권 거점 100곳 태그 · 향토유산 4,301건 · 외국어 전면화 · 학생 활동지 인쇄라운드 2진흥원 MOU / 지자체 / 교육청

6. 대화 시나리오 (결과평가 기본 세트 — 회귀 20턴과 1:1, tools/eval/scenarios/heritage-guide.json)

#대화기대 동작 (실행 결과)
S1"경주 근처 국보 보여줘" → "그중에서 석탑만" → "두 번째 거 설명해줘"region=경주·designation=국보 → within_last_results·kind=탑(좁히기도 반드시 tool — 직접 고르지 않음) → open_detail(2)
S2"지금 화면에 몇 개 보여?" → "지금 화면에서 조선 시대 것만 남겨줘"[화면 상태]로 답(tool 없음) → within_visible·era=조선, 지도 고정
S2-1코스 모드에서 "지금 화면에 몇 개 보여?"코스 패널(실측 높이)·상세 시트가 가린 결과는 '화면 밖' — 데스크톱 9/9, 모바일 10/10 일치
S3"여기 근처에 걸어서 15분 안에 갈 수 있는 사적 있어?"near_me·radius 1200·designation=사적, 답변에 "직선 반경" 1회
S4"경주향교 기준으로 … 코스 짜줘" → "화장실 가까운 순으로" → "세 번째 대신 더 가까운 걸로" / "석빙고는 빼줘"서버가 기준점 고정·가까운 10건·거리순 → payload.course(정류장·순서·구간·총거리) → 정렬은 코스 안에서(같은 집합, 지도 고정) → exclude_indexes 재검색은 기준점·조건 유지, notes에 "N번째(이름) 제외"가 적혀 답변이 그 이름을 말함
S4-1결과가 요청 수 미만"조건에 맞는 곳은 M곳이에요. 반경을 넓히거나 조건을 빼면 …"
S5"주차장 가까운 데가 어디야?"명시 조건 전용 규칙: nearest_parking_m_max 같은 범위 필터는 발화에 거리 표현이 없으면 서버가 떼고 거리값으로 답하게 함(결과를 0건으로 비우지 않음, 실행 확인)
S6"그거 해설 들려줘" → "영어로 들려줘" → "그만"play_audio_guide(상세 동시) → lang=en(실존분만) → stop_audio
S7"울릉도에 국보 있어?"region=울릉도·designation=국보 → 0건 → "조건에 맞는 곳은 없지만 지정종목=국보 조건 제외하면 N건 있어요. 볼까요?" — 모델이 빠뜨리면 서버가 같은 문장을 덧붙임(엔진 규칙)
S8"이거 누가 관리해?" → "전화번호는?"열린 상세의 관리자·소재지 즉답([화면 상태]에 '열린 상세: 이름(지정종목·시대·관리자·소재지·편의시설)') → "전화번호는 이 데이터에 없어요. 경주시 문화유산과나 관리자 ○○에 문의"
S9"입장료 있어?" / "30명 단체로?" / "휴관일?""그 정보는 없어요. 관리자인 ○○에 문의해 주세요"('관리자 필드' 금지 — 회귀 금지 문구)
S10"시도지정 중에 조선 시대 것"era 필터, '시대추정' 고지는 세션 1회(once)
S11"고성에 있는 문화재"동명 되묻기 "강원 고성/경남 고성?" (지도 중심 40km 안이면 자동)
S12지도를 손으로 옮긴 뒤 "여기는 뭐 있어?"near_me → 뷰포트 중심 기준(화면·답변 일치)
S13"아까 본 석탑들 다시" → "그중 제일 북쪽"결과셋 재필터 → "북쪽 순 정렬은 지원하지 않아요 …(화면 상태 근거)"
S14"경주 박물관에 있는 국보도 보여줘"include_indoor=true로 야외 기본값 해제, "박물관 소장 N건"
S15QR ?focus=<석굴암 ID> → "해설 들려줘" → "근처에 뭐 있어?"그 유산 중심·상세에서 시작 → play_audio → near_me 2km(도메인 기본 반경) — §9의 '화면 집계'와의 모순을 제거(4회차 지적)
S16"고마워, 이제 끝낼게"end_session
S17"월성초등학교 기준으로 걸어서 30분 안에 갈 수 있는 유산으로 코스 짜줘" → "화장실 가까운 순으로"학교 장소 사전 → 10곳 코스(전체 41건 중 가까운 10건) → 코스 안 정렬(집합 유지)
S18"5학년 사회 '우리 고장의 문화유산' 단원에 맞는 곳 골라줘" → "그중 두 번째는 아이들한테 어떻게 소개하면 좋아?"search 후 결과 index 번호로 3~5곳·쉬운 요약 → 번호가 화면 순번과 일치(서버 보정) → 그 항목 상세+소개
  • 음성: S1·S6을 음성으로 1회(가짜 마이크).

7. 데이터 전략 (수집 완료본 기준, 스키마 v4)

  • 국가유산청 공개 API: 좌표 유효 10,361건 상세 전수 → 엔티티 10,217건 게시·임베딩 100%. 음성해설 실존 검사 — 국문 99.8%, 영문 3,941(39%)(국보 97·보물 96·사적 93·명승 92·천연기념물 96·국가민속 96·국가등록 87·시도유형 6·시도기념물 12·시도민속 2·문화유산자료 7%; 경주 253/295=86%). 좌표 결측 5,552건(보물 40%)은 v1 제외·고지. 관리자 값의 마스킹 개인명 1,767건 → '개인(비공개)'(표·상세에 개인 식별 흔적을 싣지 않음).
  • 표준데이터: 공중화장실 33,820(기준일 2017~2020, 경주 39건·2019), 주차장 18,939(2026, 관광지 주차장 누락 가능) → 유산별 최근접 직선거리, 1.5km 밖 '정보 없음'. 경주 화장실 300m 안 52/295(17%), 정보 없음 104, 주차 정보 없음 131. 전국초중등학교위치표준데이터 12,004곳(운영 중, 2026-10) → 지명 사전(backend/seeds/schools.csv, 시군구 부모·'○○초' 별칭).
  • 시대(era): 규칙 파서 우선, 빈값은 설명문 LLM 분류 → era_estimated 4,764(47%; 조선 2,161/4,717). 배지·고지(세션 1회)·§6 S10.
  • field_defs 38개: 4회차 지적(상세가 '시대 추정: 아니오', '야외: 예' 덤프)에 따라 표시 숨김 플래그(hidden) 도입 — era_estimated·is_outdoor·has_audio_kr/en·toilet/parking_within_300m·era_text·subcategory·sigungu·image_license는 검색·고지 전용. agent_config에 엔진 규칙 데이터 추가: explicit_only(편의시설 범위 필터는 거리 표현이 있을 때만), near_me_radius_m: 2000, result_notes.once, context_fields(열린 상세 요약 항목).
  • LLM 보강: 쉬운 요약(60~120자, 원문 밖 연도·인물 금지), 캐시로 재실행 비용 0, 실비용 ≈ $4.56(gpt-4.1-mini). 대화 모델 gpt-5-mini(reasoning minimal) — 회귀 20턴 p50 3.1s·p90 4.1s.
  • 지도 타일: OpenFreeMap(무료 CDN). 공공 임베드 SLA 문제는 **2차년 과업(타일 자체 호스팅 PMTiles 경북 영역 또는 VWorld 전환)**으로 분리(§10).
  • 프록시·라이선스: 이미지·음성 /api/proxy/media(화이트리스트·연결 재사용·Range·MIME 정규화). 출처 상시 표기. 공공누리 A/B만 표시, 공공데이터법 3조④, 파일럿 전 서면 확인.

8. 지도의 역할 — "화면" 규칙 (구현·실행 확인)

  • "지금 화면" = 지도 컨테이너 − 대화 패널(좌 432px) − 카드 띠(하단 150px) 또는 코스 패널(실측 높이+24px) − 상세 시트(우 452px). 클라이언트가 매 턴 visible_ids를 보고한다. 카메라 패딩도 같은 값이며, 패딩을 먼저 반영한 뒤 fitBounds(시트가 닫히며 setPadding(jumpTo)이 애니메이션을 끊던 4회차 '빈 지도' 버그 수정)하고 코스 패널 높이가 확정되면 한 번 더 맞춘다.
  • 지도를 움직이지 않는 동작: 화면 안/직전 결과 재필터, 코스 안 정렬, 선택·상세(보이는 영역 안이면). 움직이는 동작: 새 검색·지역 이동·코스 조립.
  • 기준점 고정(엔진 규칙): ① 발화(또는 q)에 등록 장소(agent_config.places 11곳 + 학교 12,004곳)가 있으면 모델의 region이 그 장소를 포함하는 상위 지역이거나 없을 때 서버가 그 장소로 치환하고, '기준/출발/근처/주변'이 있으면 q에서 장소명을 뺀다 ② 재필터 턴에 모델이 상위 지역(경주시)을 덧붙이면 무시(기준점을 포함하는 지역은 후보를 좁히지 못함) ③ 제외 재검색·패널 '−'·정렬은 기준점·조건 유지 ④ 동명 장소는 지도 중심 40km 안 1곳이면 자동, 아니면 상위 지역을 붙여 되묻기.
  • 코스 모드(엔진 상태): 코스 발화(코스/동선/순서대로) 또는 tool 인자 course=true로 켜지고 재필터·정렬·제외 동안 유지, 비코스 새 검색이면 해제. 켜져 있으면 서버가 가까운 10건·거리순으로 검색하고 payload.course(정류장: 같은 경내 ≤60m 묶음, 대표=출발점 최근접 멤버, 최근접 이웃 순서, 구간·총 직선거리)를 내려 패널·경로선·답변(notes)이 같은 객체를 쓴다. 정렬은 같은 집합 안에서만(restrict).
  • 야외 우선(엔진 기본값): 새 검색에 is_outdoor=true, '유물·박물관·소장' 발화 시 include_indoor로 해제, 재필터 비적용. 명시 조건 전용: nearest__m_max·_within_300m는 발화에 거리 표현(숫자+m/km, 이내, 안에)이 있을 때만. '근처' = 2km(도메인 데이터).
  • 고지(notes 강제): 박물관 소장 N건(매번), 시대 추정 N건·편의시설 결측(세션 1회), 편의시설 필드로 걸렀거나 정렬하면 "공공데이터 기준·직선거리" 1회, 0건이면 완화 제안 문장(서버가 보충), 제외한 이름("7번째(경주 석빙고) 제외").
  • 모바일 '화면': 가림 영역 = 상단 56 + 하단(대화 시트 50dvh + 카드 띠 110) / 코스 모드: 하단(입력 바 112 + 코스 패널 실측 + 8). 건수 문구 "표시된 N건 중 화면 안 M건", ≤25건 클러스터 해제, 겹침 마커 원형 펼침, 거리 기준 십자.

9. UI/UX (구현된 화면 기준)

  • 톤·레이아웃: 한지 톤 종이(#fbf8f3)·단청 적색(#8b2e2e)·먹색(#1f1a17), Pretendard. 데스크톱 좌 400px 대화 패널 / 중앙 벡터 지도 / 하단 카드 띠(또는 코스 패널) / 우 상세 시트. 상세 시트가 열리면 카드 띠·코스 패널이 시트 폭만큼 줄어 가려지지 않는다.
  • 상세 큐레이션(적용): 사진 → 쉬운 요약(AI 생성) → 설명문 → 속성 표(지정종목·유형·시대·분류·시도·지정연도·소유·관리자('개인(비공개)')·소재지·가까운 공중화장실/주차장 거리+고지) → 사진 갤러리 → 출처. false 플래그·좌표·내부 코드는 표시하지 않는다(hidden).
  • 플레이어 통합: 네이티브 <audio> 제거. 시트 상단 '음성해설: 한국어 듣기 / 영어 듣기(실존분만)' 버튼 → 같은 play_audio_guide tool → 대화 패널 플레이어 하나(진행바·KR/EN·정지), 마이크 음소거 연동, 새 검색 시 닫힘. 모바일 상세는 하단 50dvh(플레이어·입력창)를 남긴다.
  • 코스 패널: 코스 요청 시 자동(서버 상태) → 지도 하단(입력창을 덮지 않음) · 정류장(묶음, 마커 번호 병기)·종목·소재지·관리자·화장실/주차 거리('정보 없음')·구간/총 직선거리·"전체 41건 중 가까운 10건" 표기 · 행 '−'(서버 제외 경로) · 표 복사(폴백)·TSV·인쇄. 모바일 코스 모드: 대화 패널을 입력 바(112px)로 접고 패널 최대 40dvh — 지도의 번호 마커·경로선이 보인다(4회차 '지도 0%' 해소).
  • 근거 칩: "검색: 경주향교 · 시대 조선 · 야외 기준", "정렬: 가까운 공중화장실 오름차순", "7번째 제외", "해설 재생: 2번째" — 내부 키(include_indoor, nearest_parking_m_max) 대신 스키마 라벨("가까운 주차장 300m 이하").
  • 카드 띠: 새 결과(재필터 포함)마다 1번부터 보이게 스크롤 리셋(4회차 '3번부터 보임' 해소). 배지(박물관 소장·시대 추정·사진 제공 제한), 0건 빈 상태 카드(완화 제안).
  • QR 플로우: ?focus=유산ID → 지도 렌더 전에 초기 뷰 확정 → 상세 열림·안내 메시지 → "해설 들려줘"·"근처에 뭐 있어?"(2km). 임베드: iframe/스크립트 1줄, allow="clipboard-write; autoplay", TSV·새 창 폴백, KWCAG 2.2 점검 비용 포함(마커 키보드 순회·움직임 줄이기는 라운드 2).
  • 되묻기 선택지 탭 칩은 라운드 2(텍스트 되묻기로 동작).

10. 비즈니스 관점 (조달·가격 정합 — 4회차 지적 반영)

  • 포지셔닝: 공식 앱·경주시 챗봇/XR의 대체가 아니라 교사용 코스·대화형 필터·편의시설·계획서 출력 레이어(B2G 모듈). 경주AI&미디어센터가 'AI 기반 문화·관광 서비스 운영' 주체가 되면 센터 운영·우리 모듈/API 공급(연 운영비는 센터 예산 항목, 딥파인 XR과는 API 협력)으로 전환 가능.

  • 1차 경로 — 파일럿 1,900만 원(VAT 포함), 단일 범위(1인 견적 소액수의 ≤2천만, 분할 발주 소지 제거). 산출 근거(한국AI·소프트웨어산업협회 2026년 적용 SW기술자 평균임금, 일평균: IT기획자 578,206원·응용SW개발자 378,250원·UI/UX 개발자 336,666원; 전체 평균 414,762원, 전년비 +4.7% — 공표 2025-12, 아이티데일리) × SW사업 대가산정 가이드의 제경비 110%·기술료 20%:

    항목인일단가(원/일)금액(원)
    IT기획(요구 정리·BI·검수 대응)2578,2061,156,412
    응용SW개발(임베드·QR 매핑·편의시설 덮어쓰기·대시보드·운영 인수)9378,2503,404,250
    UI/UX(접근성 점검·보완)3336,6661,009,998
    직접인건비 소계145,570,660
    제경비(110%)6,127,726
    기술료(20% × (인건비+제경비))2,339,677
    직접경비(접근성 검수 도구·외부 검수 150만, 타일 자체 호스팅 초기 세팅 100만, 교육·교통 40만)2,900,000
    합계(VAT 별도)16,938,063
    VAT 포함18,631,869 ≈ 1,900만 원

    타일 자체 호스팅 운영과 접근성 인증마크 취득은 2차년 과업·운영비 항목으로 분리(별도 300만~500만은 파일럿 범위에서 제외). 확인 필요(제안 전): 공급자 소기업 확인서·소재지(지역업체 우선), 경주시 수의계약 운영기준(1인 견적 상한 축소 여부), 활용사업 보조금의 SW 모듈 집행 가능 여부(국가유산청 집행 기준), 학교장터 S2B 등록 요건·수수료.

  • 2차 경로(교육): 교당 연 30만 원 구독, 개인정보 미수집·성취기준 콘텐츠 비포함 설계(4단계 심의 비대상 목표, '쉬운 요약·단원 스타터'는 교육청 서면 확인 전까지 교사 전용 계획 도구). 경주 관내 초·중 60교 중 1차년 10교(가정) → 연 300만 원 — 성과 근거 채널.

  • 연 운영 1,000만 원(월 3,000세션 포함): 세션당 텍스트 6턴 ≈ $0.024(gpt-5-mini, 캐시 적용) + 음성 이용 30%×2분×$0.069 ≈ $0.041 → 세션 평균 ≈ $0.065; 3,000세션 ≈ $195/월 ≈ 27만 원; 서버·프록시 10만 원/월; 분기 재수집 4회×반나절; 장애·접근성 유지 → 연 900만~1,200만. 초과는 세션당 100원 종량(한계비용 ≈91원), 음성 세션 5분·일일 총량 캡. 실측(대시보드 7일): 분당 비용 세션 평균 $0.0213(평가·개발 트래픽 포함).

  • 3년·3시군 가정(매출·원가, 만 원) — 2호부터 구축 원가 ≈40%(14인일 중 데이터·임베드·QR·덮어쓰기 ≈6인일만 반복):

    Y1(2027)Y2(2028)Y3(2029)
    경주 파일럿/운영1,9001,0001,000
    2호·3호 시군 구축(각 1,500, 2028 사이클 번들 500 포함)–1,5001,500
    2호·3호 운영(각 1,000)––2,000
    교육 구독(10→20→30교×30)300600900
    매출2,2003,1005,400
    원가(모델·서버 450/시군·년, 구축 인건비, 운영 0.3 FTE)1,6502,1003,000
    공헌이익5501,0002,400
  • 앵커: 소규모 지자체·민간 AI 안내 구축 2,750만 낙찰(2026), 경기도 생성형 AI 챗봇 4.17억·운영 7.66억(2025, 광역 참고). 관광공사 역사문화형 과제(5천만~1억)는 응모 경로.

  • 왜 지금: 국가유산청 2026 예산 +8%·2027 예산안 +11.2%(활용 1,311억), 활용사업 379건·방문 캠페인 100거점, 학습지원 SW 선정 기준 시행, 공식 앱 축소, 경주 AI-XR(2026~27)·센터 개편(2026-07) 창.

  • 경쟁 방어: 국가유산청 30억 AI 해설은 궁능, 경주 XR은 위치 기반 해설 — 교사용 코스·편의시설·계획서·QR·대시보드는 겹치지 않는 층이며, 도메인 스키마·에이전트 규칙·테마·장소 사전이 전부 데이터라 2호 복제에 코드 변경이 없다.

11. 리스크와 대응

리스크대응
LLM 인자·답변의 비결정성(4회차: 기준점 이탈 2/5, '5곳 코스', 지침 누출, 자리표시자)엔진 보정으로 결정화 — 기준점 고정·코스 서버 조립·명시 조건 전용·0건 문장 보충·이중 번호/목록 번호 정합·지침 누출 제거. 회귀 20턴이 금지 문구(규칙:/We complied/관리자 필드/tool 이름)·번호 정합·0건 문구를 검사. 잔여: 좁히기 요청을 tool 없이 답하는 턴이 간헐적으로 남음(지침 3 강화, 결과평가에서 5회 반복 통과율로 보고)
경주시 "우리 챗봇·XR·센터가 있는데?"§2·§10 센터 운영/모듈 공급 시나리오, 딥파인 API 협력, 데모 첫 장면(화면 집계+코스 표)
1차 근거 부재(교사·담당자)제안 전 필수 과제: 교사 3~5명 인터뷰·계획서 서식 1건(교육지원청 체험학습 담당 경유, 2주), 문화유산과·디지털정책과 접촉 메모 1건 — 완료 전 제안서 제출 금지
편의시설 커버리지(경주 화장실 39건·2019, 관광지 주차장 누락)'정보 없음' 구분·세션 1회 고지, 범위 필터는 명시 시만, 파일럿에서 시 목록 덮어쓰기
공개 API 이용 조건·이미지 유형공공누리 A/B만 표시, 출처 상시, 파일럿 전 서면 확인
좌표 결측 35%(보물 40%)고지·건수 문구·라운드 2 지오코딩
시대 빈값(47% 추정)규칙 파서 우선·LLM 분류·배지·1회 고지
관리자 개인명 마스킹·사유 종택'개인(비공개)' 표기, 문의는 소재지 지자체 문화유산 담당 부서로 안내
동명 학교·장소지도 중심 40km 근접 자동, 아니면 상위 지역 병기 되묻기(S17)
외부 타일 CDN·접근성 인증2차년 과업·운영비 항목
조달 분할 발주 소지파일럿 단일 범위 1,900만(VAT 포함) + 산출표, 별도 항목은 2차년
교육 가정(10교)·성취기준 해석매출 라인이 아닌 성과 채널, 교육청 서면 확인
음성 mp3 서버·이미지 서버 연결 거부프록시 재사용·재시도·MIME 정규화
API 변경·중단원본 스냅샷·재수집 스크립트

12. 성공 기준 (결과평가 — 실행 결과 수치)

  • 회귀 20턴(result-evals/regression-plan-v5.json): 20/20 통과 — 검사 항목: tool·인자·결과 수·액션 + 답변 품질(금지 문구 13종, 'N. 이름' 번호가 화면 순번/코스 정류장과 일치, 0건 완화 문구, '관리자 필드'·tool 이름 금지). p50 3.1s·p90 4.1s.
  • 와우 대본 브라우저 재현(1440×900) 7/7 세션 동일: "국보만" 6건·지도 고정·'박물관 소장'; "두 번째 거 해설" 상세+플레이어; "경주향교 기준 … 코스" → 패널 "7곳 (10건) · 출발: 경주향교", 답변이 패널 순서·구간·총 5.6km 그대로; "화장실 가까운 순" 코스 안 정렬(순서 유지); "석빙고는 빼줘" → 6곳(9건)·5.2km; "몇 개 보여?" 9/9; 비코스 새 검색("경주 근처 보물")이면 코스 해제·20건 표시·"20개" 일치. 콘솔 오류 0·네트워크 실패 0(7세션).
  • 모바일(390×844): 해설 재생 중 상세 시트가 플레이어·입력창을 남김, 코스 모드에서 지도·패널 동시, "몇 개 보여?" 10/10.
  • QR: 석굴암 ?focus → 상세·"해설 들려줘" 재생·"근처에 뭐 있어?" 2km 12곳; "월성초등학교 기준으로 …" → 10곳 코스("전체 41건 중 가까운 10건"), 코스 안 화장실 정렬 집합 유지.
  • 환각·정합: 답변의 이름·수치가 tool 결과/화면 상태에 존재(회귀 번호 정합), 편의시설 고지 1회, 제외한 이름 명시.
  • 데이터: 게시 10,217·임베딩 100%·스키마 v4(hidden 10개), 영문 토글 실존분만, 관리자 '개인(비공개)' 1,767건, 학교 12,004곳.
  • 재현 명령(평가자): node tools/eval/browser_session.mjs --url http://192.168.0.55:9016/s/heritage-guide --out /tmp/<label> --messages '["지금 화면에서 국보만 남겨줘","두 번째 거 해설 들려줘","경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘","화장실 가까운 순으로","석빙고는 빼줘","지금 화면에 몇 개 보여?"]' (transcript.json의 courseHeader·courseRows로 패널 확인, --mobile로 모바일).

이전 기획 · v4 (2026-10-09) — 사전평가 3회차(73.3) 반영: 코스 흐름을 엔진 규칙으로 고정, 실행 재검증, 사실 정정

v4 (2026-10-09) — 사전평가 3회차(73.3) 반영: 코스 흐름을 엔진 규칙으로 고정, 실행 재검증, 사실 정정

3회차에서 세 평가자가 실제 브라우저로 찾아낸 결함을 **엔진 규칙(결정적)**으로 고쳤다: ① '야외 우선'을 LLM 지침이 아니라 서버 기본 필터(search_defaults, 해제 플래그 include_indoor)로 ② '빼줘' 재검색과 패널 '−'가 기준점·필터를 잃던 버그(세션 동기화가 필터를 지움) → 기준점 고정·목록만 갱신 ③ 코스 순서는 정렬과 무관하게 출발점(사용자가 말한 장소) 기준 최근접 경로로 재배열, 패널에 "출발: 경주향교" ④ 고지 문구(박물관 소장·시대추정·공공데이터)는 tool 결과 notes로 강제 ⑤ 모바일 가림 영역을 실제(시트 50dvh+카드 띠)로 계산, QR은 지도 렌더 전에 초기 뷰 확정 ⑥ 해설 재생 시 상세 시트 동시 열림, 새 검색 시 플레이어 닫힘, 표 복사 폴백(execCommand)+TSV 다운로드, 관리자 열, 카드 배지(박물관 소장·시대 추정·사진 제공 제한), 0건 빈 상태 카드. 사실 정정: 경주시 부서명·AI-XR 주관사(딥파인)·근거 없는 '경북 15건·국비 40억' 삭제·영문 음성 실존율·시대 추정 비율. 아래 수치는 2026-10-09 최종 데이터(스키마 v3)로 실제 화면에서 다시 돌린 결과이며 회귀 18턴은 result-evals/regression-plan-v4.json.

1. 한 줄 정의

국가유산청 공식 데이터(설명문·사진·음성해설) 위에 얹는 "교사용 답사 코스 설계 + 대화형 필터" 모듈. 교사·답사객이 "경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘"라고 말하면, 지도가 지정종목·시대·유형·거리로 걸러 번호 마커·경로선으로 보여주고, 공식 해설·음성해설을 그 자리에서 이어 주며, 편의시설 거리(공공데이터, '정보 없음' 구분)를 붙인 계획서용 표로 내보낸다. 새 앱이 아니라 지자체·교육청 사이트에 임베드되고, 현장 안내판 QR(?focus=유산ID)로 그 유산 화면에서 바로 시작한다.

2. 제안 대상(클라이언트)과 최종 사용자

  • 1차 계약 주체(파일럿): 경주시 — 활용사업·안내판·국가유산은 문화유산과, 관광 사이트 임베드는 관광컨벤션과, AI 사업 연계는 경주스마트미디어센터·디지털정책과(2026 경주시 조직 기준 — 3회차 지적에 따라 '문화관광과'라는 부재 부서명을 정정). 경주시는 이미 AI에 투자 중이다 — 대화형 AI 관광챗봇 ChatGTS(2023, 국비 5억+시비 5억), 2026년 'AI 기반 현실확장형 가상융합 서비스 개발사업'(과기정통부·RAPA 공모, 주관 딥파인(민간), 참여·수요처 경주시·경주스마트미디어센터, 2년 총 18억, 첨성대·동궁과 월지·황룡사지에서 위치 기반 역사 이야기; 경북매일 2026-06-09·트위그24 2026-06-10). 따라서 제안은 "또 하나의 챗봇"이 아니라 **"교사용 코스·대화형 필터·편의시설 레이어를 시 사이트·XR 서비스에 API/임베드로 공급하는 보완 모듈"**이며, 딥파인은 잠재 경쟁·협력 양면이라 MOU 상대는 경주스마트미디어센터(수요처)로 둔다. 계약 형태(지방계약법 시행령 §25①5): 1인 견적 소액수의(2천만 원 이하) → 파일럿 1,900만 원, 확장 시 2천만 초과~1억은 소기업·소상공인 2인 견적 소액수의. '우리고장 국가유산 활용사업'은 **2027년분이 2026-09에 이미 선정(244건)**이므로 경주시 기선정 프로그램(2026 세계유산 활용 프로그램 — 경주·안동·영주·고령 합계 국비 6.2억 보도 기준, 경주시 몫은 담당 부서 확인 필요)에 변경 편입을 타진하고, 정식 번들은 **2028 사이클(2027-09 공모)**에 맞춘다.
  • 2차: 교육 — 학교·구청·교육청 체험학습 사업. 2026-1학기부터 성취기준 연계·개인정보 처리 학습지원 SW는 교원 의견수렴→학운위 심의→학교장 확정(교육부 2025-12-29). 우리는 **학생 개인정보를 수집하지 않고 성취기준 콘텐츠를 포함하지 않는 '교사용 답사 계획 도구'**로 설계해 4단계 심의 대상에서 벗어나는 교당 연 소액 구독(30만 원, 학교장터 S2B 등록) 상품을 둔다. 재원: 구청 교육경비보조금(동대문구 2026 교당 최대 500만 원 사례), 교육청 현장체험학습 지원사업(서울 2026 본예산 10.7억+추경 18억, 사전답사 차량 1.7억 — 교육지원청 대행).
  • 3차: 국가유산청·국가유산진흥원 — 데이터·표준 파트너. 국가유산청은 202627년 총 30억의 다국어 AI 해설(4대궁·종묘)·46만 건 학습데이터·RAG DB를 직접 구축 중이라 '대화형 해설'을 외부 구매할 가능성은 낮다. 우리는 궁능 밖 지방 지정유산·향토유산·교사용 코스 공백을 맡고, Open-API 보급·조달청 혁신제품 시범구매 계획을 들어 실증 트랙과 방문 캠페인 거점(13코스 100거점) 무상 연계(MOU)로 접근한다. 한국관광공사 'AI 기반 지역관광 문제해결(역사문화형)' 과제(과제당 5천만1억, 기업 응모, 2026)는 가격 앵커가 아니라 응모 경로로 쓴다.
  • 페르소나 A — 초등 5학년 담임 김수진(38, 경주 ○○초): 사회 '우리 고장의 문화유산' 체험학습. 학운위 심의용 사전답사 계획서(장소·주소·관리자·편의시설·이동거리)를 내야 한다. v1이 답하는 것: 지정종목·시대·유형·거리·관리자명·가까운 공중화장실/주차장 거리(공공데이터, 정보 없음 구분). 못 답하는 것(정직 안내): 입장료·단체 입장·휴관일·버스 주차 → "그 정보는 없어요, 관리자(○○)에 문의하세요".
  • 페르소나 B — 당일 답사객 박민호(52, 수원): 안내판 QR로 들어와 "여기 근처 국보 뭐 있어?" → 공식 음성해설 → 영문 전환. (근거 약한 보조 페르소나.)

3. 고객 니즈와 근거

니즈근거이 모듈이 푸는 부분 (정직하게)
교사의 체험학습 기획·행정 부담초등교사노조 설문(2026-04, N=21,918) 추진 '부정' 96.2%; 부담 요소 법적 책임 50%·민원 37%·행정 12%(데일리안 2026-05-04). 전교조 2026 실태조사 체험학습 사실상 중단 7.2%(아시아경제 2026-05-04). 소규모·테마형 전환 지침(경기일보 2024-05-30)행정 12%의 '장소 조합·계획서 작성'. 심의 서류용 표(장소·종목·소재지·관리자·편의시설 거리·구간 거리)를 10분 안에 뽑는다(목표 시간은 파일럿에서 교사 5명 관찰로 검증 예정 — 현재는 가설)
공식 수요 근거국가유산청 「2024 국가유산교육 정기 실태조사」 학교 교육 부문 제언 "정보 플랫폼 개선"교사용 정보 플랫폼의 구체 형태
경주시: 관광 안내의 AI 전환ChatGTS(2023)·AI-XR(2026~27, 18억, 주관 딥파인) 투자, 세계유산 활용 프로그램 기선정두 사업이 다루지 않는 교사·단체 답사 코스와 편의시설·계획서 출력 층 공급 — 담당 부서의 수요 발언은 아직 없음(파일럿 제안 미팅에서 확인, 가설)
지방 유산으로 방문 분산2025년 궁능 관람객 1,781만(+12.9%), 외국인 427만(24%)(헤럴드경제 2026-01-04)지자체 임베드 코스 모듈이 '궁 밖' 유산으로 유도

현재 대안과 한계

  • 국가유산청 공식 앱 '나만의 국가유산 해설사'(data/RESEARCH_v2_facts.md §1): 반경 20m~5km 검색, 4개 국어 텍스트 해설, 사진·영상, 방문인증 스탬프. 코스·대화·음성(오디오)·교사용 기능은 소개에 없음. 앱스토어 평점 2.7/5(20개, 캐시 — 확정 수치 아님), 2026-10-09 현재 앱스토어·플레이스토어 404, 웹 my.heritage.go.kr로 축소 운영. → 조건 교차·지시어 멀티턴·코스·계획서·임베드 없음. 우리는 같은 공개 API 위의 보완 모듈.
  • 경주시 ChatGTS·AI-XR 가상융합 서비스: 관광 챗봇과 위치 기반 XR 해설(첨성대·동궁과 월지·황룡사지). 교사용 코스·편의시설·계획서 출력 없음 → API/임베드 공급 + 스마트미디어센터 MOU 대상.
  • 국가유산 방문 캠페인(종이 여권+앱 스탬프, 2026년 13코스 100거점): 코스 설계·대화 없음 → '여권 거점' 태그 번들 대상(라운드 2).
  • 국가유산포털(지도검색·GIS): 종목·시도 조건 검색은 되지만 대화·지시어·편의시설·표 출력 없음. 네이버·카카오: POI 검색, 지정종목·시대 레이어 없음. 교사의 ChatGPT+지도앱 조합: 좌표·지정 정보가 틀리거나 지어내고, 표·지도·해설이 한 흐름이 아니다 — 우리는 공식 데이터만 근거로 답하고(환각 0 규칙) 표로 바로 나온다.

왜 대화+지도가 본질적으로 유리한가: 답사 질의는 조건 교차(종목×시대×유형×거리) → 지시어(그중/두 번째/여기서/세 번째 대신) → 해설 청취 → 표로 저장이 한 흐름이다. 폼은 조건을 하나씩, 해설은 다른 화면, 표는 손으로 옮겨야 한다.

4. 와우 포인트 (데모 첫 3분 — 1440×900, 실데이터 실행 결과)

초기 화면: 불국사 앞(35.790, 129.332) 줌 14, 중심 2km 거리순 13건(유물 포함 — 불국사박물관 소장 사리장엄구는 '박물관 소장' 표기). 거리 기준점은 지도 중심 십자.

  1. [0:30] "지금 화면에서 국보만 남겨줘" → 지도는 움직이지 않고 마커만 줄며, 답변은 "화면에 보이는 국보 6곳 — 불국사 삼층석탑 사리장엄구(박물관 소장), 경주 석굴암 석굴, 경주 불국사 다보탑, 경주 불국사 삼층석탑, 경주 불국사 연화교 및 칠보교, 경주 불국사 청운교 및 백운교"(실행 2회 모두 같은 6건·'박물관 소장' 고지, 문장 표현은 턴마다 다름). 카드에도 '박물관 소장' 배지. 근거 칩 "화면 안에서 · designation=국보". (모바일 390×844에서는 화면이 좁아 5곳 — 뷰포트별 '화면' 정의 그대로.) 야외 우선 기본값은 새 검색에만 서버가 적용하고 화면 안 재필터에는 적용하지 않는다(§8).
  2. [1:30] "두 번째 거 해설 들려줘" → 두 번째(경주 석굴암 석굴)의 상세 시트(사진·설명문·쉬운 요약(AI 생성) 라벨·관리자·편의시설 거리·출처)가 열리며 국가유산청 공식 음성해설이 지도 위에서 재생(실행 결과 detail=true 확인), 마이크 자동 음소거, 플레이어 KR/EN 토글(영문은 실존 검사 통과분만), "그만"→정지, 새 검색이 오면 플레이어 닫힘. 공식 앱에도 텍스트 해설은 있다 — 차별점은 '두 번째'라는 지시어 한 마디와 화면·대화·재생이 한 흐름.
  3. [2:30] "경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘" → 실행 결과 10곳(야외 기본값 적용 — 박물관 소장 '삼안총'·고문서는 제외): 경주향교 동무‧서무‧신삼문·경주향교·명륜당·대성전, 경주 최부자댁, 경주사마소, 경주 석빙고, 숭덕전, 경주 월암종택, 동경관. 코스 요청이면 코스 패널·경로선이 자동으로 열리고(입력창을 가리지 않는 지도 하단 자리) 같은 경내(≤60m)는 한 정류장으로 묶여 "경주향교 동무‧서무‧신삼문 외 3(경주향교·명륜당·대성전)"로, 순서는 출발점 경주향교 기준 최근접 경로(패널 "출발: 경주향교", 총 직선거리는 그 기준)로 재배열된다. 이어 "화장실 가까운 순으로" → 실제 답변: "1. 숭덕전(155m), 2. 경주향교 명륜당(224m), 3. 대성전(224m), 4. 경주향교(233m), 5. 동무‧서무‧신삼문(244m), 6. 최부자댁(316m), 7. 석빙고(452m), 8. 동경관(512m), 9. 사마소(565m), 10. 월암종택(797m). 4곳은 시대가 설명문 기반 AI 추정" — 목록 정렬은 바뀌어도 코스 순서(걷는 순서)는 출발점 기준을 유지한다. "석빙고는 빼줘" → "석빙고를 뺀 조선 시대 유적 9곳"(7번째 제외, 기준점·조건 유지, 번호 재부여; 패널 '−'도 같은 결과·세션 필터 유지). "표 복사"(탭 구분, http에서도 폴백 복사·TSV 다운로드)·"인쇄" — 표에 순서·장소(마커 번호)·지정종목·소재지·관리자·화장실/주차 거리·구간 거리·출발점 주석. 화장실·주차는 하드 필터가 아니라 거리 열과 정렬로 다루고, "300m 안만"처럼 명시할 때만 필터한다. "주차장 가까운 데가 어디야?" → 값이 있는 항목만 거리로 답하고 전부 없으면 "표준데이터에 주차장 정보가 없어요(관광지 주차장 누락 가능) — 현장 확인 필요".

5. 니즈 선도 포인트 (제안 시 "이것도 되네?")

포인트v1 실물구매 주체·단가
계획서 표 출력코스 패널 표 복사(폴백 포함)·TSV·인쇄(순서·장소(마커 번호)·종목·소재지·관리자·화장실/주차 거리·구간 직선거리·출발점 주석, 묶음 표기)교사(교당 연 30만 원 구독) / 교육청 체험학습 지원사업
편의시설 거리 한눈에공중화장실 33,820·주차장 18,939 표준데이터 교차 — 거리값·'정보 없음' 구분, 커버리지 고지경주시(파일럿에 시 보유 관광지 주차장·화장실 목록 덮어쓰기 포함)
학생 눈높이 설명(AI)쉬운 요약(summary_kid) — 카드·상세·답변에 '(AI 생성)' 라벨교사 구독
안내판 QR 딥링크?focus=유산ID로 그 유산 중심(줌 15)·상세 열림·안내 메시지에서 시작(실행 확인: 석굴암 QR → 석굴암 중심, "해설 들려줘" 재생)국가유산청 안내판 정비(2026 전국 46억·1,600개 — 경주시 배정분은 확인 필요) 연계
답사 로그 = 성과 지표세션 대시보드(0건 질문·선택 유산·비용)경주시 활용사업 성과 보고
5학년 사회 단원 스타터"5학년 사회 '우리 고장의 문화유산' 단원에 맞는 곳 골라줘" 스타터 — 야외 유산 중 성곽·고분·서원·향교·사찰·탑 우선, 아이 눈높이 한 줄 소개교사 구독(성취기준 콘텐츠로 해석될 여지는 교육청 서면 확인 §11)
여권 거점 100곳 태그 · 향토유산 4,301건 · 외국어 전면화 · 학교 좌표 · 학생 활동지 인쇄라운드 2진흥원 MOU / 지자체 / 교육청

6. 대화 시나리오 (결과평가 기본 세트 — 모두 구현된 tool로 기술)

#대화기대 동작
S1"경주 근처 국보 보여줘" → "그중에서 석탑만" → "두 번째 거 설명해줘"region=경주·designation=국보 → within_last_results·kind=탑 → open_detail(2)
S2"지금 화면에 보물이 몇 개야?" → "그중 조선 시대 것만 남겨"[화면 상태]로 "표시된 N건 중 화면 안 M건" 답(tool 없음) → within_visible·era=조선, 지도 고정
S2-1"두 번째 설명해줘" 뒤 "지금 화면에 몇 개 보여?"선택·상세 열기는 지도를 움직이지 않지만(보이는 영역 안이면 고정) 상세 시트(우 436px)가 가린 결과는 '화면 밖'이 되므로 개수가 줄 수 있다 — 답변은 그 시점의 유효 영역 기준(정직)
S3"여기 근처에 걸어서 15분 안에 갈 수 있는 사적 있어?" → "가까운 순으로"near_me(region 금지)·radius 1200·designation=사적 → sort distance, "직선거리 기준"
S4"경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘" → "화장실 가까운 순으로" → "석빙고는 빼줘" / "세 번째 대신 더 가까운 걸로"region=경주향교(커스텀 장소)·era=조선(+서버 기본 is_outdoor) → 코스 패널·경로선 자동, 출발점=경주향교 → sort_results(nearest_toilet_m) → exclude_indexes 재검색은 기준점·조건 유지(near_me/region 덧붙여도 무시), 번호 재부여, 패널 '−'도 동일
S4-1코스 N곳 요청에 결과가 N 미만"조건에 맞는 곳은 M곳이에요. 반경을 넓히거나 조건을 빼면 더 찾을 수 있어요" 완화 제안
S5"주차장 가까운 데가 어디야?"하드 필터 없이 값이 있는 항목만 거리로(tool 결과 notes가 결측 건수를 알림); 전부 없으면 "표준데이터에 주차장 정보가 없어요(관광지 주차장 누락 가능) — 현장 확인 필요". 초기 불국사 화면(15건 전부 결측)에서 순위를 지어내지 않는지 결과평가에서 검증
S6"천연기념물 중 나무만" → "거기 음성해설 틀어줘" → "영어로" → "그만"designation·kind=나무·숲 → play_audio_guide → lang=en → stop_audio(재생 중이므로)
S7"울릉도에 국보 있어?"region=울릉군 → 0건 → zero_result_suggestions의 label·count를 그대로 써서 "지정종목=국보 조건 제외하면 N건 있어요. 볼까요?"(막연한 "다른 조건으로?" 금지)
S8"이거 누가 관리해?" → "전화번호는?"관리자·소재지 즉답 → "전화번호는 이 데이터에 없어요. 경주시 문화관광과나 관리자 ○○에 문의"
S9"입장료 있어?" / "30명 단체로 갈 수 있어?" / "휴관일 언제야?"데이터 없음을 정직하게 + 관리자 안내(환각 0)
S10"시도지정 중에 조선 시대 것"era 필터, '시대추정' 태그 항목은 답변에 "시대는 설명문 기준 추정" 1회
S11"고성에 있는 문화재"동명 되묻기: "강원 고성인가요, 경남 고성인가요?"
S12지도를 손으로 포항 쪽으로 옮긴 뒤 "여기는 뭐 있어?"near_me → 뷰포트 중심 기준(화면·답변 일치)
S13"아까 본 석탑들 다시" → "그중 제일 북쪽"결과셋 재필터 → "북쪽 순 정렬은 지원하지 않아요. 가까운 순·이름순은 가능하고, 지도에서 위쪽 것은 ○○이에요(화면 상태 근거)"
S14"박물관에 있는 국보도 보여줘"include_indoor=true로 서버 기본값 해제, 답변·카드에 "박물관 소장 N건" 명시
S15QR: /s/heritage-guide?focus=<석굴암 ID> 진입 → "해설 들려줘" → "근처에 뭐 있어?"그 유산 중심·상세 열림으로 시작 → play_audio → near_me
S16"고마워, 이제 끝낼게"end_session
  • 음성: S1·S6을 음성으로 1회(가짜 마이크 — 연결·인사·tool·해설 재생 중 음소거·정지).

7. 데이터 전략 (수집 완료본 기준)

  • 국가유산청 공개 API: 목록 15,913건 → 좌표 유효 10,361건 상세 전수 수집 완료(상세 10361행 중 오류·누락 8건 재시도 후 엔티티 10217건 빌드, 2026-10-09). 설명문 중앙값 431자, 100자 미만 155건(쉬운 요약 생성 제외·목록엔 포함). 이미지(공공누리 A/B만 표시, D 미표시). 음성해설 실존 검사(HEAD, 2026-10-09) 결과 — 국문 10,195/10,217(99.8%), 영문 3,941/10,217(39%): 국보 97%·보물 96%·사적 93%·명승 92%·천연기념물 96%·국가민속 96%·국가등록 87%·시도유형 6%·시도기념물 12%·시도민속 2%·문화유산자료 7%(API가 URL은 주지만 파일이 없는 경우가 많아 has_audio_en은 실존 기준으로 재계산, 경주 253/295=86%). 플레이어 EN 토글·'영문해설' 태그는 실존분에만. 좌표 결측 5,552건(보물 40%)은 v1 제외 — 첫 메시지·정보 아이콘에 고지, 건수 문구는 항상 "표시된 N건 중 화면 안 M건".
  • 표준데이터: 공중화장실 33,820건(좌표 27,028; 기준일 전수 2017~2020, 경주시 39건·2019-09-21), 주차장 18,939건(좌표 18,174; 2026; 관광지 주차장 누락 — 불국사·석굴암 최근접 5km). 처리: 유산별 최근접 거리(직선) 계산, 1.5km 밖이면 '정보 없음'(None) — '없음'과 구분. 경주 지정유산 기준 화장실 300m 안 ○ 52/295건(17%), 정보 없음 104건(주차장 정보 없음 131건). 화면·표·답변에 "공공데이터 기준, 현장 확인 필요"를 고지하고, 파일럿에서 경주시 보유 관광지 주차장·화장실 목록으로 덮어쓰기(계약 범위).
  • 파이프라인: fetch_khs.py(재시도 모드 포함) → fetch_std_data.py → build_domain.py --enrich(규칙+LLM, 캐시) → seed_domain.py. 원본은 git 제외, data/SOURCES.md에 출처·일시·라이선스.
  • 시대(era): 국가유산청 표기 규칙(왕조·왕명·연도·세기 파서) 우선, 빈값은 설명문 기반 LLM 분류 → era_estimated 4,764/10,217(47%; 조선 2,161/4,717 — 시도지정·문화유산자료에 집중, 자연유산은 추정하지 않음). 카드 배지 '시대 추정'·답변 고지(notes 강제)·§12 S10으로 드러낸다. 교사가 '조선 시대'를 물으면 절반 가까이가 AI 분류라는 점을 제안서에 명시.
  • field_defs(38개, 구현과 1:1): designation·kind(18종, 자연유산은 이름·설명 규칙, 유물·기록유산은 유형 코드만으로 — 사리장엄구='공예')·era(8종)+era_estimated('시대추정' 태그)·category·sido·designated_year·is_outdoor·has_audio_kr/en·audio_kr/en(audio)·toilet/parking_within_300m·nearest_toilet_m/nearest_parking_m(number, note "직선거리, 1.5km 밖이면 정보 없음")·nearest_parking_name·image/image_license/images(gallery)·description(embed)·summary_kid(embed, note "AI 생성")·era_text·subcategory·address·manager·quantity·name_hanja·location(geo)·derived 태그(국가지정/야외/해설있음/영문해설/화장실근처/주차가능/시대추정).
  • LLM 보강: 입력은 설명문+유형코드+시대 원문만, 출력은 쉬운 요약(60~120자, 원문에 없는 연도·인물 금지)·era·kind JSON, 캐시로 재실행 비용 0. 실비용 ≈ $4.56(7,600,106 토큰, gpt-4.1-mini). 시대 값은 국가유산청 표기를 따르되(사찰 건물은 창건 시대로 적힌 경우가 있음) 설명문의 연도가 우선임을 지식에 명시.
  • 지도 타일: OpenFreeMap(무료 CDN) — 공공 사이트 임베드 시 SLA·외부 CDN 의존이 문제이므로 파일럿 계약에 타일 자체 호스팅(PMTiles, 경북 영역) 또는 국토부 바로e맵/VWorld 전환 항목을 포함(비용 §10).
  • 프록시·라이선스: 이미지(khs.go.kr)·음성(116.67.83.213)은 /api/proxy/media(호스트 화이트리스트·연결 재사용·Range·MIME 정규화). 화면 하단·상세 하단에 "출처: 국가유산청 국가유산포털 … 공공데이터포털 … 쉬운 요약은 AI 생성" 상시 표기. 이용 조건: API 전용 약관 없음, 누리집 저작권정책(공공누리)+공공데이터법 3조④(영리 이용 허용)+'이용허락범위 제한 없음' → 유료 B2G 가능, 출처표기·이미지 유형 분기 의무, 파일럿 전 서면 확인.

8. 지도의 역할 — "화면" 규칙 (구현됨)

  • "지금 화면" = 지도 컨테이너에서 대화 패널(좌 400px + 여백 32 = 432px)·카드 띠(하단 150px)·상세 시트(우 436px)를 뺀 유효 영역. 클라이언트가 매 턴 visible_ids를 보고하고 [화면 상태]에 "표시된 N건 중 화면 안 M건: 1.○○ …"로 들어간다. 카메라 패딩도 같은 값이라 초기 중심·flyTo가 보이는 영역 기준으로 잡힌다.
  • 지도를 움직이지 않는 동작: "지금 화면에서 ~만"(within_visible)·"그중에서"(within_last_results)·"n번째 빼고"(exclude_indexes) 재필터, 카드·마커 선택, 상세 열기(보이는 영역 안이면 고정; 밖이면 패딩 반영 이동). 움직이는 동작: 새 검색·지역 이동만.
  • 기준점 보존(엔진 규칙): 제외 재검색·정렬·패널 '−'는 직전 검색의 기준점(location)·조건을 유지한다 — 모델이 near_me/region을 덧붙여도 서버가 무시하고, 목록 동기화는 필터를 건드리지 않는다. 코스 패널 출발점 = 그 기준점(라벨: 사용자가 말한 장소/지도 중심).
  • 야외 우선(엔진 기본값): 새 검색(region/near_me)에 서버가 is_outdoor=true를 강제하고, 모델은 사용자가 '유물·박물관·소장'을 말했을 때만 include_indoor=true로 해제한다. 재필터에는 적용하지 않는다. 유물을 포함해 말할 때 "박물관 소장 N건"(notes 강제).
  • 모바일 '화면': 가림 영역 = 상단 56px + 하단(대화 시트 50dvh + 카드 띠 110px)을 창 높이에서 계산 — 시트·카드 띠 뒤 마커는 '보이지 않음'.
  • 건수 문구: "표시된 N건 중 화면 안 M건"(전체 매칭이 상한을 넘으면 "전체 K건 중 N건 표시"). 결과 ≤25건이면 클러스터 해제, 같은 좌표에 쌓인 마커는 원형으로 펼쳐 번호가 모두 보이게.
  • 거리 기준점: 보이는 영역 중심에 십자 표시, 답변에 "지도 중심(또는 ○○) 기준 직선거리" 1회. 코스 모드: 순서 마커+점선 경로, 같은 경내(≤60m)는 한 정류장.

9. UI/UX (구현된 화면 기준)

  • 톤·레이아웃: 한지 톤 종이(#fbf8f3)·단청 적색(#8b2e2e)·먹색(#1f1a17), Pretendard. 데스크톱 좌 400px 대화 패널 / 중앙 벡터 지도 / 하단 카드 띠(번호·사진·종목·유형) / 우 상세 시트(사진 갤러리·설명문·쉬운 요약(AI 생성)·관리자·편의시설 거리(정보 없음 구분)·공공누리 유형·출처 고지·음성 플레이어 KR/EN). 모바일 지도 50dvh+카드 띠 / 하단 50dvh 대화 시트, 상세·코스는 전체 화면.
  • 음성·오디오 상태: 꺼짐/연결 중/듣는 중/말하는 중 표시. 해설 재생 시 마이크 음소거→닫기·정지 시 복구, 플레이어(진행바·KR/EN·닫기), "그만/정지"는 재생 중이면 stop_audio. 새 검색이 오면 플레이어 닫힘.
  • 코스 패널: 코스 요청 시 자동(또는 "코스로 보기" 토글) → 지도 하단 카드 띠 자리(입력창·스레드를 덮지 않음, 모바일은 지도 영역 50dvh) · 정류장(묶음, 마커 번호 병기)·종목·소재지·관리자·화장실/주차 거리('정보 없음')·구간/총 직선거리 · 순서는 출발점 기준 최근접 · 행 '−'로 빼기(번호 재부여, 세션 필터 유지) · 표 복사(보안 컨텍스트 아니면 execCommand 폴백)·TSV 다운로드·인쇄(코스만).
  • QR 플로우: 안내판 QR → /s/heritage-guide?focus=유산ID → 지도를 렌더하기 전에 초기 뷰를 그 유산(줌 15)으로 확정 → 상세 열림·안내 메시지 → "해설 들려줘"(재생)·"근처에 뭐 있어?"(화면 상태 기준). 실행 확인(석굴암).
  • 임베드: 지자체 사이트에 iframe 또는 스크립트 1줄, 시 BI 색상은 테마 변수로. iframe 안에서 클립보드·인쇄·오디오 자동재생이 부모 정책에 막힐 수 있어 allow="clipboard-write; autoplay" 지정과 TSV 다운로드·새 창 열기 폴백을 둔다. 공공 웹 접근성 인증(KWCAG 2.2) 점검·보완 비용을 파일럿에 포함(aria-live·키보드·대비는 구현, 마커 키보드 순회·움직임 줄이기는 라운드 2).
  • 상세 시트 순서: 사진 → 쉬운 요약(AI 생성) → 설명문 → 관리자·소재지 → 편의시설 거리+고지 → 출처(큐레이션은 라운드 2에서 필드 순서 메타로; 현재는 스키마 순서에 주석 라벨).
  • 되묻기 선택지(0건 완화·동명 지역)는 텍스트 되묻기로 동작, 탭 칩은 라운드 2. 근거 칩("검색: 경주 · 국보", "화면 안에서", "3번째 제외", "해설 재생: 2번째")은 모든 답변에.

10. 비즈니스 관점 (조달·가격 정합)

  • 포지셔닝: 공식 앱·경주시 챗봇/XR의 대체가 아니라 교사용 코스·대화형 필터·편의시설·계획서 출력 레이어(B2G 모듈). 데이터 비용 0, 가치는 멀티턴·화면 집계·표 출력·QR 딥링크·세션 대시보드.
  • 1차 경로: 경주시(관광컨벤션과 또는 문화유산과) 파일럿 1,900만 원(1인 견적 소액수의 ≤2천만) — 범위를 공수로 명시: 임베드·BI 적용 3일, 안내판 QR 매핑 2일, 시 보유 편의시설 목록 덮어쓰기 2일, 세션 대시보드 2일, 접근성 점검·보완 4일, 운영 인수 1일(≈14인일). 타일 자체 호스팅·접근성 인증마크 취득은 별도 항목(추가 300만~500만). 확장(2천만 초과1억)은 소기업·소상공인 2인 견적 소액수의. 활용사업은 2027분 기선정 → 변경 편입 타진, 정식 번들은 2028 사이클(프로그램당 500만 원 모듈 — 건당 국비 1,6003,000만 구조의 15~30%).
  • 2차 경로(교육): 교당 연 30만 원 구독(학교장터 S2B 등록 — 등록 절차·수수료 확인 필요), 개인정보 미수집·성취기준 콘텐츠 비포함 설계로 학운위 4단계 비대상을 노리되 '쉬운 요약·단원 스타터'가 성취기준 콘텐츠로 해석될 여지는 교육청에 서면 확인(§11). 가정: 경주 관내 초·중 60교 중 1차년 10교(전환 15~20%) → 연 300만 원 수준 — 매출 라인이 아니라 지자체 파일럿의 교육 성과 근거 채널로 자리매김. 교육청 단위 대형 플랫폼(하이러닝 358억 등)과는 규모·성격이 달라 비교 제외.
  • 연 운영 1,000만 원(월 3,000세션 포함) — 산식(텍스트 모델 gpt-5-mini·reasoning minimal, 회귀 18/18·p50 3.0s로 확정): 세션당 텍스트 6턴 ≈ 6×$0.004 = $0.024(프롬프트 ≈5k 토큰·캐시 적용), 음성 이용 세션 30%×2분×$0.069 ≈ $0.041 평균 → 세션 평균 ≈ $0.065; 3,000세션 ≈ $195/월 ≈ 27만 원; 서버·프록시 10만 원/월; 분기 데이터 재수집·갱신 4회×반나절; 장애 대응·접근성 유지 → 연 900만~1,200만 원. 초과 사용은 세션당 100원 종량, 세션당 음성 5분 상한·일일 음성 총량 캡(초과 시 텍스트 전환 안내). (2회차 지적의 '월 1만 세션' 가정은 파일럿 규모가 아니므로 포함량을 3,000세션으로 명시.)
  • 앵커: 소규모 지자체·민간 AI 안내 구축 2,750만 원 낙찰(2026, 민간 조합·△)과 경기도 생성형 AI 챗봇 구축 4.17억·운영 7.66억(2025, 광역 규모 참고). 1330(2020, 21.62억 콜센터급)·광주시(도비 보조금)·진흥원 내부용 2억은 제외. 관광공사 역사문화형 과제(5천만~1억)는 응모 경로.
  • 왜 지금: 국가유산청 2026 예산 +8%·2027 예산안 +11.2%(활용 1,311억), 활용사업 379건·방문 캠페인 100거점으로 디지털 안내 수요 증가, 학습지원 SW 선정 기준 시행(학교 단위 구매 제도화), 공식 앱 축소(스토어 404), 경주시 AI-XR 사업(2026~27)과의 연계 창.
  • 경쟁 방어: 국가유산청 30억 AI 해설은 궁능 대상, 경주시 XR(딥파인 주관)은 위치 기반 해설 — 교사용 코스·편의시설·계획서·QR 딥링크·세션 대시보드는 겹치지 않는 층. 2호 지자체 재사용: 도메인 스키마·에이전트 설정·테마·커스텀 장소가 모두 데이터(domain.json)라 코드 변경 없이 복제되며, 신규 시군 원가는 파일럿 14인일 중 데이터·임베드·QR·편의시설 덮어쓰기(≈6인일)만 반복 → ≈ 40%(근거: 공수표).

11. 리스크와 대응

리스크대응
경주시 "우리 챗봇·XR이 있는데?"§3·§10 보완 레이어 포지셔닝, API/임베드 공급·스마트미디어센터 MOU 제안, 데모 첫 장면(화면 집계+코스 표)
편의시설 표준데이터 커버리지(경주 화장실 39건·2019, 관광지 주차장 누락)'정보 없음' 구분·고지, 하드 필터 금지(명시 요청 시만), 파일럿에서 시 목록 덮어쓰기(계약 범위)
대본·규칙·데이터 불일치(1·2회차 재발)§4·§12를 실제 서비스 실행 결과로 작성, 회귀 시나리오 자동 실행
공개 API 이용 조건·이미지 유형공공누리 A/B만 표시, 출처 상시, 파일럿 전 서면 확인
좌표 결측 35%(보물 40%)고지·건수 문구·라운드 2 지오코딩('추정' 플래그)
시대 빈값(시도지정 다수)설명문 기반 LLM 분류 + '시대추정' 태그·답변 고지(S10)
박물관 소장 유물 좌표 중첩새 검색 야외 우선, 포함 시 "박물관 소장 N건", 겹침 마커 펼치기
교사 실발화 중 데이터 없는 항목정직 응답+관리자 안내(S8·S9), 라운드 2 지자체 데이터
음성 mp3 HTTP 서버·이미지 서버 연결 거부프록시 연결 재사용·재시도·MIME 정규화, 실패 폴백 문구
학교명 미해소커스텀 장소(경주역·시청·보문단지·불국사·경주향교·대릉원·경주박물관) + 되묻기, 라운드 2 학교 좌표
API 변경·중단원본 스냅샷·재수집 스크립트·오류 재시도 모드
영문 음성 실존율 39%(시도지정 2~12%)실존 검사로 플래그·토글·태그를 실존분에만, 외국어 전면화는 라운드 2(국가유산청 다국어 데이터 연계)
'쉬운 요약·단원 스타터'가 성취기준 콘텐츠로 해석교육청 서면 확인 전까지 교사 전용(계획 도구) 기능으로 포지셔닝, 학생 배포물은 라운드 2
외부 타일 CDN 의존(공공 임베드 SLA)파일럿 별도 항목으로 자체 호스팅 전환

12. 성공 기준 (결과평가 — 실행 결과 수치)

  • S1~S16 전부 기대 동작; 치명 항목 S2·S2-1·S12(화면 집계·고정)·S7·S11·S8·S9 오답 0.
  • 와우1: 1440×900 초기 뷰에서 "국보만" → 화면 안 국보 6건(사리장엄구·석굴암·다보탑·삼층석탑·연화교칠보교·청운교백운교), 카드 6장, 답변·카드에 '박물관 소장' 표기, 지도 고정, 근거 칩 "화면 안에서". 모바일은 5건.
  • 와우2: "두 번째 거 해설 들려줘" → 석굴암 상세 시트 열림 + 플레이어 재생(detail=true) 동시, "그만"→정지.
  • 와우3: 경주향교 기준 조선 유적 코스 10곳(박물관 소장 제외)·코스 패널 자동·"출발: 경주향교"·묶음 표기·출발점 기준 순서, "화장실 가까운 순" 정렬(시대추정 고지 포함)과 "석빙고는 빼줘"→9곳(기준점 유지), 패널 '−' 후 정렬해도 결과가 전국으로 바뀌지 않음, 표 복사/TSV에 관리자·거리·출발점 주석 포함.
  • 환각 0: 답변의 이름·수치가 tool 결과/화면 상태에 존재. '연락처' 미약속. 편의시설 언급 시 고지 1회.
  • 텍스트 첫 반응 p50 ≈ 3초(회귀 18턴 p50 3.0s·p90 3.9s, 단순 질문 1~2초), 콘솔 오류 0, 네트워크 실패 0, 모바일(390×844) 정상, 음성 1회(연결·해설 재생 중 음소거·정지).
  • 데이터: 게시 엔티티 10,217, 임베딩 100%, '시대추정'(47%)·'박물관 소장'·'정보 없음' 표기 노출, 영문 토글은 실존분만, QR 딥링크(석굴암)가 그 유산 중심·상세에서 시작.

이전 기획 · v3 (2026-10-09) — 사전평가 2회차(74.3) 반영: 대본=규칙=데이터, 가격·조달 정합, 경주시 AI 지형

v3 (2026-10-09) — 사전평가 2회차(74.3) 반영: 대본=규칙=데이터, 가격·조달 정합, 경주시 AI 지형

2회차 공통 지적을 전부 닫는다: ① 데모 대본이 자체 규칙·실데이터와 어긋남(사리장엄구 유물, 화장실 300m 하드 필터) ② 가격 산식 자기모순·수의계약 한도·활용사업 선정 시점 ③ 경주시 자체 AI 투자 누락 ④ 편의시설 데이터 커버리지 미고지 ⑤ 코스 편집·정지 명령·추정 배지·모바일 코스·QR 플로우 미구현. 이번 버전의 수치는 2026-10-09 전수 수집 완료본(§7)과 실제 서비스 화면(1440×900)에서 돌린 결과로 썼고, 아래 기능은 모두 셸·엔진에 구현돼 있다(tools/eval/scenarios/heritage-guide.json 회귀 통과분).

1. 한 줄 정의

국가유산청 공식 데이터(설명문·사진·음성해설) 위에 얹는 "교사용 답사 코스 설계 + 대화형 필터" 모듈. 교사·답사객이 "경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘"라고 말하면, 지도가 지정종목·시대·유형·거리로 걸러 번호 마커·경로선으로 보여주고, 공식 해설·음성해설을 그 자리에서 이어 주며, 편의시설 거리(공공데이터, '정보 없음' 구분)를 붙인 계획서용 표로 내보낸다. 새 앱이 아니라 지자체·교육청 사이트에 임베드되고, 현장 안내판 QR(?focus=유산ID)로 그 유산 화면에서 바로 시작한다.

2. 제안 대상(클라이언트)과 최종 사용자

  • 1차 계약 주체(파일럿): 경주시 문화관광과. 경주시는 이미 AI에 투자 중이다 — 대화형 AI 관광챗봇 ChatGTS(2023, 국비 5억+시비 5억), 2026년 'AI 기반 현실확장형 가상융합 서비스 개발사업'(과기정통부·RAPA 공모, 경주스마트미디어센터, 2년 총 18억, 첨성대·동궁과 월지·황룡사지에서 위치 기반 역사 이야기 제공; 경북매일 2026-06-09·트위그24 2026-06-10). 따라서 제안은 "또 하나의 챗봇"이 아니라 **"교사용 코스·대화형 필터·편의시설 레이어를 시 사이트·XR 서비스에 API/임베드로 공급하는 보완 모듈"**이다. 계약 형태(지방계약법 시행령 §25①5): 1인 견적 소액수의(2천만 원 이하) → 파일럿 1,900만 원, 확장 시 2천만 초과~1억은 소기업·소상공인 2인 견적 소액수의. '우리고장 국가유산 활용사업'은 **2027년분이 2026-09에 이미 선정(244건)**이므로 경주시 기선정 프로그램(세계유산 활용·홍보지원, 경북 15건·국비 40억)에 변경 편입을 타진하고, 정식 번들은 **2028 사이클(2027-09 공모)**에 맞춘다.
  • 2차: 교육 — 학교·구청·교육청 체험학습 사업. 2026-1학기부터 성취기준 연계·개인정보 처리 학습지원 SW는 교원 의견수렴→학운위 심의→학교장 확정(교육부 2025-12-29). 우리는 **학생 개인정보를 수집하지 않고 성취기준 콘텐츠를 포함하지 않는 '교사용 답사 계획 도구'**로 설계해 4단계 심의 대상에서 벗어나는 교당 연 소액 구독(30만 원, 학교장터 S2B 등록) 상품을 둔다. 재원: 구청 교육경비보조금(동대문구 2026 교당 최대 500만 원 사례), 교육청 현장체험학습 지원사업(서울 2026 본예산 10.7억+추경 18억, 사전답사 차량 1.7억 — 교육지원청 대행).
  • 3차: 국가유산청·국가유산진흥원 — 데이터·표준 파트너. 국가유산청은 202627년 총 30억의 다국어 AI 해설(4대궁·종묘)·46만 건 학습데이터·RAG DB를 직접 구축 중이라 '대화형 해설'을 외부 구매할 가능성은 낮다. 우리는 궁능 밖 지방 지정유산·향토유산·교사용 코스 공백을 맡고, Open-API 보급·조달청 혁신제품 시범구매 계획을 들어 실증 트랙과 방문 캠페인 거점(13코스 100거점) 무상 연계(MOU)로 접근한다. 한국관광공사 'AI 기반 지역관광 문제해결(역사문화형)' 과제(과제당 5천만1억, 기업 응모, 2026)는 가격 앵커가 아니라 응모 경로로 쓴다.
  • 페르소나 A — 초등 5학년 담임 김수진(38, 경주 ○○초): 사회 '우리 고장의 문화유산' 체험학습. 학운위 심의용 사전답사 계획서(장소·주소·관리자·편의시설·이동거리)를 내야 한다. v1이 답하는 것: 지정종목·시대·유형·거리·관리자명·가까운 공중화장실/주차장 거리(공공데이터, 정보 없음 구분). 못 답하는 것(정직 안내): 입장료·단체 입장·휴관일·버스 주차 → "그 정보는 없어요, 관리자(○○)에 문의하세요".
  • 페르소나 B — 당일 답사객 박민호(52, 수원): 안내판 QR로 들어와 "여기 근처 국보 뭐 있어?" → 공식 음성해설 → 영문 전환. (근거 약한 보조 페르소나.)

3. 고객 니즈와 근거

니즈근거이 모듈이 푸는 부분 (정직하게)
교사의 체험학습 기획·행정 부담초등교사노조 설문(2026-04, N=21,918) 추진 '부정' 96.2%; 부담 요소 법적 책임 50%·민원 37%·행정 12%(데일리안 2026-05-04). 전교조 2026 실태조사 체험학습 사실상 중단 7.2%(아시아경제 2026-05-04). 소규모·테마형 전환 지침(경기일보 2024-05-30)행정 12%의 '장소 조합·계획서 작성'. 심의 서류용 표(장소·종목·소재지·관리자·편의시설 거리·구간 거리)를 10분 안에 뽑는다(목표 시간은 파일럿에서 교사 5명 관찰로 검증 예정 — 현재는 가설)
공식 수요 근거국가유산청 「2024 국가유산교육 정기 실태조사」 학교 교육 부문 제언 "정보 플랫폼 개선"교사용 정보 플랫폼의 구체 형태
경주시: 관광 안내의 AI 전환ChatGTS(2023)·AI-XR(2026~27, 18억) 투자, 세계유산 활용·홍보지원 기선정두 사업이 다루지 않는 교사·단체 답사 코스와 편의시설·계획서 출력 층 공급
지방 유산으로 방문 분산2025년 궁능 관람객 1,781만(+12.9%), 외국인 427만(24%)(헤럴드경제 2026-01-04)지자체 임베드 코스 모듈이 '궁 밖' 유산으로 유도

현재 대안과 한계

  • 국가유산청 공식 앱 '나만의 국가유산 해설사'(data/RESEARCH_v2_facts.md §1): 반경 20m~5km 검색, 4개 국어 텍스트 해설, 사진·영상, 방문인증 스탬프. 코스·대화·음성(오디오)·교사용 기능은 소개에 없음. 앱스토어 평점 2.7/5(20개, 캐시 — 확정 수치 아님), 2026-10-09 현재 앱스토어·플레이스토어 404, 웹 my.heritage.go.kr로 축소 운영. → 조건 교차·지시어 멀티턴·코스·계획서·임베드 없음. 우리는 같은 공개 API 위의 보완 모듈.
  • 경주시 ChatGTS·AI-XR 가상융합 서비스: 관광 챗봇과 위치 기반 XR 해설(첨성대·동궁과 월지·황룡사지). 교사용 코스·편의시설·계획서 출력 없음 → API/임베드 공급 + 스마트미디어센터 MOU 대상.
  • 국가유산 방문 캠페인(종이 여권+앱 스탬프, 2026년 13코스 100거점): 코스 설계·대화 없음 → '여권 거점' 태그 번들 대상(라운드 2).
  • 국가유산포털(지도검색·GIS): 종목·시도 조건 검색은 되지만 대화·지시어·편의시설·표 출력 없음. 네이버·카카오: POI 검색, 지정종목·시대 레이어 없음. 교사의 ChatGPT+지도앱 조합: 좌표·지정 정보가 틀리거나 지어내고, 표·지도·해설이 한 흐름이 아니다 — 우리는 공식 데이터만 근거로 답하고(환각 0 규칙) 표로 바로 나온다.

왜 대화+지도가 본질적으로 유리한가: 답사 질의는 조건 교차(종목×시대×유형×거리) → 지시어(그중/두 번째/여기서/세 번째 대신) → 해설 청취 → 표로 저장이 한 흐름이다. 폼은 조건을 하나씩, 해설은 다른 화면, 표는 손으로 옮겨야 한다.

4. 와우 포인트 (데모 첫 3분 — 1440×900, 실데이터 실행 결과)

초기 화면: 불국사 앞(35.790, 129.332) 줌 14, 중심 2km 거리순 13건(유물 포함 — 불국사박물관 소장 사리장엄구는 '박물관 소장' 표기). 거리 기준점은 지도 중심 십자.

  1. [0:30] "지금 화면에서 국보만 남겨줘" → 지도는 움직이지 않고 마커만 줄며 "지금 화면에 보이는 국보는 6곳이에요 — 불국사 삼층석탑 사리장엄구(박물관 소장), 경주 석굴암 석굴, 경주 불국사 다보탑, 경주 불국사 삼층석탑, 경주 불국사 연화교 및 칠보교, 경주 불국사 청운교 및 백운교" — 화면 집계+지시어+지도 고정. 근거 칩 "화면 안에서 · designation=국보". (공식 웹·네이버·카카오에 없는 장면. 야외 우선 규칙은 새 검색에만 적용되고 화면 안 재필터에는 적용되지 않는다 — §8.)
  2. [1:30] "두 번째 거 해설 들려줘" → 두 번째(경주 석굴암 석굴)의 상세 시트(사진·설명문·쉬운 요약(AI) 라벨)와 함께 국가유산청 공식 음성해설이 지도 위에서 재생, 마이크 자동 음소거, 플레이어 KR/EN 토글, "그만"→정지. 공식 앱에도 해설은 있다 — 차별점은 '두 번째'라는 지시어 한 마디와 화면·대화·재생이 한 흐름.
  3. [2:30] "경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘" → 교촌 2.5km 내 조선 유적건조물 12곳(경주향교 동무‧서무‧신삼문·명륜당·대성전, 경주 최부자댁, 경주사마소, 경주 석빙고, 삼안총, 숭덕전 등)이 번호 마커·경로선으로 찍히고 코스 패널이 같은 경내를 한 정류장으로 묶어 "경주향교(대성전·동무서무신삼문)" 식으로 보여준다. 이어 "화장실 가까운 순으로" → 실제 출력: "1. 숭덕전(155m), 2. 경주향교 명륜당(224m), 3. 경주향교 대성전(224m), 4. 경주향교(233m), 5. 동무‧서무‧신삼문(244m), 6. 최부자댁(316m) …"(거리값 표시, 없으면 '정보 없음'), "석빙고는 빼줘" → "석빙고를 뺀 조선 시대 유적 11곳을 다시 찾았어요"(7번째 제외·번호 재부여, 패널의 '−' 버튼으로도). "표 복사"(탭 구분 → 한글/엑셀 표, 거리·편의시설 주석 포함)·"인쇄". 화장실·주차는 하드 필터가 아니라 거리 열과 정렬로 다루고, 사용자가 "300m 안만"이라고 명시할 때만 필터한다(§7 데이터 한계).

5. 니즈 선도 포인트 (제안 시 "이것도 되네?")

포인트v1 실물구매 주체·단가
계획서 표 출력코스 패널 표 복사·인쇄(장소·종목·소재지·화장실/주차 거리·구간 직선거리, 묶음 표기)교사(교당 연 30만 원 구독) / 교육지원청 체험학습 지원사업
편의시설 거리 한눈에공중화장실 33,820·주차장 18,939 표준데이터 교차 — 거리값·'정보 없음' 구분, 커버리지 고지경주시(파일럿에 시 보유 관광지 주차장·화장실 목록 덮어쓰기 포함)
학생 눈높이 설명(AI)쉬운 요약(summary_kid) — 카드·상세·답변에 '(AI 생성)' 라벨교사 구독
안내판 QR 딥링크?focus=유산ID로 그 유산 화면·상세에서 시작경주시 안내판 정비 사업(2026 국가유산청 46억·1,600개) 연계
답사 로그 = 성과 지표세션 대시보드(0건 질문·선택 유산·비용)경주시 활용사업 성과 보고
여권 거점 100곳 태그 · 향토유산 4,301건 · 외국어 전면화 · 학교 좌표라운드 2진흥원 MOU / 지자체 / 교육청

6. 대화 시나리오 (결과평가 기본 세트 — 모두 구현된 tool로 기술)

#대화기대 동작
S1"경주 근처 국보 보여줘" → "그중에서 석탑만" → "두 번째 거 설명해줘"region=경주·designation=국보 → within_last_results·kind=탑 → open_detail(2)
S2"지금 화면에 보물이 몇 개야?" → "그중 조선 시대 것만 남겨"[화면 상태]로 "표시된 N건 중 화면 안 M건" 답(tool 없음) → within_visible·era=조선, 지도 고정
S2-1"두 번째 설명해줘" 뒤 "지금 화면에 몇 개 보여?"선택·상세 열기는 지도를 움직이지 않으므로(보이는 영역 안이면 고정) 개수가 유지됨
S3"여기 근처에 걸어서 15분 안에 갈 수 있는 사적 있어?" → "가까운 순으로"near_me(region 금지)·radius 1200·designation=사적 → sort distance, "직선거리 기준"
S4"경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘" → "화장실 가까운 순으로" → "석빙고는 빼줘" / "세 번째 대신 더 가까운 걸로"region=경주향교(커스텀 장소)·era=조선·is_outdoor → sort nearest_toilet_m → exclude_indexes 재검색(번호 재부여)
S4-1코스 N곳 요청에 결과가 N 미만"조건에 맞는 곳은 M곳이에요. 반경을 넓히거나 조건을 빼면 더 찾을 수 있어요" 완화 제안
S5"주차장 가까운 데가 어디야?" (초기 불국사 화면)하드 필터 없이 nearest_parking_m 값으로 답; 값이 없으면 "표준데이터에 주차장 정보가 없어요(관광지 주차장 누락 가능) — 현장 확인 필요"
S6"천연기념물 중 나무만" → "거기 음성해설 틀어줘" → "영어로" → "그만"designation·kind=나무·숲 → play_audio_guide → lang=en → stop_audio(재생 중이므로)
S7"울릉도에 국보 있어?"region=울릉군 → 0건 → "좌표가 있는 국보가 없어요. 보물·천연기념물로 넓힐까요?"
S8"이거 누가 관리해?" → "전화번호는?"관리자·소재지 즉답 → "전화번호는 이 데이터에 없어요. 경주시 문화관광과나 관리자 ○○에 문의"
S9"입장료 있어?" / "30명 단체로 갈 수 있어?" / "휴관일 언제야?"데이터 없음을 정직하게 + 관리자 안내(환각 0)
S10"시도지정 중에 조선 시대 것"era 필터, '시대추정' 태그 항목은 답변에 "시대는 설명문 기준 추정" 1회
S11"고성에 있는 문화재"동명 되묻기: "강원 고성인가요, 경남 고성인가요?"
S12지도를 손으로 포항 쪽으로 옮긴 뒤 "여기는 뭐 있어?"near_me → 뷰포트 중심 기준(화면·답변 일치)
S13"아까 본 석탑들 다시" → "그중 제일 북쪽"결과셋 재필터 → "북쪽 순 정렬은 지원하지 않아요. 가까운 순·이름순은 가능하고, 지도에서 위쪽 것은 ○○이에요(화면 상태 근거)"
S14"박물관에 있는 국보도 보여줘"is_outdoor 해제, "국립경주박물관 소장 N건" 명시
S15QR: /s/heritage-guide?focus=<석굴암 ID> 진입 → "해설 들려줘" → "근처에 뭐 있어?"그 유산 중심·상세 열림으로 시작 → play_audio → near_me
S16"고마워, 이제 끝낼게"end_session
  • 음성: S1·S6을 음성으로 1회(가짜 마이크 — 연결·인사·tool·해설 재생 중 음소거·정지).

7. 데이터 전략 (수집 완료본 기준)

  • 국가유산청 공개 API: 목록 15,913건 → 좌표 유효 10,361건 상세 전수 수집 완료(상세 10361행 중 오류·누락 8건 재시도 후 엔티티 10217건 빌드, 2026-10-09). 설명문 중앙값 431자, 100자 미만 155건(쉬운 요약 생성 제외·목록엔 포함). 이미지(공공누리 A/B만 표시, D 미표시). 음성해설 보유율(국문): 국보 290/290(100%) · 보물 1486/1486(100%) · 사적 517/517(100%) · 명승 113/113(100%) · 천연기념물 380/380(100%) · 국가민속문화유산 267/267(100%) · 국가등록문화유산 578/578(100%) · 시도유형문화유산 2502/2502(100%) · 시도기념물 1427/1427(100%) · 시도민속문화유산 411/411(100%) · 문화유산자료 2246/2246(100%). 좌표 결측 5,552건(보물 40%)은 v1 제외 — 첫 메시지·정보 아이콘에 고지, 건수 문구는 항상 "표시된 N건 중 화면 안 M건".
  • 표준데이터: 공중화장실 33,820건(좌표 27,028; 기준일 전수 2017~2020, 경주시 39건·2019-09-21), 주차장 18,939건(좌표 18,174; 2026; 관광지 주차장 누락 — 불국사·석굴암 최근접 5km). 처리: 유산별 최근접 거리(직선) 계산, 1.5km 밖이면 '정보 없음'(None) — '없음'과 구분. 경주 지정유산 기준 화장실 300m 안 ○ 52/295건(17%), 정보 없음 104건(주차장 정보 없음 131건). 화면·표·답변에 "공공데이터 기준, 현장 확인 필요"를 고지하고, 파일럿에서 경주시 보유 관광지 주차장·화장실 목록으로 덮어쓰기(계약 범위).
  • 파이프라인: fetch_khs.py(재시도 모드 포함) → fetch_std_data.py → build_domain.py --enrich(규칙+LLM, 캐시) → seed_domain.py. 원본은 git 제외, data/SOURCES.md에 출처·일시·라이선스.
  • field_defs(37개, 구현과 1:1): designation·kind(18종, 자연유산은 이름·설명 규칙)·era(8종)+era_estimated(시대 빈값 → 설명문 기반 LLM 분류, '시대추정' 태그로 배지 표시)·category·sido·designated_year·is_outdoor·has_audio_kr/en·audio_kr/en(audio)·toilet/parking_within_300m·nearest_toilet_m/nearest_parking_m(number, note "직선거리, 1.5km 밖이면 정보 없음")·nearest_parking_name·image/image_license/images(gallery)·description(embed)·summary_kid(embed, note "AI 생성")·era_text·subcategory·address·manager·quantity·name_hanja·location(geo)·derived 태그(국가지정/야외/해설있음/영문해설/화장실근처/주차가능/시대추정).
  • LLM 보강: 입력은 설명문+유형코드+시대 원문만, 출력은 쉬운 요약(60~120자, 원문에 없는 연도·인물 금지)·era·kind JSON, 캐시로 재실행 비용 0. 실비용 ≈ $4.56(7,600,106 토큰, gpt-4.1-mini). 시대 값은 국가유산청 표기를 따르되(사찰 건물은 창건 시대로 적힌 경우가 있음) 설명문의 연도가 우선임을 지식에 명시.
  • 프록시·라이선스: 이미지(khs.go.kr)·음성(116.67.83.213)은 /api/proxy/media(호스트 화이트리스트·연결 재사용·Range·MIME 정규화). 화면 하단·상세 하단에 "출처: 국가유산청 국가유산포털 … 공공데이터포털 … 쉬운 요약은 AI 생성" 상시 표기. 이용 조건: API 전용 약관 없음, 누리집 저작권정책(공공누리)+공공데이터법 3조④(영리 이용 허용)+'이용허락범위 제한 없음' → 유료 B2G 가능, 출처표기·이미지 유형 분기 의무, 파일럿 전 서면 확인.

8. 지도의 역할 — "화면" 규칙 (구현됨)

  • "지금 화면" = 지도 컨테이너에서 대화 패널(좌 400px + 여백 32 = 432px)·카드 띠(하단 150px)·상세 시트(우 436px)를 뺀 유효 영역. 클라이언트가 매 턴 visible_ids를 보고하고 [화면 상태]에 "표시된 N건 중 화면 안 M건: 1.○○ …"로 들어간다. 카메라 패딩도 같은 값이라 초기 중심·flyTo가 보이는 영역 기준으로 잡힌다.
  • 지도를 움직이지 않는 동작: "지금 화면에서 ~만"(within_visible)·"그중에서"(within_last_results)·"n번째 빼고"(exclude_indexes) 재필터, 카드·마커 선택, 상세 열기(보이는 영역 안이면 고정; 밖이면 패딩 반영 이동). 움직이는 동작: 새 검색·지역 이동만.
  • 야외 우선은 새 검색(region/near_me)에만 적용, 재필터에는 적용하지 않는다. 유물을 포함해 말할 때 "박물관 소장 N건".
  • 건수 문구: "표시된 N건 중 화면 안 M건"(전체 매칭이 상한을 넘으면 "전체 K건 중 N건 표시"). 결과 ≤25건이면 클러스터 해제, 같은 좌표에 쌓인 마커는 원형으로 펼쳐 번호가 모두 보이게.
  • 거리 기준점: 보이는 영역 중심에 십자 표시, 답변에 "지도 중심(또는 ○○) 기준 직선거리" 1회. 코스 모드: 순서 마커+점선 경로, 같은 경내(≤60m)는 한 정류장.

9. UI/UX (구현된 화면 기준)

  • 톤·레이아웃: 한지 톤 종이(#fbf8f3)·단청 적색(#8b2e2e)·먹색(#1f1a17), Pretendard. 데스크톱 좌 400px 대화 패널 / 중앙 벡터 지도 / 하단 카드 띠(번호·사진·종목·유형) / 우 상세 시트(사진 갤러리·설명문·쉬운 요약(AI 생성)·관리자·편의시설 거리(정보 없음 구분)·공공누리 유형·출처 고지·음성 플레이어 KR/EN). 모바일 지도 50dvh+카드 띠 / 하단 50dvh 대화 시트, 상세·코스는 전체 화면.
  • 음성·오디오 상태: 꺼짐/연결 중/듣는 중/말하는 중 표시. 해설 재생 시 마이크 음소거→닫기·정지 시 복구, 플레이어(진행바·KR/EN·닫기), "그만/정지"는 재생 중이면 stop_audio. 새 검색이 오면 플레이어 닫힘.
  • 코스 패널: "코스로 보기" 토글 → 정류장(묶음)·종목·소재지·화장실/주차 거리·구간/총 직선거리, 행 '−'로 빼기(번호 재부여·세션 동기화), 표 복사(주석 포함)·인쇄(코스만).
  • QR 플로우: 안내판 QR → /s/heritage-guide?focus=유산ID → 그 유산 중심·상세 열림·안내 메시지("해설 들려줘 / 근처에 뭐 있어?").
  • 임베드: 지자체 사이트에 iframe 또는 스크립트 1줄, 시 BI 색상은 테마 변수로 적용. 공공 웹 접근성 인증(KWCAG 2.2) 점검·보완 비용을 파일럿에 포함(aria-live·키보드·대비는 구현, 마커 키보드 순회·움직임 줄이기는 라운드 2).
  • 되묻기 선택지(0건 완화·동명 지역)는 텍스트 되묻기로 동작, 탭 칩은 라운드 2. 근거 칩("검색: 경주 · 국보", "화면 안에서", "3번째 제외", "해설 재생: 2번째")은 모든 답변에.

10. 비즈니스 관점 (조달·가격 정합)

  • 포지셔닝: 공식 앱·경주시 챗봇/XR의 대체가 아니라 교사용 코스·대화형 필터·편의시설·계획서 출력 레이어(B2G 모듈). 데이터 비용 0, 가치는 멀티턴·화면 집계·표 출력·QR 딥링크·세션 대시보드.
  • 1차 경로: 경주시 문화관광과 파일럿 1,900만 원(1인 견적 소액수의 ≤2천만) — 시 관광 사이트 임베드 + 안내판 QR 연계 + 시 보유 편의시설 목록 덮어쓰기 + 세션 대시보드. 확장(2천만 초과1억)은 소기업·소상공인 2인 견적 소액수의. 활용사업은 2027분 기선정 → 변경 편입 타진, 정식 번들은 2028 사이클(프로그램당 500만 원 모듈 — 건당 국비 1,6003,000만 구조의 15~30%).
  • 2차 경로(교육): 교당 연 30만 원 구독(학교장터 등록, 개인정보 미수집·성취기준 콘텐츠 비포함으로 학운위 4단계 비대상 설계), 구청 교육경비보조금·교육청 체험학습 지원사업 연계. 교육청 단위 대형 플랫폼(하이러닝 358억 등)과는 규모·성격이 달라 비교 제외.
  • 연 운영 1,000만 원(월 3,000세션 포함) — 산식: 세션당 텍스트 6턴 ≈ $0.006, 음성 이용 세션 30%×2분×$0.069 ≈ $0.041 평균 → 세션 평균 ≈ $0.047; 3,000세션 ≈ $141/월 ≈ 20만 원; 서버·프록시 10만 원/월; 분기 데이터 재수집·갱신 4회×반나절; 장애 대응·접근성 유지 → 연 900만~1,200만 원. 초과 사용은 세션당 100원 종량, 세션당 음성 5분 상한·일일 음성 총량 캡(초과 시 텍스트 전환 안내). (2회차 지적의 '월 1만 세션 ≈ 연 2,400만' 가정은 파일럿 규모가 아니므로 포함량을 3,000세션으로 명시.)
  • 앵커: 소규모 지자체·민간 AI 안내 구축 2,750만 원 낙찰(2026, 민간 조합·△)과 경기도 생성형 AI 챗봇 구축 4.17억·운영 7.66억(2025, 광역 규모 참고). 1330(2020, 21.62억 콜센터급)·광주시(도비 보조금)·진흥원 내부용 2억은 제외. 관광공사 역사문화형 과제(5천만~1억)는 응모 경로.
  • 왜 지금: 국가유산청 2026 예산 +8%·2027 예산안 +11.2%(활용 1,311억), 활용사업 379건·방문 캠페인 100거점으로 디지털 안내 수요 증가, 학습지원 SW 선정 기준 시행(학교 단위 구매 제도화), 공식 앱 축소(스토어 404), 경주시 AI-XR 사업(2026~27)과의 연계 창.
  • 경쟁 방어: 국가유산청 30억 AI 해설은 궁능 대상, 경주시 XR은 위치 기반 해설 — 교사용 코스·편의시설·계획서·QR 딥링크·세션 대시보드는 겹치지 않는 층. 2호 지자체 재사용: 도메인 스키마·에이전트 설정·테마가 데이터라 코드 변경 없이 복제(신규 시군 구축 원가 ≈ 파일럿의 40%).

11. 리스크와 대응

리스크대응
경주시 "우리 챗봇·XR이 있는데?"§3·§10 보완 레이어 포지셔닝, API/임베드 공급·스마트미디어센터 MOU 제안, 데모 첫 장면(화면 집계+코스 표)
편의시설 표준데이터 커버리지(경주 화장실 39건·2019, 관광지 주차장 누락)'정보 없음' 구분·고지, 하드 필터 금지(명시 요청 시만), 파일럿에서 시 목록 덮어쓰기(계약 범위)
대본·규칙·데이터 불일치(1·2회차 재발)§4·§12를 실제 서비스 실행 결과로 작성, 회귀 시나리오 자동 실행
공개 API 이용 조건·이미지 유형공공누리 A/B만 표시, 출처 상시, 파일럿 전 서면 확인
좌표 결측 35%(보물 40%)고지·건수 문구·라운드 2 지오코딩('추정' 플래그)
시대 빈값(시도지정 다수)설명문 기반 LLM 분류 + '시대추정' 태그·답변 고지(S10)
박물관 소장 유물 좌표 중첩새 검색 야외 우선, 포함 시 "박물관 소장 N건", 겹침 마커 펼치기
교사 실발화 중 데이터 없는 항목정직 응답+관리자 안내(S8·S9), 라운드 2 지자체 데이터
음성 mp3 HTTP 서버·이미지 서버 연결 거부프록시 연결 재사용·재시도·MIME 정규화, 실패 폴백 문구
학교명 미해소커스텀 장소(경주역·시청·보문단지·불국사·경주향교·대릉원·경주박물관) + 되묻기, 라운드 2 학교 좌표
API 변경·중단원본 스냅샷·재수집 스크립트·오류 재시도 모드

12. 성공 기준 (결과평가 — 실행 결과 수치)

  • S1~S16 전부 기대 동작; 치명 항목 S2·S2-1·S12(화면 집계·고정)·S7·S11·S8·S9 오답 0.
  • 와우1: 1440×900 초기 뷰에서 "국보만" → 화면 안 국보 6건(사리장엄구·석굴암·다보탑·삼층석탑·연화교칠보교·청운교백운교), 결과 카드 6장, '박물관 소장' 표기, 지도 고정, 근거 칩 "화면 안에서".
  • 와우3: 경주향교 기준 조선 유적 코스에 경주향교(동무‧서무‧신삼문·명륜당·대성전 묶음)·최부자댁·석빙고·숭덕전·사마소 포함, 묶음 표기, "화장실 가까운 순" 정렬과 "빼줘" 재부여, 표 복사 텍스트에 거리·주석 포함.
  • 환각 0: 답변의 이름·수치가 tool 결과/화면 상태에 존재. '연락처' 미약속. 편의시설 언급 시 고지 1회.
  • 텍스트 첫 반응 p50 ≤ 3초, 콘솔 오류 0, 네트워크 실패 0, 모바일(390×844) 정상, 음성 1회(연결·해설 재생 중 음소거·정지).
  • 데이터: 게시 엔티티 ≥ 10,000, 임베딩 100%, '시대추정' 태그·'정보 없음' 표기 노출, QR 딥링크 1건 동작.

이전 기획 · v2 (2026-10-09) — 사전평가 1회차(71.3) 반영

v2 (2026-10-09) — 사전평가 1회차(71.3) 반영

1회차 지적(연락처 필드 부재 · 데모 수치 허구 · '지금 화면' 정의 · 공식 앱 누락 · 예산·가격 근거 오류 · 교사 실발화 · 시대 빈값 · 음성/오디오 상태 · 모바일/접근성)을 전부 다룬다. 수치는 2026-10-09 수집 원본(국가유산 15,913건·좌표 10,361건, 공중화장실 33,820·주차장 18,939)으로 다시 썼다.

1. 한 줄 정의

국가유산청 공식 데이터(설명문·사진·음성해설) 위에 얹는 "교사용 답사 코스 설계 + 대화형 필터" 모듈. 교사·답사객이 "경주향교 기준으로 걸어서 30분 안에 조선 시대 유적, 화장실 있는 데로"라고 말하면, 지도가 지정종목·시대·유형·거리·편의시설로 걸러 번호 마커로 보여주고, 공식 설명·음성해설을 그 자리에서 이어 주며, 결과를 계획서용 표로 내보낸다. 새 앱이 아니라 지자체·교육청 사이트에 임베드되는 모듈로 제안한다.

2. 제안 대상(클라이언트)과 최종 사용자

  • 1차 계약 주체(파일럿): 기초 지자체 문화관광과 — 경주시. 두 경로: (가) 소규모 단독 용역(수의계약 한도 2천만 이하 또는 협상에 의한 계약)으로 "경주 국가유산 답사 길잡이(웹 모듈)"를 시 관광 사이트·안내판 QR에 임베드, (나) '우리고장 국가유산 활용사업' 2027 공모(매년 9월 선정, 2026년 379건·건당 국비 1,600~3,000만 원 수준)에 제출하는 생생·야행·교육형 프로그램의 '디지털 답사 안내' 항목으로 번들. 경주는 좌표 보유 지정유산 295건(국보 27·보물 81·사적 77 …), 음성해설 보유율 98%(실측)로 데모·파일럿 최적지.
  • 2차: 교육 — 학교·구청·교육청 체험학습 사업. 2026-1학기부터 성취기준 연계 학습지원 SW는 교원 의견수렴 → 학운위 심의 → 학교장 확정으로 학교 단위 구매가 기본(교육부 2025-12-29). 따라서 교육지원청 '연 구독'이 아니라 ① 학교 단위 소액 구독(구청 교육경비보조금 — 예: 동대문구 2026 에듀테크 지원 교당 최대 500만 원), ② 교육청 현장체험학습 지원사업(서울 2026: 본예산 10.7억+추경 18억, 숙박형 사전답사 차량 1.7억 — 보조인력·사전답사 지원을 교육지원청이 대행)에 '사전답사 계획서 도구'로 연계하는 경로를 쓴다.
  • 3차: 국가유산청·국가유산진흥원 — 데이터·표준 파트너. 국가유산청은 2026~27년 총 30억 원의 다국어 AI 해설서비스(4대궁·종묘)와 46만 건 학습데이터·RAG DB를 직접 구축 중이라 '대화형 해설' 자체를 외부 구매할 가능성은 낮다. 우리는 궁능 밖 지방 지정유산·향토유산·교사용 코스라는 공백을 맡고, Open-API 보급·조달청 혁신제품 시범구매 계획을 들어 실증 트랙과 방문 캠페인 거점(13코스 100거점) 무상 연계(MOU)로 접근한다.
  • 페르소나 A — 초등 5학년 담임 김수진(38, 경주 ○○초): 사회 '우리 고장의 문화유산' 단원 체험학습. 학운위 심의용 사전답사 계획서(장소·주소·관리자·화장실·주차)를 내야 한다. 원하는 것: "학교(또는 집결지) 기준 걸어서 30분 안, 화장실·주차 되는 조선 시대 유적 3곳"을 10분 안에 표로 뽑기. v1이 실제로 답하는 범위: 지정종목·시대·유형·거리·화장실/주차 ○×(직선 300m)·관리자명. 답하지 못하는 것(정직하게 안내): 입장료·단체 입장·휴관일·버스 주차 → "그 정보는 없어요, 관리자(○○)에 문의하세요".
  • 페르소나 B — 당일 답사객 박민호(52, 수원): 차로 경주를 돌며 "여기 근처 국보 뭐 있어?"를 말로 묻고 공식 해설을 듣는다. 외국인 동행에게 영문 해설을 틀어준다. (B의 pain 근거는 약하므로 제안서에서는 보조 페르소나로만.)

3. 고객 니즈와 근거

니즈근거이 모듈이 푸는 부분 (정직하게)
교사의 체험학습 기획·행정 부담초등교사노조 설문(2026-04, N=21,918): 추진 '부정' 96.2%. 부담 요소 법적 책임 50%·민원 37%·행정 12%(데일리안 2026-05-04). 전교조 2026 실태조사 체험학습 사실상 중단 7.2%(아시아경제 2026-05-04). 지침은 소규모·테마형 전환(경기일보 2024-05-30)행정 12%의 '장소 조합·계획서 작성' 부분. 법적 책임·민원은 직접 못 풀지만, 사전답사 계획서(장소·주소·관리자·화장실·주차 ○×)를 표로 내보내 심의 서류 준비 시간을 줄인다
공식 수요 근거국가유산청 「2024 국가유산교육 정기 실태조사」(국회도서관 소장)의 학교 교육 부문 정책 제언에 "정보 플랫폼 개선" 포함교사용 정보 플랫폼의 구체 형태 제시
지방 유산으로 방문 분산2025년 궁능 관람객 1,781만(+12.9%), 외국인 427만(24%)(헤럴드경제 2026-01-04)지자체 사이트에 임베드된 코스 모듈이 '궁 밖' 유산으로 유도
현장에서 손이 자유로운 안내답사는 도보·차량 이동 중음성 채널(결과평가에서 1회 이상 실제 검증)

현재 대안과 한계(1회차 지적 반영)

  • 국가유산청 공식 앱 '나만의 국가유산 해설사'(data/RESEARCH_v2_facts.md §1): 공식 소개 기준 기능은 내 위치 반경 20m~5km 검색, 4개 국어 텍스트 해설, 사진·영상, 방문인증 스탬프(여권투어). 코스·답사 설계, 대화(질문), 음성(오디오) 해설, 교사용 기능은 소개에 없다. 앱스토어 평점 2.7/5(20개, "위치가 안 잡힌다·업데이트 없다"), 개발사 답변 "유지보수 어려움으로 웹 전환", 2026-10-09 현재 앱스토어·플레이스토어 404, 웹 my.heritage.go.kr(종목·지역·반경 검색, 스탬프)로 축소 운영 중. → (가) "조선 시대 석탑만, 걸어서 15분, 그중 두 번째" 같은 조건 교차·지시어 멀티턴 없음, (나) 교사용 코스·계획서 출력 없음, (다) 지자체·교육청 사이트에 임베드 불가, (라) Open API의 공식 음성해설 mp3를 지도 위에서 재생하지 않음. 우리는 같은 공개 API 위의 보완 모듈이며, "왜 공식 앱에 붙이지 않나"에는 "공식 앱은 유지보수난으로 축소 중이고 지자체·교육청이 기능을 주문할 수 있는 채널이 아니다"로 답한다. 제안 데모에는 같은 질문을 공식 웹(드롭다운)과 우리 화면에서 나란히 보여주는 before/after 장면을 넣는다.
  • 국가유산 방문 캠페인(국가유산청+진흥원, 2020~): 종이 여권+거점 스탬프(디지털 인증은 해설사 앱 스탬프 캡처), 2026년 13코스 100거점·혜택 5억. 별도 디지털 여권 앱은 없다. 코스 설계·대화 없음 → 우리 코스에 '여권 거점' 태그를 번들할 수 있는 연계 대상.
  • 국가유산포털(지도검색·공간정보 GIS 포함): 종목·시도 조건 검색과 지도 표시는 되지만 대화·지시어·편의시설 교차·표 출력이 없다.
  • 네이버지도·카카오맵: POI 이름 검색. 지정종목·시대 레이어 없음, 공식 해설·음성 연결 없음.
  • 지자체 생성형 AI 관광 챗봇(단양군 등): 텍스트 중심, 지도 현황과 결합된 멀티턴이 약하다.
  • 1330 관광통역안내: 사람이 받는 전화, 지도 없음.

왜 대화+지도가 본질적으로 유리한가: 답사 질의는 조건 교차(종목×시대×유형×거리×편의) → 지시어(그중/두 번째/여기서) → 해설 청취 → 표로 저장이 한 흐름이다. 폼은 조건을 하나씩, 해설은 다른 화면, 표는 손으로 옮겨야 한다. 데이터가 enum+수치+서술 혼합이라 정형 필터+임베딩 하이브리드가 필요하다.

4. 와우 포인트 (데모 첫 3분 — 실데이터 기준)

초기 화면: 불국사 앞(35.790, 129.332) 줌 14, 결과는 중심 기준 거리순 상위 20(야외 유산 우선). 거리 기준점은 지도 중심 십자 표시.

  1. [0:30] "지금 화면에서 국보만 남겨줘" → 지도는 움직이지 않고 마커만 줄며 "표시된 12건 중 화면 안 국보 5건이에요. 가장 가까운 건 불국사 삼층석탑(4m), 다음은 사리장엄구(16m)·다보탑(24m)·청운교와 백운교(34m)·연화교와 칠보교(45m)." — 실측값(불국사 1.2km 내 국보 5건). 네이버·카카오·공식 앱에 없는 화면 집계+지시어 장면.
  2. [1:30] "두 번째 거 해설 들려줘" → 상세 시트(사진 최대 5장·설명문·쉬운 요약)와 함께 국가유산청 공식 음성해설이 지도 위에서 재생, 마이크는 자동 음소거. "영어로"는 플레이어 KR/EN 토글 또는 음성 명령. 공식 앱에도 음성해설은 있다 — 차별점은 '두 번째'라는 지시어 한 마디와 화면·대화·재생이 한 흐름이라는 점. (경주 음성 보유율 98%·국보/보물 100% 실측.)
  3. [2:30] "경주향교 기준으로 걸어서 30분 안에 조선 시대 유적으로 코스 짜줘, 화장실 있는 데로" → 교촌 2.5km 내 조선 유적건조물(경주향교 대성전 240m·동무·서무·신삼문 181m·경주 석빙고 708m 등)을 ①②③ 순서 마커+경로선으로 찍고, 코스 패널에 순서·이름·지정종목·소재지·화장실 ○×·주차 ○×·직선거리·총 직선거리가 뜬다. "표 복사"(한글/엑셀에 붙이면 표)·"인쇄". "세 번째 대신 더 가까운 걸로" → 교체. ('연락처'는 데이터에 없으므로 관리자명으로 대체.)

5. 니즈 선도 포인트 (제안 시 "이것도 되네?") — v1에서 보여주는 것 / 다음 라운드

포인트v1 실물비고
계획서 표 출력코스 패널 표 복사·인쇄(보유 필드만: 이름·종목·시대·소재지·관리자·화장실·주차·거리)교사의 학운위 서류 준비 시간 단축 — hwp 직접 생성은 범위 밖, 표 붙여넣기로 대체
편의시설 ○× 한눈에공중화장실 33,820·주차장 18,939 표준데이터 교차(직선 300m)교사가 "주차 되는 곳만"을 말로 거른다
학생 눈높이 설명 모드쉬운 요약(AI, 초등 5학년 두 문장)을 카드·상세·음성 답변에 사용, '요약(AI)' 라벨공식 설명문은 성인 문체 — 교사가 몰랐던 가치
답사 로그 = 성과 지표세션 대시보드(0건 질문·선택 유산·비용)활용사업 성과 보고·교육청 수요 근거
방문 캠페인 거점 100곳 '여권 거점' 태그 번들라운드 2진흥원 무상 연계 제안(MOU) 재료
향토유산 4,301건 통합·외국어 해설 전면화라운드 2+제안서에는 '확장'으로 명시, 데모에는 미포함

6. 대화 시나리오 (결과평가 기본 세트 — 교사 실발화 포함)

#대화기대 동작
S1"경주 근처 국보 보여줘" → "그중에서 석탑만" → "두 번째 거 설명해줘"region=경주·designation=국보 → within_last_results·kind=탑 → open_detail(2)+요약
S2"지금 화면에 보물이 몇 개야?" → "그중 조선 시대 것만 남겨"[화면 상태]의 '표시 N건 중 화면 안 M건'으로 답(tool 없음) → within_visible·era=조선, 지도 고정
S3"여기 근처에 걸어서 15분 안에 갈 수 있는 사적 있어?" → "가까운 순으로"near_me·radius 1200·designation=사적 → sort distance; 답변에 "직선거리 기준"
S4"경주향교 기준으로 걸어서 30분 안에 조선 시대 유적 3곳 코스 짜줘, 화장실 있는 데로" → "세 번째 대신 더 가까운 걸로"region=경주향교(커스텀 장소)·era=조선·toilet_within_300m=true·limit 3 → 코스 패널 → 교체
S5"주차 되는 곳만"parking_within_300m=true, 답변에 "직선 300m 안 주차장 기준" 1회 명시
S6"천연기념물 중 나무만" → "거기 음성해설 틀어줘" → "영어로"designation=천연기념물·kind=나무·숲 → play_audio_guide → lang=en
S7"울릉도에 국보 있어?"region=울릉군 → 0건 → "울릉도엔 좌표가 있는 국보가 없어요. 보물·천연기념물로 넓힐까요?"
S8"이거 누가 관리해?" → "주소 알려줘" → "전화번호는?"관리자·소재지 즉답 → "전화번호는 이 데이터에 없어요. 경주시 문화관광과나 관리자 ○○에 문의하세요"
S9"이거 입장료 있어?" / "30명 단체로 갈 수 있어?" / "휴관일 언제야?"데이터 없음을 정직하게 + 관리자 안내 (환각 0)
S10"시도지정 중에 조선 시대 것"era 필터, '추정'(설명문 기반 AI 분류) 항목은 답변에 "시대는 추정" 1회 표기
S11"고성에 있는 문화재"동명 지역 되묻기: "강원 고성인가요, 경남 고성인가요?"
S12사용자가 지도를 손으로 포항 쪽으로 옮긴 뒤 "여기는 뭐 있어?"near_me → 뷰포트 중심 기준 검색(화면·답변 일치)
S13"아까 본 석탑들 다시 보여줘" → "그중 제일 북쪽"결과셋 재필터 → "북쪽 순 정렬은 안 돼요, 거리순·이름순은 가능해요"
S14"박물관에 있는 국보도 보여줘"is_outdoor 조건 해제, 답변에 "국립경주박물관 소장 N건" 명시
S15"고마워, 이제 끝낼게"end_session → 작별 → usage 기록
  • 음성: S1·S6을 음성으로 1회(가짜 마이크로 연결·인사·tool 경로·해설 재생 중 마이크 음소거 확인).

7. 데이터 전략

소스(키 불필요, 2026-10-09 전수 수집 — data/SOURCES.md)

  • 국가유산청 공개 API: 목록 15,913건 → 좌표 유효 10,361건(65.1%) 전수 상세 수집(설명문 중앙값 ~560자, 100자 미만 0건), 이미지(공공누리 A/B만 표시, D는 미표시), 음성해설 국/영 URL(국보·보물 557/557 = 100%, 경주 전 종목 98% 실측). 좌표 결측 5,552건(보물은 40%)은 v1 제외 — 화면 정보 아이콘과 첫 메시지에 "좌표가 있는 유산만 표시(보물의 약 40%는 좌표 없음)"를 고지하고, [화면 상태]와 답변의 건수는 항상 "표시된 N건 중 화면 안 M건"으로 말한다.
  • 공공데이터포털 표준데이터: 전국공중화장실(15012892) 33,820건(좌표 27,028)·전국주차장(15012896) 18,939건(좌표 18,174) — 유산별 최근접 거리·직선 300m 내 여부 사전 계산.
  • 보강(라운드 2+): 전국향토유산 4,301건, Wikidata/위키백과.
  • 파이프라인: fetch_khs.py → fetch_std_data.py → build_domain.py --enrich(규칙+LLM) → seed_domain.py(도메인·스키마·agent_config·엔티티·임베딩). 원본은 git 제외, 수집일·URL·라이선스 기록.

AI-ready field_defs (v1 — 구현된 스키마와 1:1)

keytype값·규칙검색
designationenum국보/보물/사적/명승/천연기념물/국가민속/국가등록/시도유형/시도기념물/시도민속/문화유산자료/시도등록/시도자연유산(자료)✓
kindenum탑/비석·비/불상·조각/석등·당간/사찰 건축/궁궐·관아/가옥·민속/서원·향교/성곽·요새/고분·왕릉/나무·숲/지질·경관/공예/회화·서예/전적·기록/유적지/기타 — 유형코드·이름 규칙, 미해소는 LLM✓
eraenum선사/삼국/통일신라/고려/조선/근대/현대/미상 — 원문 규칙 우선, 빈값(시도지정 다수)은 설명문 기반 LLM 분류 + '추정' 플래그✓
era_estimatedboolean시대가 추정이면 true → 답변·카드에 '추정' 배지–
categoryenum유적건조물/유물/기록유산/자연유산/등록문화유산✓
is_outdoorboolean유적건조물·자연유산=true, 유물·기록유산(박물관 소장)=false — 기본 검색은 야외 우선, "유물/박물관" 언급 시 해제✓
sido · sigungu · address · manager · quantity · name_hanjaenum/text목록·상세 원문 (연락처 없음 — 약속하지 않음)sido ✓
designated_yearnumber지정일 앞 4자리✓
has_audio_kr / has_audio_en · audio_kr / audio_enboolean / audio음성해설 유무·URL(프록시 재생)✓
toilet_within_300m · parking_within_300m · nearest_toilet_m · nearest_parking_m · nearest_parking_nameboolean/number/text표준데이터 교차(직선)✓
image · image_license · images(gallery)image/enum/gallery대표 이미지(A/B)·유형·추가 사진 ≤5–
description(embed) · summary_kid(embed, AI) · era_text · subcategorytext공식 설명문·쉬운 요약·원문 시대·유형 경로q ✓
tags(derived)derived국가지정 / 야외 / 해설있음 / 영문해설 / 화장실근처 / 주차가능✓
locationgeo좌표✓

LLM 보강 규칙: 입력은 설명문+유형코드+시대 원문만, 출력은 쉬운 요약(60~120자, 원문에 없는 연도·인물 금지)·era·kind JSON. 캐시(enrich_cache.jsonl)로 재실행 비용 0. 예산 ≈ 10k건 × ~700토큰 ≈ $3. 프록시·라이선스: 이미지(khs.go.kr)·음성(116.67.83.213)은 백엔드 /api/proxy/media(호스트 화이트리스트, Range 지원)로 중계. 화면에 "출처: 국가유산청 국가유산포털" 상시, 이미지별 공공누리 유형 아이콘, 쉬운 요약에 '(AI)' 라벨. 공개 API 이용 조건·상업 이용 범위는 제안 전 국가유산청 담당 부서에 서면 확인(§11). 품질 체크: 좌표 시도 범위 검증, 중복 asno 제거, 설명문 100자 미만 요약 금지, 회귀 시나리오 15개 자동 실행(tools/eval/chat_scenarios.py).

8. 지도의 역할 — "화면" 규칙 명문화

  • "지금 화면"의 정의: 지도 컨테이너에서 대화 패널(좌 432px)·카드 띠(하단 150px)·상세 시트(우 436px)를 뺀 유효 영역 안에 마커가 있는 결과. 클라이언트가 매 턴 보고(visible_ids)하고 서버 [화면 상태]에 "표시된 N건 중 화면 안 M건: 1.○○ 2.△△"로 들어간다.
  • 재필터는 지도를 움직이지 않는다: "지금 화면에서 ~만"(within_visible)·"그중에서"(within_last_results)는 fitBounds 금지. 새 검색·지역 이동만 지도를 옮긴다.
  • 건수 문구: 답변은 항상 "표시된 N건 중 화면 안 M건"(전체 매칭 수가 표시 상한을 넘으면 "전체 K건 중 N건 표시"). 좌표 결측 고지(§7).
  • 클러스터: 결과 ≤25건이면 클러스터 해제(번호가 보여야 "두 번째"가 성립). 같은 좌표에 쌓인 박물관 소장 유물은 기본 검색(야외 우선)에서 제외되고, 포함 시 "국립경주박물관 소장 N건"으로 말한다.
  • 거리 기준점: 지도 중심 십자 + 답변에 "지도 중심(또는 ○○) 기준 직선거리" 1회 명시.
  • 초기 뷰: 불국사 앞 줌 14, 중심 기준 거리순 상위 20(야외). 코스 모드: ①②③ 순서 마커+점선 경로.

9. UI/UX 컨셉 (구체 화면·상태)

  • 톤: 한지 톤 종이(#fbf8f3)·단청 적색 포인트(#8b2e2e)·먹색 글자(#1f1a17), 대비 7.8:1. 서체: 본문·제목 Pretendard(제목은 굵게, 크기만 차등). 마커: 원형+번호(국보·보물 적색 채움, 나머지 먹색), 선택은 확대.
  • 데스크톱: 좌 400px 대화 패널(스레드·스타터·입력·마이크), 중앙 벡터 지도, 하단 결과 카드 띠(번호·사진·종목 배지·시대·거리), 우 상세 시트(사진 갤러리·설명문·쉬운 요약(AI)·관리자·출처·공공누리 아이콘·음성 플레이어 KR/EN).
  • 모바일: 지도 50dvh + 카드 띠, 하단 50dvh 대화 시트. 상세·코스는 전체 화면. 키보드 열림 시 시트가 입력창만 남기고 접힘(지도 최소 30dvh 보장) — 결과평가 모바일 뷰포트에서 확인.
  • 음성·오디오 상태 머신: 음성 상태 표시(꺼짐/연결 중/듣는 중/말하는 중). 음성해설 재생 시 마이크 자동 음소거 → 종료·닫기 시 복구. 플레이어: 진행바·KR/EN 토글·닫기, "정지/그만"은 플레이어 정지. 음성 답변은 2문장 이내, 목록은 화면으로. 끼어들기 시 대기 액션 취소.
  • 코스 패널: "코스로 보기" 토글 → 순서·이름·종목·소재지·화장실 ○×·주차 ○×·구간 직선거리·총 직선거리, "표 복사"(탭 구분 → 한글/엑셀 표)·"인쇄"(코스만 출력). 새 검색에도 토글 유지.
  • 되묻기 선택지: 0건 완화·동명 지역은 답변 아래 탭 칩으로도 제시(라운드 2).
  • 근거 칩: 답변 아래 "검색: 경주 · 국보", "화면 안에서 · 조선", "해설 재생: 2번째".
  • 접근성(KWCAG 2.2 기준 항목): 스레드 aria-live, 키보드 전송·포커스 링, 대비 ≥4.5:1, 음성 상태 텍스트, 마커 키보드 순회·움직임 줄이기는 라운드 2.
  • 첫 메시지: "안녕하세요, 국가유산 답사 길잡이입니다. 불국사 앞 지도를 띄웠어요(좌표가 있는 유산만 표시돼요). '지금 화면에서 국보만 남겨줘'처럼 말씀해 보세요." 스타터: "지금 화면에서 국보만 남겨줘" / "두 번째 거 해설 들려줘" / "경주향교 기준으로 걸어서 30분 안에 조선 시대 유적 코스 짜줘" / "주차 되는 곳만".

10. 비즈니스 관점 (조달 현실 기준으로 재작성)

  • 포지셔닝: 공식 앱의 대체가 아니라 지자체·교육청이 자기 채널에 넣는 코스 설계·대화형 필터 모듈(B2G). 데이터는 공개 API라 콘텐츠 비용 0, 차별 가치는 멀티턴·화면 집계·편의시설 교차·표 출력·세션 대시보드.
  • 1차 경로(파일럿): 경주시 문화관광과 — (가) 소규모 단독 용역(수의계약 한도 2천만 이하 또는 협상 계약; 안내판 정비 46억·1,600개 사업과 연계한 "안내판 QR → 대화형 지도"), (나) '우리고장 국가유산 활용사업' 2027 공모 프로그램에 번들. 211억(활용사업)·87억(방문 캠페인)은 서비스 구매 라인이 아니라 지자체 공모 보조·진흥원 운영 사업이므로 제안서에서 '예산 라인'이라 쓰지 않고 '번들·연계 경로'로만 쓴다(사실조사 §5).
  • 2차 경로(교육): 학교 단위 구매(학운위 심의·학교장 확정) + 구청 교육경비보조금(교당 최대 500만 원 사례) + 교육청 현장체험학습 지원사업(사전답사·안전 서류 지원)에 '사전답사 계획서 도구'로 연계. 교육지원청 연 구독 가정은 철회(근거 없음). 교육청 단위 대형 플랫폼(하이러닝 358억, 11개 교육청 공동 플랫폼)과는 규모·성격이 다르므로 비교 대상에서 제외.
  • 가격(bottom-up + 사실 앵커): 파일럿 구축 2,000만~3,000만 원(데이터 수집·정제·LLM 보강 ≈ $5, 임베딩, 브랜딩·임베드 스크립트·대시보드·접근성 점검 인건비; 수의계약 한도와 맞춤). 활용사업 번들 모듈 프로그램당 500만~1,500만 원(건당 국비 1,600~3,000만 원 구조에 맞는 단가). 연 운영 800만~1,500만 원(분기 API 재수집·서버·사용량 캡: 텍스트 턴당 ≈ $0.001, 음성 분당 ≈ $0.069 실측 → 월 1만 세션·텍스트 6턴+음성 2분 가정 ≈ $1,500/월). 비교 앵커(사실조사 §2): 한국관광공사 'AI 기반 지역관광 문제해결 프로젝트(역사문화형)' 과제당 5천만~1억 원(2026), 소규모 다국어 홈페이지+AI 챗봇 낙찰 2,750만 원(2026), 경기도 생성형 AI 챗봇 구축 4.17억·운영 7.66억(2025, 광역 규모 참고). 1330 문자챗 21.62억은 2020년 계약(콜센터급)이라 비교 대상에서 제외, 경기 광주시 5.6억은 도비 공모 보조금, 2024년 국가유산진흥원 챗봇 2억은 내부 업무용 — 어느 것도 대민 수용성·가격 근거로 쓰지 않는다.
  • 왜 지금: 국가유산청 2026 예산 1조4,971억(+8%)·2027 예산안 1조6,645억(+11.2%, 활용 1,311억)로 활용·방문 확대, 2026 활용사업 379건·방문 캠페인 100거점으로 지자체 프로그램 수가 늘어 디지털 안내 수요 증가, 체험학습 소규모·테마형 재편과 2026-1학기 학습지원 SW 선정 기준 시행(학교 단위 구매 제도화), 공식 앱의 축소(스토어 404)로 설치 없는 모바일 웹 안내의 공백.
  • 경쟁 방어: 국가유산청의 30억 AI 해설서비스는 4대궁·종묘 대상 → 지방 지정유산·향토유산·교사용 코스는 공백으로 남는다. 지자체 임베드·편의시설 교차·계획서 표·세션 대시보드는 지자체·교육 쪽 수요라 보완재로 유지. 데이터 갱신·접근성·BI 적용은 운영비에 반영.

11. 리스크와 대응

리스크대응
공식 앱과 '뭐가 다르냐'§3·§10 포지셔닝 + 데모 첫 장면(화면 집계+지시어)과 코스 표 출력으로 답. 제안서에 공식 앱 기능표 병기
공개 API 이용 조건·상업 이용API 전용 약관·인증키는 없고 누리집 저작권정책(공공누리 유형·출처표시 문구)과 공공데이터법 제3조④("영리적 이용인 경우에도 금지·제한하여서는 아니 된다"), data.go.kr '이용허락범위 제한 없음'이 적용 → 유료 B2G 가능. 의무: 출처표기 UI, 이미지·나레이션 건별 공공누리 유형(A~F) 분기(2·4유형 상업 금지 → 미표시), AI유형 학습데이터 재판매 금지. 파일럿 전 담당 부서에 서면 확인
국가유산청 자체 AI 해설(30억, 궁능 대상)과 충돌지방·향토·교사용 코스로 포지셔닝, 데이터 파트너·실증 트랙 제안
좌표 결측 35%(보물 40%)화면 고지·건수 문구·라운드 2 지오코딩('추정' 플래그)
시대 빈값(시도지정 다수)설명문 기반 LLM 추정 + '추정' 배지 + 회귀 S10
박물관 소장 유물 좌표 중첩야외 우선 기본 검색, 포함 시 "박물관 소장 N건" 명시
교사 실발화 중 데이터 없는 항목(입장료·단체·휴관·버스)정직 응답+관리자 안내(S8·S9), 라운드 2에서 지자체 제공 데이터로 보강
음성 mp3 HTTP 서버·연결 불안정프록시 재시도·https 승격, 실패 시 폴백 문구
지도 현황 집계 오답(치명)유효 영역 가시 판정·재필터 지도 고정·건수 문구 → 회귀 S2·S12 자동 검증
학교명 등 장소 미해소agent_config.places(경주역·시청·보문단지·불국사·경주향교 등) + 미해소 시 되묻기, 라운드 2에 학교 좌표
API 변경·중단원본 스냅샷 보관(수집일 기록), 재수집 스크립트

12. 성공 기준 (결과평가에서 확인 — 실데이터 수치)

  • S1~S15 전부 기대 동작. 치명 항목 S2·S12(화면 집계·수동 이동 후 질문)·S7(0건)·S11(동명)·S8·S9(정직 응답) 오답 0.
  • 와우1: 불국사 앞 줌 14에서 "국보만" → 화면 안 국보 5건·최근접 삼층석탑(≤10m) 재현, 지도 고정.
  • 와우3: 경주향교 기준 조선 유적 코스에 경주향교 대성전·동무·서무·신삼문·석빙고 포함, 코스 표 복사 성공(탭 구분 텍스트).
  • 환각 0: 답변의 모든 이름·수치가 tool 결과/화면 상태에 존재. '연락처' 미약속.
  • 텍스트 첫 반응 p50 ≤ 3초, 콘솔 오류 0, 네트워크 실패 0, 모바일(390×844) 뷰 정상, 음성 1회 연결·해설 재생 중 음소거 확인.
  • 데이터: 게시 엔티티 ≥ 10,000, 임베딩 100%, 음성 보유율·좌표 결측 고지 표시, 편의시설 ○× 필드 채움률 보고.

이전 기획 · v1 (2026-10-09)

v1 (2026-10-09)

1. 한 줄 정의

교사·답사객이 "우리 고장에서 조선 시대 석탑만, 걸어서 15분 안에"라고 말하면, 지도가 지정종목·시대·유형·거리로 걸러 번호 마커로 보여주고, 공식 설명문과 국가유산청 음성해설(국·영문)을 그 자리에서 들려주는 서비스.

2. 제안 대상(클라이언트)과 최종 사용자

  • 1차 클라이언트: 국가유산청 — 2026년 예산 1조 4,971억(+8%), 그중 '우리고장 국가유산 활용사업' 211억, '국가유산 방문 캠페인' 87억, '교육·연구·전시' 1,067억(헤럴드경제 2025-12-05). 2024년 정부 예산으로 AI 챗봇을 도입한 조직(코리아헤럴드 2024-06-09)이라 "대화형"에 저항이 없다. 제안 형태: 방문 캠페인 공식 채널 파일럿(1개 시군) 또는 활용사업 수탁 지자체 번들.
  • 2차 클라이언트: 시·도교육청(현장체험학습 지원·지역화 교육) / 기초 지자체 문화관광과(향토유산 통합, 관광 안내).
  • 페르소나 A — 초등 5학년 담임 김수진(38, 경주 ○○초): 사회과 '우리 고장의 문화유산' 단원의 현장체험학습을 준비한다. 사전답사 결과·안전점검표를 공개해야 하고 학운위 심의도 거친다. 지금은 국가유산포털·블로그·지도앱을 오가며 반나절을 쓴다. 원하는 것: "학교에서 버스 30분 안, 주차·화장실 되는 조선 시대 유적 3곳" 코스를 10분 만에 뽑아 계획서에 붙여 넣는 것.
  • 페르소나 B — 당일 답사객 박민호(52, 수원): 차로 경주·안동을 돌며 "여기 근처 국보 뭐 있어?"를 말로 묻고, 고른 유산의 공식 해설을 듣고 싶다. 동행한 외국인 지인에게 영문 해설을 틀어주고 싶다.

3. 고객 니즈와 근거

니즈근거현재 대안의 한계
교사의 '소규모·테마형' 체험학습 기획 부담초등교사노조 설문(2026-04, 21,918명) 현장체험학습 추진 '부정' 96.2%, 부담 요소 법적 책임 50%·민원 37%·행정 12%(데일리안 2026-05-04). 전교조 2026 실태조사 체험학습 사실상 중단 7.2%(아시아경제 2026-05-04). 지침은 소규모·테마형 전환(경기일보 2024-05-30)국가유산포털은 종목·시도 드롭다운 폼. "시대", "걸어서 15분", "그중 두 번째"가 불가. 계획서용 목록 추출 없음
지방 유산으로 방문 분산2025년 궁능 관람객 1,781만(+12.9%), 외국인 427만(24%)(헤럴드경제 2026-01-04) → 국가유산청 방문 캠페인 목표네이버·카카오 지도는 POI 이름 검색만. 지정종목·시대 레이어 없음, 공식 해설·음성과 연결 안 됨
현장에서 손이 자유로운 안내답사는 도보·차량 이동 중. 안내판·QR·문화유산 채널은 일방향, 1330은 통역 중심 전화(여행신문)질문을 못 하거나, 지도가 없다

왜 대화+지도가 본질적으로 유리한가: 답사 질의는 조건 교차(종목×시대×유형×거리×편의) → 지시어(그중/두 번째/여기서) → 해설 청취가 한 흐름이다. 폼은 조건을 하나씩 바꿔야 하고 해설은 다른 화면으로 가야 한다. 데이터가 enum(종목·유형·시대)+수치(거리·지정일)+서술(설명문) 혼합이라 정형 필터+임베딩이 함께 필요하다 — 이 엔진의 하이브리드 검색과 정확히 맞는다.

4. 와우 포인트 (데모 첫 3분 — 경주 시작 화면)

  1. [0:30] "지금 화면에서 국보만 남겨줘" → 마커가 즉시 줄고 "지금 화면에 국보 4건이 보여요. 가장 가까운 건 불국사 삼층석탑(320m)". 지도 현황 기반 답변이 정확히 맞는 순간. (네이버·카카오엔 '국보' 레이어가 없다.)
  2. [1:30] "두 번째 거 해설 들려줘" → 카드가 열리며 공식 설명문 요약 두 문장 + 사진, 그리고 국가유산청 공식 음성해설이 지도 위에서 재생된다. "영어로"라고 하면 영문 mp3로 전환. (포털 깊숙이 있던 공식 음성이 대화로 끌려 나온다.)
  3. [2:30] "학교에서 걸어서 30분 안에 조선 시대 유적 3곳으로 코스 짜줘" → 시대·거리·유형으로 추린 3곳이 ①②③ 순서 마커로 찍히고, 패널에 **사전답사 계획서용 목록(이름·지정종목·주소·관리자·연락처)**이 뜬다. "세 번째 대신 더 가까운 걸로" → 교체. 복사/인쇄 버튼.

5. 니즈 선도 포인트 (제안 시 "이것도 되네?")

  1. 향토유산까지 한 지도에 — 국가·시도 지정 15,913건에 전국향토유산 표준데이터 4,301건(2023~26, 좌표 100%, 소개문·조성시대·이미지)을 합치면 '우리 고장'이 읍·면 단위까지 내려간다. 지자체는 자기 향토유산이 국가유산과 같은 화면에 뜨는 것을 처음 본다. (v1 범위 밖, 라운드 2에서 레이어 추가)
  2. 외국어 음성 해설이 이미 있다 — API에 국·영문(문서상 4개 언어) 나레이션이 있다. 외국인 24% 시대에 콘텐츠 제작비 0원으로 다국어 답사 가이드 → 관광공사·지자체 관광과 업셀.
  3. 답사 로그가 성과 지표 — 세션 대시보드(0건 질문·선택 유산·분당 비용)는 활용사업 성과 보고와 교육청 지역화 교육 수요 근거가 된다.
  4. 편의시설 레이어 — 표준데이터(박물관·관광안내소·공중화장실·주차장)를 붙이면 교사의 '안전·편의 점검표'가 자동 생성된다 → 교육청 업셀. (라운드 2+)
  5. 확장 경로 — 1개 시군 파일럿 → 시·도 교육청 공동 활용 → 국가유산청 방문 캠페인 공식 채널 → 외국어판.

6. 대화 시나리오 (멀티턴 12개 — 결과평가 시나리오의 기본 세트)

#대화기대 동작
S1"경주 근처 국보 보여줘" → "그중에서 석탑만" → "두 번째 거 설명해줘"region=경주 + designation=국보 → within_last_results + q/유형 → open_detail(index 2) + 설명문 요약
S2"지금 화면에 보물이 몇 개야?" → "그중 조선 시대 것만 남겨"[화면 상태] 가시 결과 기준 집계 답변 → within_visible + era=조선
S3"여기 근처에 걸어서 15분 안에 갈 수 있는 사적 있어?" → "가장 가까운 순으로"near_me + radius_m 1200 + designation=사적 → sort distance
S4"경주 ○○초등학교 기준으로 걸어서 30분 안에 조선 시대 유적 3곳 코스 짜줘" → "세 번째 대신 더 가까운 걸로"region(커스텀 장소/학교명 미해소 시 되묻기) + era + limit 3 → 교체 재검색
S5"천연기념물 중 나무만" → "가장 오래된 거" → "거기 음성해설 틀어줘"designation=천연기념물 + q=나무/유형 → sort designated_at → play_audio_guide
S6"영어로 설명해줘" → "이건 몇 년도에 지정됐어?"play_audio_guide(lang=en) → 지정일 필드 즉답(tool 없이 화면 상태/상세 근거)
S7"울릉도에 국보 있어?"0건 → "울릉도엔 국보가 없어요. 보물·천연기념물까지 넓힐까요, 경북 동해안 전체로 볼까요?"
S8"이거 누가 관리해?" → "주소 알려줘"상세 근거(ccbaAdmin, ccbaLcad)로 답, 지어내지 않음
S9"아까 본 석탑들 다시 보여줘" → "그중 제일 북쪽"결과셋 유지 상태에서 재필터(within_last_results) → 위도 기준은 미지원 → "북쪽 순 정렬은 안 돼요, 거리순/이름순은 가능해요" 되묻기
S10"비 오는 날 갈 만한 실내 유산" → "휴관일 언제야?"is_outdoor=false + q → 휴관 정보 없음 → "그 정보는 없어요, 관리자 연락처는 …"
S11"고성에 있는 문화재"동명 지역 되묻기: "강원 고성인가요, 경남 고성인가요?"
S12"고마워, 이제 끝낼게"end_session → 작별 인사 → 세션 종료·usage 기록
  • 음성 채널 스모크: S1을 음성으로 1회(가짜 마이크 연결 확인, 인사 멘트·tool 호출 경로).

7. 데이터 전략

소스(실재 검증 2026-10-08~09, 키 불필요)

  • 국가유산청 공개 API: 목록 SearchKindOpenapiList.do(15,913건, 좌표 유효 10,361건=65.1%), 상세 SearchKindOpenapiDt.do(ccbaAsno 13자리; 유형 4단 코드명, 시대 ccceName, 지정일 ccbaAsdt, 소재지 ccbaLcad, 소유 ccbaPoss, 관리자 ccbaAdmin, 수량, 대표 이미지, 설명문 content 266~885자), 이미지 SearchImageOpenapi.do(건당 평균 7.3장, 공공누리 유형 imageNuri A/B/D 혼재, 설명 ccimDesc), 음성 SearchVoiceOpenapi.do?ccbaGbn=kr|en(표본 20/20 mp3, http://116.67.83.213/... HTTP 서버).
  • 보강(라운드 2+): 전국향토유산 표준데이터 4,301건, Wikidata 2,014건·위키백과 intro.
  • 수집 파이프라인(items/heritage-guide/data/): fetch_khs.py(목록→상세→이미지→음성 유무, 워커 8, JSONL 이어받기) → build_domain.py(정규화·LLM 보강→domain.json) → backend/scripts/seed_domain.py(도메인·스키마·agent_config·엔티티 게시·임베딩). 원본 JSONL은 git 제외, 수집 일시·URL은 data/SOURCES.md에 기록.
  • v1 범위: 좌표 유효 10,361건 전체(전국). 좌표 결측 5,552건은 v1 제외(라운드 2에서 주소 지오코딩 + '추정' 플래그). 무형유산은 좌표가 없으므로 대상 아님.

AI-ready field_defs (v1)

keytype값·규칙검색
designationenum국보/보물/사적/명승/천연기념물/국가민속문화유산/국가등록문화유산/시도유형문화유산/시도무형(제외)/시도기념물/시도민속문화유산/문화유산자료✓
categoryenumgcodeName: 유적건조물/유물/기록유산/자연유산/무형유산/등록문화유산✓
subcategorytext(brief)bcode>mcode>scode 경로("정치국방>성>성곽시설")✓(q)
eraenum선사/삼국/통일신라/고려/조선/대한제국·근대/현대/미상 — ccceName에서 규칙+LLM 정규화, 근거 원문 era_text 보존✓
era_texttext원문 시대 표기(예: 조선 태조 7년(1398))–
designated_yearnumber(년)ccbaAsdt 앞 4자리✓
ownershipenum국유/공유/사유/기타✓
sidoenum17개 시도(목록 ccbaCtcdNm → 지명 사전 라벨)✓
sigungutextccsiName–
addresstextccbaLcad–
managertextccbaAdmin–
quantitytextccbaQuan–
is_outdoorboolean유적건조물·자연유산·등록(건조물)=true, 유물·기록유산=false (LLM 보정)✓
has_audio_kr / has_audio_enboolean음성해설 존재✓
audio_kr / audio_entextmp3 URL(프록시 경유 재생)–
imageimage대표 이미지 URL(공공누리 A/B만; D는 링크만)–
image_licenseenumA(1유형)/B(2유형)/C/D–
imagestext추가 이미지 JSON(최대 5, 설명·유형)–
descriptiontext(embed, brief)공식 설명문 원문✓(q)
summary_kidtext(embed)초등 5학년 눈높이 두 문장 요약(LLM 생성, "요약" 표시, 수치는 원문에서만)✓(q)
tags(derived)derived탑(subcategory∋탑), 성곽, 사찰, 고분, 나무(천연기념물×식물), 왕릉, 서원·향교, 야외(is_outdoor), 해설있음(has_audio_kr)✓
locationgeo좌표✓

보강 규칙(LLM 배치, gpt-4.1-mini): era 정규화·is_outdoor 보정·summary_kid 생성·kid 태그 후보를 한 번의 JSON 호출로, 입력은 설명문+유형코드+시대 원문만, 출력에 근거 문장 인용 필드를 두어 환각을 걸러낸다. 수치(연도·수량)는 원문 값만 사용. 비용 ≈ 10k건 × ~700 토큰 ≈ $3. 프록시: 이미지(http://www.khs.go.kr/...)와 음성(http://116.67.83.213/...)은 https 화면에서 혼합 콘텐츠가 되므로 백엔드 /api/proxy/image|audio?url=(호스트 화이트리스트, 캐시 헤더)로 중계. 음성은 1회 재생 시 MinIO 캐시. 라이선스·출처: 카드·상세에 "출처: 국가유산청 국가유산포털" 상시 표기, 이미지별 공공누리 유형 아이콘, D(변경·상업 금지)는 썸네일 대신 원문 링크. 설명문·음성도 출처 표기. 상업 전환 시 1유형 이미지만 사용. 품질 체크: 좌표가 시도 범위 밖인 항목 제거, 중복 asno 제거, 설명문 100자 미만 항목에 summary 생성 금지, 24개 회귀 시나리오 통과.

8. 지도의 역할

  • 답사는 "어디서 어디까지 걷나"가 본질 → 반경·화면(bbox) 질의, 번호 마커(=대화의 n번째=코스 순서), 클러스터(경주·안동 밀집).
  • 초기 뷰: 경주 중심(35.84, 129.21, 줌 12) — 파일럿 지자체. 사용자 위치 허용 시 현 위치.
  • 화면 현황 질문은 클라이언트가 보고하는 가시 결과(visible_ids)로 답한다(엔진 M13). "지금 화면에서 ~만"은 within_visible 재필터(엔진 추가).
  • 선택 시 카드: 사진·지정종목 배지·시대·거리·요약, 음성 재생(국/영), 출처. 코스 모드: ①②③ 순서 마커와 목록.

9. UI/UX 컨셉

  • 톤: 한지 톤 종이(#fbf8f3)에 단청 적색 포인트(#8b2e2e), 짙은 먹색 글자. 각진 라인, 넉넉한 여백(기존 화이트 큐브 시스템의 변주). 지정종목 배지는 국보·보물만 적색 채움, 나머지는 라인.
  • 데스크톱: 좌측 400px 대화 패널(스레드·스타터·입력·마이크), 중앙 벡터 지도(OpenFreeMap liberty) 번호 마커, 하단 결과 카드 스트립, 우측 상세 시트(사진 갤러리 최대 5·설명문·음성 플레이어·관리자·출처).
  • 모바일: 지도 상단 48vh, 결과 카드 띠, 하단 50vh 대화 시트. 상세는 전체 화면.
  • 첫 메시지: "안녕하세요, 국가유산 답사 길잡이입니다. 경주 지도를 띄워뒀어요. '근처 국보 보여줘'처럼 말씀해 보세요." + 스타터 4개(§item.json).
  • 음성/텍스트 전환: 같은 스레드. 마이크 버튼 토글, 음성 전사는 🎙 표시. 음성 중에도 카드·시트는 동일.
  • 코스 패널(와우 3): 결과 상단에 "코스로 보기" 토글 → 번호 순서·총 도보 거리 표시, "목록 복사" 버튼(계획서용 텍스트).
  • 근거 칩: 답변 아래 "검색: 경주 · 국보", "상세 열기: 2번째" 같은 실행 근거(평가자·교사의 신뢰).
  • 접근성: 키보드 입력, 포커스 링, 대비 4.5:1, 음성 상태 텍스트 표시.

10. 비즈니스 관점

  • 왜 지금: 국가유산청 2026 예산 +8%에 활용·방문·교육 항목이 명시(211억·87억·1,067억), 궁능 관람객 역대 최대·외국인 24%(지방 분산 과제), 체험학습이 소규모·테마형으로 재편(교사용 기획 도구 수요), 국가유산청의 AI 챗봇 집행 이력.
  • 과금 가설: 지자체 파일럿 구축 3,0005,000만 원(향토유산 통합·브랜딩·대시보드) + 연 유지 1,0002,000만 원(데이터 갱신·음성 사용량). 교육청은 교육지원청 단위 연 구독. 가격 앵커: 1330 문자챗 시스템 21.62억(2025), 경기 광주시 AI 콜봇·챗봇 5.6억(2025).
  • 확장: 시군 → 시도 → 국가유산청 공식 채널 → 외국어판(음성 기존재) → 박물관·전시 연계 → 답사 교안 PDF 자동 생성.
  • 경쟁: 국가유산포털(폼), 지자체 생성형 AI 관광 챗봇(단양 등, 텍스트 중심·지도 약함), 네이버·카카오(범용 POI). 차별점: 지도 현황 기반 멀티턴 + 공식 해설·음성 통합 + 교사용 코스 출력.

11. 리스크와 대응

리스크대응
좌표 결측 35%(5,552건)v1 제외, 라운드 2에서 주소 지오코딩 + '추정' 플래그·답변에 명시
이미지 공공누리 D유형 혼재A/B만 썸네일, D는 링크, 전 이미지 출처·유형 표기
음성 mp3 HTTP/IP 서버백엔드 프록시 + MinIO 캐시, 실패 시 "해설 파일을 지금 불러올 수 없어요" 폴백
설명문이 성인·전문가 문체summary_kid(LLM 요약, "요약" 표시) + 원문 병기
지도 현황 집계 오답(평가 치명 항목)가시 결과 주입 + within_visible + 회귀 시나리오 S2 자동 검증
학교명 등 커스텀 장소 미해소agent_config.places에 경주 초등학교 10곳 등록(파일럿), 미해소 시 되묻기
API 변경·중단원본 JSONL 스냅샷 보관(수집일 기록), 재수집 스크립트

12. 성공 기준 (결과평가에서 확인)

  • S1~S12 전부 기대 동작, 특히 S2(화면 집계)·S7(0건 되묻기)·S11(동명 지역) 오답 0.
  • 답변의 모든 수치·이름이 tool 결과/화면 상태에 존재(환각 0).
  • 텍스트 첫 반응 ≤ 3초(p50), 콘솔 오류 0, 네트워크 실패 0, 모바일 뷰 정상.
  • 음성 채널 연결·인사·tool 호출 1회 확인.
  • 와우 3개가 데모 3분 안에 재현(스크린샷 증거).
  • 데이터: 게시 엔티티 ≥ 10,000, 임베딩 100%, 음성 보유율 집계 표시.
리서치 (research.md)

리서치 — 아이템 1 선정 (2026-10-09)

원문 리서치: items/_research/round1-public.md(공공·지자체 축, 후보 8), items/_research/round1-commercial.md(민간·상업 축, 후보 8). 두 축의 리서처가 독립적으로 실제 curl/python 호출로 데이터 실재를 검증했고, 실패한 소스도 그대로 기록했다. 이 문서는 두 축의 상위 후보를 비교해 아이템 1을 고른 근거다.

1. 후보 비교 (리서처 셀프 예비 채점, §6-1 루브릭 /100)

축후보제안 대상검증된 데이터예비 점수가장 큰 리스크
공공A. 우리 고장 국가유산 답사 길잡이국가유산청 / 시도교육청 / 지자체 문화관광과국가유산청 무키 API 15,913건(좌표 10,361), 설명문·이미지(평균 7.3장)·국영문 음성해설, 향토유산 표준 4,301건(좌표 100%)86좌표 결측 35%, 이미지 공공누리 유형 혼재, 음성 mp3가 HTTP/IP 서버
상업C3. 반려동물 응급·동반 지도펫보험사·펫 플랫폼반려동물 동반 가능 시설 70,650건(좌표 100%, 운영시간·크기·요금·제한사항)82동물병원 12,673행 중 고유 4,487곳(중복 1,423그룹), 설명문 평균 6.6자(서술 재료 거의 없음), 카페·펜션 2022년 자료
공공B. 폭염·재난 대피 음성 길잡이행안부·지자체 안전과무더위쉼터 42,226 등81표준데이터 2018~2020, 커버리지 45%/30%
상업C1. 프랜차이즈 출점 지도가맹본부 점포개발팀상가정보 2,772,484건80와우가 뷰포트 집계 정확성에 의존, 매출·유동인구 없음
공공C. 시니어 생활복지 음성지도지자체 복지과경로당 50,000 등 2026 최신79B와 사용자·클라이언트 중복
상업C2. 캠핑 컨시어지캠핑 예약 플랫폼야영장 5,138건(33속성)76좌표 없음 → 41.7%만 매칭

2. 선정: A. 우리 고장 국가유산 답사 길잡이

오케스트레이터 판단 근거(루브릭 축별):

  1. 데이터 실현성·AI-ready(15) — 유일하게 "좌표 + 수백 자 공식 설명문 + 유형/시대/지정일 enum + 이미지 + 국영문 음성해설"이 키 없이 한 API에서 나온다. 반려동물 데이터는 조건 필터엔 강하지만 설명문이 평균 6.6자라 "왜 좋아?/뭐야?" 류 후속 질문에 답할 재료가 없다 — 사용자가 지적한 "AI-ready 데이터로 자연어 대화에 적합한 결과"에 가장 가까운 쪽은 A.
  2. 와우(20) — "화면에서 국보만 남겨" + "두 번째 해설 들려줘"(공식 음성 재생) + "30분 코스"는 세션 결과셋·enum·거리·커스텀 tool만으로 재현 가능하고, 네이버·카카오 지도엔 없는 레이어(지정종목·시대·공식 해설)다.
  3. 대화+지도 적합성(15) — 답사 질의는 조건 교차 × 지시어 × 해설 청취가 한 흐름이며, 지도 현황("지금 화면에 보물 몇 개?") 질문이 자연스럽다. 엔진이 이번에 보강한 가시 결과 주입·region 해소를 정면으로 검증한다.
  4. 비즈니스(10) — 돈 내는 주체와 예산 항목이 공개돼 있다(국가유산청 2026 예산 1조4,971억 중 활용사업 211억·방문캠페인 87억·교육 1,067억). 국가유산청은 2024년 AI 챗봇 예산 집행 이력이 있어 "대화형"에 저항이 없다. 교육청은 현장체험학습 재편(소규모·테마형)으로 교사용 기획 도구 수요가 있다.
  5. 포트폴리오 다양성 — 레거시(산)와 겹치지 않고, 2번째 아이템으로 상업 축(C3 반려동물 또는 C1 프랜차이즈)을 올리면 B2G/B2B가 섞인 포트폴리오가 된다.

보류한 후보의 재사용 계획: C3 반려동물(데이터 items/_data_raw/pet_facilities_20250324.csv 보존)은 아이템 2 후보 1순위. C1 프랜차이즈는 뷰포트 집계가 결과평가에서 검증된 뒤 아이템 3 후보.

3. 선정 컨셉의 핵심 근거 (요약 — 상세는 round1-public.md §2-1)

고객 pain

  • 초등교사노조 설문(2026-04, 21,918명): 현장체험학습 추진에 '부정' 96.2%, 부담 요소 법적 책임 50%·학부모 민원 37%·행정 12% (데일리안 2026-05-04). 전교조 2026 실태조사: 체험학습 사실상 중단 7.2% (아시아경제 2026-05-04). 지침은 '소규모·테마형' 전환(경기일보 2024-05-30) → 학교 근처 답사지를 빠르게 조합하는 도구가 없다.
  • 2025년 4대궁·종묘·조선왕릉 관람객 1,781만(+12.9%), 외국인 427만(24%) (헤럴드경제 2026-01-04) → 지방 유산 분산이 국가유산청 '방문 캠페인'의 목표.
  • 현재 대안: 국가유산포털은 종목·시도 드롭다운 폼, 네이버·카카오는 지정종목·시대 필터 없음, 안내판·QR은 일방향, 1330은 통역 중심 전화.

데이터 (2026-10-08~09 실측)

  • 목록 API SearchKindOpenapiList.do?ccbaCncl=N&pageUnit=1000&pageIndex=N → totalCnt 15,913, 좌표 유효 10,361(65.1%). 종목별 좌표/전체: 국보 290/369 · 보물 1,486/2,474 · 사적 517/569 · 천연기념물 380/494 · 국가등록 578/983 · 국가민속 267/327 · 시도유형 2,502/4,363 · 문화유산자료 2,246/2,950 · 시도기념물 1,428/1,589 · 시도민속 411/475.
  • 상세 API(ccbaAsno 13자리) → 유형 4단 코드명(gcode/bcode/mcode/scode), 시대(ccceName), 지정일(ccbaAsdt), 소재지(ccbaLcad), 소유(ccbaPoss), 관리자(ccbaAdmin), 수량(ccbaQuan), 대표 이미지(imageUrl), 설명문(content, 표본 266~764자).
  • 이미지 API → 건당 평균 7.3장, 공공누리 유형(imageNuri) 혼재. 음성해설 API(ccbaGbn=kr|en) → 표본 20/20 mp3 존재(HTTP/IP 서버 → 백엔드 프록시 필요).
  • 향토유산 표준데이터(15021147) 4,301건, 좌표 100%, 소개문·조성시대·종류·이미지 URL 포함.
  • 보강: Wikidata 지정유산 2,014건(한국어 위키백과 1,999, 이미지 1,398), 위키백과 extracts API.
  • 라이선스: API 인증키 불필요, 이미지는 공공누리 유형별 출처 표시(상업 전환 시 1유형만), 표준데이터 공공누리 1유형, Wikidata CC0, 위키백과 CC BY-SA.

비즈니스

  • 과금 가설: 지자체 파일럿 구축 3,0005,000만 원 + 연 유지 1,0002,000만 원(데이터 갱신·음성 사용량). 가격 앵커: 1330 문자챗 시스템 21.62억(2025), 경기 광주시 AI 콜봇·챗봇 5.6억(2025).
  • 확장: 시군 파일럿 → 시도 교육청 → 국가유산청 방문 캠페인 공식 채널 → 외국어판(음성해설 기존재).

4. 참고 링크

5. 사전평가 1회차 후 사실 보강 (2026-10-09, data/RESEARCH_v2_facts.md)

  • 공식 앱 '나만의 국가유산 해설사': 반경 20m~5km 검색·4개 국어 텍스트 해설·사진·방문인증 스탬프. 코스·대화·음성·교사용 기능 없음. 평점 2.7/5(20), 2026-10 현재 스토어 404·웹(my.heritage.go.kr) 축소 전환. 별도 디지털 여권 앱 없음(종이 여권+앱 스탬프 캡처). 2026 캠페인 13코스 100거점·혜택 5억.
  • 금액 앵커: 1330 문자챗 21.62억은 2020-08-27 공시(이데일리). 경기도 챗봇 구축 4.17억(2025)+운영 7.66억(2025), 경주 ChatGTS 10억(국비5+시비5, 2023), 경남 AI 관광플랫폼 국비 10억(2026), 경기 광주시 5.6억은 도비 공모 보조금, 국가유산진흥원 챗봇 2억은 내부 업무용(2024), 관광공사 역사문화형 AI 지역관광 과제 5천만~1억(2026), 소규모 다국어 홈페이지+챗봇 낙찰 2,750만(2026).
  • API 이용 조건: API 전용 약관 없음, 누리집 저작권정책(공공누리 유형·출처표시)+공공데이터법 3조④(영리 이용 허용)+'이용허락범위 제한 없음' → 유료 B2G 가능, 출처표기·이미지 유형 분기 의무.
  • 교육 구매 구조: 2026-1학기부터 학습지원 SW는 학운위 심의 후 학교장 확정(학교 단위 구매). 구청 교육경비보조금(동대문구 교당 최대 500만, 2026), 교육청 체험학습 지원사업(서울 2026 본예산 10.7억+추경 18억, 사전답사 차량 1.7억). '교육지원청 연 구독' 근거 없음.
  • 예산 집행 구조: 활용사업 211억=지자체 공모 보조(2026 379건, 건당 국비 1,6003,000만), 방문 캠페인 87억=진흥원 운영. 국가유산청은 202627 총 30억 다국어 AI 해설(4대궁·종묘)·46만 건 학습데이터·RAG DB 직접 구축 → 현실 경로: 시군 활용사업 번들 / 시군 소규모 단독 용역 / 데이터·실증 파트너.
변경 이력 (CHANGELOG.md)

CHANGELOG — heritage-guide

2026-10-09 · 결과평가 4회차 통과 / v10 보완

  • 독립 P1 74 / P2 85 / P3 88 → 평균 82.3, 게시. 472개 증거와 점수 원문을 경로 검증 후 영구 보존했다.
  • P1 추가 실패: 묶음·버튼 제외 뒤 코스 공개 번호, 명시 학교 추천 기준점, 추천 네 곳의 실제 화장실 비교. 대표 ID 해소·학교 사전 우선·추천 집합 4개 고정·실제 최솟값으로 개선했다.
  • P2의 이전 hover 팝업과 입력창 접근성 이름도 보완했다. 실제 음성·API·브라우저 증거는 self-check-v10에 기록하며 새 독립 점수를 만들지 않는다.

2026-10-09 · 기획 v1

  • 리서치 2축(공공·상업) 비교 후 선정. plan.md v1 작성. 원본 수집(fetch_khs.py) 백그라운드 시작.

2026-10-09 · 사전평가 1회차 — 평균 71.3 (P1 73 / P2 71 / P3 70) 미달

  • 치명: '연락처' 약속(데이터 없음) · 데모 수치 허구(국보 4건/320m) · '지금 화면' 정의와 전체/표시 건수 · 공식 앱 누락 · 예산 라인·가격 앵커 오류
  • v2에서 반영: 포지셔닝 재정의(공식 데이터 위 교사용 코스·대화형 필터 모듈), 조달·가격 bottom-up, 화장실·주차 ○× 열 v1 편입, 유적 우선 모드, 시대 '추정' 배지, 화면 규칙 명문화, 음성·오디오 상태 설계, 교사 실발화 시나리오

2026-10-09 · 기획 v2 확정 — 사실 보강(RESEARCH_v2_facts.md) 반영

  • 공식 앱 기능·상태, 1330 2020년 정정, 지자체 챗봇 단가 앵커, API 이용 조건, 교육 구매 구조(학교 단위), 예산 집행 구조(번들 경로)로 §2·§3·§5·§10·§11 재작성 → 2회차 사전평가 착수

2026-10-09 · 사전평가 2회차 — 평균 74.3 (P1 74 / P2 75 / P3 74) 미달

  • 치명: 대본≠규칙≠데이터(사리장엄구 유물·화장실 300m 하드 필터), 가격 산식 모순·수의계약 한도·활용사업 기선정, 경주시 AI 투자 누락, 편의시설 커버리지 미고지
  • v3 반영: 실행 결과 수치로 대본 재작성, 편의시설은 거리 열·정렬(하드 필터 금지)+'정보 없음'+고지, 코스 묶기·빼기(exclude_indexes), stop_audio, 시대추정 태그, QR 딥링크, 선택 시 지도 고정, 가격(월 3,000세션 포함·초과 종량)·조달(1인 견적 소액수의 1,900만)·2028 사이클, 경주시 ChatGTS·AI-XR 보완 포지셔닝, 교당 30만 구독 설계

2026-10-09 · 기획 v3 확정 — 전수 수집 완료(10,217건·임베딩 100%·음성 100%), 대본을 실행 결과로 교체 → 3회차 사전평가 착수

  • 데이터: 상세 10,361행(오류 8건), 쉬운 요약 10,193건($4.56), 시대추정 6,015건 태그, 편의시설 거리(1.5km 밖 '정보 없음'), 경주 화장실 300m ○ 52/295(17%)·정보 없음 104건 고지
  • 엔진·셸: exclude_indexes, stop_audio, 코스 묶기·빼기, 선택 시 지도 고정, QR 딥링크, 출처·주석 표기, 겹침 마커 펼치기, 카메라 패딩

2026-10-09 · 사전평가 3회차 — 평균 73.3 (P1 76 / P2 69 / P3 75) 미달 → v4

  • 엔진 규칙화: 야외 우선 서버 기본값(include_indoor 해제), 제외 재검색 기준점 고정·제외 누적, 목록 동기화 시 필터 유지, 결과 고지 노트(박물관 소장·시대추정·편의시설 결측), 검색 파라미터 예시 규칙, 화면 상태에서 직전 필터 목록 제거(앵커링 방지)
  • 셸: 코스 패널 자동·지도 하단 배치·출발점=검색 중심·최근접 순서·경로선, '−'는 서버 제외 경로, 해설 시 상세 열림, 새 검색 시 플레이어 닫힘, 모바일 가림 영역 동적, QR 초기 뷰 확정, 카드 배지, 빈 상태 카드, 복사 폴백·TSV·관리자 열
  • 데이터: 영문 음성 실존 검사(39%), 시대 파서 강화(추정 47%), 유물 유형 규칙, 자연유산 시대 미추정
  • 모델: gpt-5-mini(reasoning minimal) 확정 — 회귀 18/18, p50 3.0s (gpt-4.1-mini는 앵커링으로 15~17/18)
  • 사실 정정: 경주시 부서명, AI-XR 주관 딥파인, 근거 없는 '경북 15건·40억' 삭제, 타일 CDN 자체 호스팅 항목, 파일럿 공수, 교육 경로 가정

2026-10-09 · 사전평가 4회차 — 평균 75.0 (P1 77 / P2 72 / P3 76) 미달 → v5

  • 엔진: 코스 서버 조립(app/bff/course.py, payload.course — 패널·경로선·답변 단일 진실), 커스텀 장소·학교 기준점 고정(발화/q 기반, 상위 지역 무시), 코스 턴 가까운 10건·거리순, 코스 안 정렬 집합 유지, 명시 조건 전용 파라미터(explicit_only), 근처 2km(near_me_radius_m), 고지 1회(result_notes.once), 열린 상세 요약(context_fields), 0건 완화 문장·지침 누출·이중 번호·목록 번호 정합 서버 보정, extra_rules 8개 상한 해제(30), 전국 학교 12,004곳 지명 사전 + 동명 근접 해소
  • 셸: 코스 패널 실측 높이 가림 영역·패널 확정 후 재맞춤, 패딩 먼저 반영 후 fitBounds, 코스 모드=서버 상태, 상세 시트·플레이어 통합(네이티브 audio 제거·시트 버튼), 상세 큐레이션·hidden 필드, 근거 칩 한글 라벨, 모바일 코스 모드(입력 바+패널 40dvh)·모바일 상세는 플레이어 남김, 카드 띠 1번 리셋, 시트 열림 시 하단 패널 폭 축소
  • 데이터: 관리자 마스킹 개인명 1,767건 → '개인(비공개)', 표시 숨김 플래그 10개, 스키마 v4 재시드, 스타터 '5학년' 게시본 반영
  • 회귀: 20턴(학교 코스·5학년 추가) + 답변 품질 검사(금지 문구·번호 정합·0건 문구) → 20/20, p50 3.1s; 브라우저 7세션 와우 대본 동일 재현, 모바일·QR 확인
  • 문서: 조달 단일 범위 1,900만(노임단가 산출표), 3년·3시군 가정표, 경주AI&미디어센터 개편(2026-07) 시나리오, S8 부서명·S15 정합, 대시보드 실물 캡처, 1차 근거는 제안 전 필수 과제로 명시

2026-10-09 · 사전평가 5회차 — 평균 78.0 (P1 78 / P2 78 / P3 78) 미달 → v6

  • 엔진: 코스 모드 정렬·제외 턴 답변 서버 조립(reply_override), "N번째 대신/빼고" 서버 지름길(모델 미경유), 코스 모드 '세 번째'=정류장 3(묶음 전부)·제외 후 순서 유지(splice), "그중 두 번째"=직전 나열의 두 번째(치환+해석 노트), 답변 번호 정규화("1. (6)"·"2. 3."·인라인 나열 → 화면 순번 줄 목록), 새 검색 정렬 비계승·코스 턴 거리순 강제, 결과 목록=정류장 순서 재배열, 실내(박물관 소장) 제외 건수 고지, 입장료·전화·휴관 '없어요' 뒤 관리자 안내 보충, 미지 파라미터 무시, 반경 표기 2.5km, 코스 요청 턴의 상세 열기 무시
  • 셸: 코스 모드 마커=정류장 번호(묶음 동일 번호), 모바일 코스 모드 마지막 답변 바(탭→대화), 패널 '−'·'코스로 보기' 서버 경로+스레드 기록, 코스 모드 십자 제거, 쉬운 요약 첫 본문(body), 모바일 data-sheet 폭 버그·시트 flex, 패널 마커 번호 병기 제거
  • 데이터: 유형 규칙 '진' 오매칭 수정(왕릉·릉 66건 → 고분·왕릉), 주차장 이름 라벨 분리, 스키마 v5 재시드
  • 회귀: 23턴(관리자·전화번호·"그중 두 번째"·정렬 턴 코스 토큰·거리순 검사) 23/23, p50 3.1s; 브라우저 데스크톱 5·5학년 6·모바일 2·QR 1
  • 문서: 손익표 재계산(운영 10인일/년, 3호 운영 Y4), 제안가=산출표 1,900만(직접경비 323만), 가격/원가 구분, §6 회귀 대응 범위 정직 표기, kind 미해소 고지, LOOP.md C의 5회 한도는 2번째 아이템부터(사용자 원문 우선)

2026-10-09 · 사전평가 6회차 — 평균 80.0 (P1 79 / P2 79 / P3 82) 통과 → 개발 마감(v6.1) → 결과평가

  • 엔진: tool-call 경로(패널 '−'·토글) 턴 상태 초기화·reply_override 소거(다음 턴 오염 제거), 제외 문장은 이번 호출 제외 시에만, 텍스트 세션 토큰 유휴 강제 종료 제외(CO-6은 음성만), 서수 재해석 턴당 1회+해석 인덱스(resolved_index) 노출, 되묻기 뒤·결과 없을 때 서수 지름길 금지, 출발점 없는 코스 금지, "빼고"는 보충 없음·"대신"은 다음 후보 보충+설명, 추천 턴 무요청 상세 무시, 나열보다 큰 서수 되묻기, '노트:'·해석 노트 누출 제거, 해설 기본 대상=열린 상세, 완화 라벨 "지정종목 '국보' 조건 제외", 정지 답변 어조
  • 셸: 초기 결과·기준점 세션 등록(첫 턴 정렬·빼기가 화면 결과에), 세션 만료 자동 재연결·복원, 모바일 코스 CSS 충돌 제거(32dvh·답변 바 54px 위), '대화 보기'는 코스 유지(스레드 펼침/복귀), 근거 칩 해석 인덱스, alert→토스트, 한글 아이브로우, main·h1 랜드마크·대화 패널 우선 탭 순서·칩 11px, TSV m 단위
  • 데이터: 설명문 HTML 이스케이프·태그 정제(272건), 재시드
  • 회귀 24턴(초기 결과 등록·첫 턴 정렬) 24/24 p50 2.8s; UI 프로브('−'·토글·유휴 90초·모바일·5학년) 통과
  • 문서: v6.1 정정(대본 수치 재현 순서, 2·3호 구축 1,100만 산식, ChatGTS 합산 표기, 앵커 △)

2026-10-09 · 결과평가 1회차 — 평균 69.0 (P1 71 / P2 67 / P3 69) 미달 → v7

  • 독립 브라우저 평가 3명 완료. 원본 JSON·프롬프트·대화·이미지·PDF를 저장하고 집계하여 결과평가 2회차로 상태 이동.
  • 엔진: 단순 가시 건수·나열 N번째 소개·공식 해설을 서버 실행 결과로 답함. 최근 비코스 검색 8개 복원, 현재 지도 중심 새 검색, 방향 정렬 미지원 안내. 행정구역 전체 통계는 반경/야외 기본값/표시 상한과 분리. 결측 enum 옵션이 필터로 들어가는 문제 제거.
  • 코스: 첫 코스 답변도 서버가 조립하고 2번째 LLM 호출 생략. 입력 도보 시간은 후보 직선 반경이며 전체 코스 시간이 아님을 답변·패널·TSV·인쇄에 표기.
  • 셸: QR와 카드 선택을 서버 상세 컨텍스트에 등록, 인쇄 전용 표로 장소 행 복원, 모바일 사진 높이·44px 코스 제외 버튼·결측 주차거리 표시.
  • 문서: v7 12섹션 추가, 와우의 실제 2번 대상·7정류장(10건) 정정, 개발 로그와 고객 성과 구분. 응답 완료 시간과 지도 안정화 시간을 측정 도구에서 분리(첫 토큰 지표 아님).
  • 루프: 2호 이후 5회 한도·게시 유지/보관 판정과 item 게시일 기록을 집계기에 구현, 6개 독립 임시 상태 테스트 통과.

2026-10-09 · 결과평가 2회차 — 평균 73.0 (P1 74 / P2 72 / P3 73) 미달 → v8

  • 짧은 행정 통계 후속 범위 유지, 실제 반환 목록 기준 검색·정렬·추천 답변, 이름 검색과 선택 QR 상세 지름길, 전국 요청 지역 해제, 0건 안내 교정.
  • 공식 분류를 물리적 실내외·박물관 소장과 분리. 첨성대·칠불암 현장 자료 확인, 공식 소분류 우선 유형·방문 구분·근거 추가. 경주 국보 27건 중 현장 후보 15 / 제외 12이며 실내 수 미확인.
  • 코스 팝업 번호 동기화·모바일 안내 접기·최신 문서 접기·표 스크롤·이미지 완전 수신/대체 표시.
  • 단위 검사 266개와 API 55턴, 9턴 대본·학교 추천 각각 5회, QR·인쇄 7행·모바일·음성 연결 1회·DB/로그를 확인. 실행 증거는 result-evals/self-check-v8/; 독립 결과평가 3회차를 준비한다.

2026-10-09 · 결과평가 3회차 78.0 (75 / 75 / 84) 미달 → v9

  • 단일 검색 결과의 분류 질문을 실제 상세로 연결하고 0/다중 결과는 선택 요청. 이전 대화 근거 재사용·미실행 완료 안내를 차단한다. 기본 정렬·전국 게시 집계·자료별 기준일/미지원 복합 요청 안내를 설정과 실제 실행으로 답한다.
  • 272개 단위 검사·API 73턴·분류 전환+정렬 5회·와우 1회 재확인·음성 연결 1회. 독립 증거 round-3와 개발 self-check-v9 보존 후 결과평가 4회차로 진행한다.