주요 결정과 시행착오
이유가 기록된 설계 결정
팀 문서에 이유가 적힌 결정과 시행착오만 모았습니다. (근거: 허브 지식베이스, 팀 저장소 docs/)
1. 계산은 코드가, 설명만 AI 가
- 결정: 비교표와 계산표를 LLM 없이 결정론 코드로 만들고, 서버가 입력 13필드로 다시 계산한다.
- 이유: 숫자 환각을 구조적으로 막고, LLM 생성이 실패해도 계산표와 확인 목록이 남게 하려는 것이다.
2. 블록체인을 범위에서 제외
- 결정: 2026-09-18 에 제외했다. 상담자료 무결성용
content_hash컬럼은 스키마에 있지만 쓰지 않는다. - 이유: 지원 트랙의 공식 예시 3종에 블록체인 항목이 없어, 억지로 넣기보다 상담 동선 완성을 택했다.
3. 상권분석을 전면 대화형으로 바꾸지 않음
- 결정: 상권 진단을 보조 경로로 내린다.
- 이유: 서울의 추정매출·유동인구에 기대는 방식은 대구 데이터로 재현할 수 없다. 없는 데이터로 있는 척하지 않겠다는 결정이다.
4. 개업 30일 안에 끝난 건은 집계에서 제외 (DEC-023)
- 결정: 개폐업 집계에서 뺀다.
- 결과: 2025년 개업이 5,755에서 4,780건으로, 폐업이 6,259에서 5,301건으로 줄었고, 폐업률이 100%를 넘던 동 2곳이 사라졌다.
5. 절대 판정 대신 상대 순위 (DEC-024)
- 결정: 위험 점수를 「진입 고위험」 같은 절대 판정이 아니라 「대구 142개 동 가운데 몇 번째」로 보여 준다.
6. 근거가 없는 것은 「추정」·「미확인」으로 표시
편의점 개폐업 이력이 공공데이터에 없어 담배소매인 지정·폐업 기록으로 갈음하고, 화면과 리포트에 「담배소매인 기준」임을 밝혔습니다. 어린이집·학원·부동산 폐업은 원천이 폐업분을 주지 않아 「추정」으로 표시합니다. 금융상품은 iM뱅크 취급 근거를 확인한 것만 1군으로 둡니다. 류준이 맡은 「데이터 신뢰 표시」가 이 줄기에 있습니다.
시행착오
약관이 구현을 되돌렸다. 브이월드 Geocoder 약관이 결과 저장을 금지하는 것을 원문으로 확인하고, 이미 저장한 좌표를 전부 통계청 SGIS 로 다시 변환해 교체했습니다.
적재만 된 데이터는 없는 것과 같다. 주민등록 인구 4만 8천 행, 임대료 786행, 충격 이벤트 29건, 지하철 승차 2,632행이 API 도 화면도 없이 DB 에만 있었습니다. 화면에 붙이는 작업을 따로 잡았습니다.
좌표가 없으면 지표에 잡히지 않는다. 학원 8,002건, 부동산 4,629건과 인허가 7업종의 좌표 없는 5,547건을 지오코딩해 지표 업종을 11종으로 늘렸습니다.
먼저 배포하고 배포된 주소에서 검증했다. 로컬에서는 통과하던 흐름이 운영 프론트와 백엔드가 섞이면 어긋났습니다. 결함 7건은 이때만 나왔고, 그중 「화면은 만원 단위인데 문서는 원 단위 전체 자릿수」가 있었습니다.
LLM 이 눈앞의 수치를 두고 「수치가 없다」고 썼다. 상담자료 첫 문단에서 10명 전원에게 나왔습니다. 계획 수치를 프롬프트에 그대로 싣고 「없다고 쓰지 마라」를 명시해 0명으로 줄였습니다.
미확인 사실. 대구신용보증재단 사이트는 중간 인증서를 보내지 않는 TLS 설정 오류로 접근되지 않았습니다. 검증을 끄지 않고 발급자 정보로 체인을 복원해 원문을 확인했고, 그 상품 4건의 취급은행은 여전히 확인하지 못한 채 「미확인」으로 남아 있습니다.