DEVELOPMENT JOURNAL

첫 배포 뒤 가상 고객 10명으로 흐름을 검증하고, 남은 데이터를 화면에 연결했습니다

2026.09.19localhost:daegu개발 기록

전날의 사전상담 전환·모델 평가 이후 하루 동안의 기록입니다. 코드 프리즈(9월 19일 18:00)는 전날 해제된 상태라 이날은 배포와 검증, 데이터 연결에 썼습니다.

무엇을 정했나

  • 먼저 배포하고, 배포된 주소에서 검증합니다. 프론트엔드는 Vercel, 백엔드는 이 노트북의 서버를 Cloudflare Tunnel로 내보내는 구조로 localhostdaegu.cloud에 올렸습니다. 도메인 네임서버를 Cloudflare로 옮겼고, 블로그 주소 053은 이전 동안 끊기지 않았습니다.
  • 상권분석 화면을 전면 대화형으로 바꾸지 않습니다. 다른 서비스와 비교한 결과, 서울의 추정매출·유동인구에 기대는 방식은 대구 데이터로 재현할 수 없고 전날 정한 “계약 전 자금 사전상담” 동선과도 어긋났습니다. 대신 지도·사전상담·AI 분석 화면의 표와 그래프를 다듬었습니다.
  • 개업 30일 이내에 끝난 건은 개폐업 집계에서 뺍니다(DEC-023). 위험 점수는 “진입 고위험” 같은 절대 판정 대신 “대구 142개 동 가운데 몇 번째”라는 상대 순위로 보여 줍니다(DEC-024).
  • 편의점 지표는 담배소매인 지정 현황을 대신 씁니다. 편의점 개폐업 이력이 공공데이터에 없어 담배소매인 지정·폐업 기록으로 갈음했고, 화면과 리포트에 “담배소매인 기준”임을 밝힙니다. 어린이집·학원·부동산의 폐업은 원천이 폐업분을 주지 않아 “추정”으로 표시합니다.
  • 브이월드 지오코딩 결과는 저장하지 않습니다. 브이월드 Geocoder 약관이 결과 저장을 금지하는 것을 원문으로 확인해, 좌표 변환은 통계청 SGIS로 통일하고 낮에 저장했던 브이월드 결과는 SGIS로 다시 변환해 교체했습니다.

왜 이렇게 했나

  • 운영 주소에서 돌려 봐야 실제 결함이 나옵니다. 로컬에서는 통과하던 흐름이 운영 프론트와 백엔드가 섞이면 어긋날 수 있고, 은행에 가져갈 문서의 단위 같은 문제는 화면을 끝까지 봐야 보입니다.
  • 적재만 된 데이터는 없는 것과 같습니다. 주민등록 인구 4만 8천 행, 임대료 786행, 충격 이벤트 29건, 지하철 승차 2,632행이 API도 화면도 없이 DB에만 있었습니다.
  • 좌표가 없으면 지표에 잡히지 않습니다. 학원 8,002건과 부동산 4,629건은 원천에 좌표가 없어 행정동 지표에서 빠져 있었고, 인허가 7업종에도 좌표 없는 행이 5,547건 있었습니다.

이번 기록에서 확인한 것

운영 사이트 페르소나 테스트. 배포 직후 헤드리스 브라우저로 가상 고객 10명을 순차 실행했습니다. 각자 자기 말로 첫 화면에 입력하고, 지도에서 동을 고르고, 사전상담을 채워 상담자료를 만드는 데까지입니다.

항목 결과
목표 도달 10명 중 10명
1인 평균 소요(자동 입력 기준) 30.6초
상담자료 생성 평균 11.2초
콘솔 오류 정상 404(지표 없음) 외 0건
발견 결함 7건

찾은 결함은 상담자료 첫 문단이 위 표의 수치를 두고 “수치가 없다”고 쓰는 문제(전원 해당), 편의점·학원·부동산·어린이집을 첫 화면이 못 알아듣는 문제, “서문시장 근처”라고 말해도 지도가 그 동으로 가지 않는 문제, 400px 화면에서 지도가 80px만 남는 문제, 데이터 없는 업종에 “확인된 사실” 배지가 붙는 문제, 화면은 만원 단위인데 문서는 원 단위 전체 자릿수인 문제, 달성군 고객에게 다른 구 공고가 섞이는 문제였습니다.

후속 개선 18건. 계획 수치를 프롬프트에 그대로 싣고 “없다고 쓰지 마라”를 명시했더니 자기부정 문단이 10명 중 0명이 됐습니다. 금액은 문서도 만원 단위로, 바꾼 조건이 없으면 비교표 대신 한 줄로, 지표가 전부 없는 업종은 AI를 부르지 않고 “집계되지 않았을 뿐 나쁘다는 뜻이 아니다”를 코드가 씁니다. 업종 단어 12개와 경대북문 같은 지명을 추가했고, 말한 동네가 지도 진입 시 그 동 경계로 맞춰집니다. 768px 미만에서는 지도와 패널을 위아래로 쌓습니다. 같은 10명을 로컬 프론트 + 운영과 같은 백엔드에서 다시 돌려 10명 모두 도달, 마찰 기록 0건이었습니다.

미연결 데이터 붙이기. 지도 패널에 주민등록 인구(대신동 8,094명 → 7,263명, 60세 이상만 증가), 동네 특성 배지(전통시장·백년가게·나들가게·온누리 가맹점), 역이 있는 56개 동의 시간대별 승차, 추이 차트 위의 충격 사건 표시를 넣었습니다. 사전상담에는 “월세를 아직 모르겠다면” 도우미를 넣어 상권과 평수를 고르면 R-ONE 임대료로 월세를 채웁니다. 30일 규칙을 반영하자 2025년 개업은 5,755건에서 4,780건, 폐업은 6,259건에서 5,301건으로 줄었고 폐업률이 100%를 넘던 동 2곳이 사라졌습니다.

화면 다듬기. 사전상담은 입력과 결과를 2단으로 나누고 자금 구성 막대, 3시나리오 막대와 손익분기 점선, 금리 +1%p·+2%p 표를 그렸습니다. 지도 패널에는 2019~2026년 점포 수와 폐업률 추이가 들어갔고 2026년은 “집계 중”으로 흐리게 표시합니다. 행정동 코드 대신 동 이름을 씁니다. 새 라이브러리 없이 SVG로 그렸습니다.

지오코딩과 지표 업종 11종. SGIS 주소 변환으로 학원·부동산 좌표를 채워 행정동 지표가 7,856행에서 10,112행이 됐습니다. 인허가 좌표 없음 5,547건은 주소 변형 재시도까지 3,232건을 변환했고, 남은 2,315건은 SGIS에 없는 옛 지번이라 2019~2025년 폐업 기준으로 전체의 0.1%입니다. 담배소매업 33,804건을 적재해 편의점 지표를, 어린이집 인가·관측 기록으로 어린이집 지표를 만들어 지표는 12,360행·11업종이 됐습니다. 2025년 편의점(담배소매인 기준)은 연말 영업 6,208·개업 418·폐업 558, 어린이집은 962곳입니다. 어린이집 패널에는 정원 대비 현원과 입소 대기 카드를 더했습니다(다사읍 65.5%, 대기 1,418명).

그 밖에. 9월 17일부터 실패하던 청년정책 수집의 원인은 만료된 API 키였고 재발급으로 해결했습니다. 운영 임베딩 차원을 로컬 모델과 같은 2560으로 통일해 오프라인 전환을 환경변수 2개와 재색인 3분으로 줄였습니다. 제안요약서의 수치를 DB 스냅샷 기준으로 일괄 갱신하면서 “3년 연속 폐업이 개업보다 많다”는 서술을 “2024~2025년 2년 연속”으로 바로잡았습니다.

테스트. 하루 끝 기준 백엔드 603개 통과·1개 건너뜀(첫 배포 전 526), 프론트엔드 226개 통과·46개 파일(첫 배포 전 203), 타입 검사 통과. 커밋은 하루 9건입니다.

밤 마무리. 학원 재수집이 좌표를 NULL로 덮던 결함을 고쳐 기존 좌표·행정동을 이월하고, 스냅샷에서 사라진 학원은 폐업 추정으로 기록합니다. 현재 ERD 테이블 수는 31개로 정정했습니다. 제안서도 테스트 603/226, 지표 11업종, 첫 배포·페르소나 검증, 스냅샷 3업종의 추정 라벨, 점포 증감률 명칭을 맞췄습니다.

문서·화면 반영. 공개 문서와 진행현황에 완료된 API·배포 계약 및 AI 진행 안내를 반영했습니다. 변경된 지도·사전상담·상담자료와 추가 질문·어린이집 카드는 구현 화면에서 확인할 수 있습니다.

남은 문제

  • 마지막 5개 커밋은 아직 푸시하지 않아 운영 프론트에는 AI 분석 예시 질문, “담배소매인 기준” 라벨, 정원·현원 카드 설명이 없습니다. 운영 백엔드는 새 코드로 재시작돼 있습니다.
  • 담배소매인은 편의점과 같지 않습니다. 슈퍼·마트가 섞이고 담배를 팔지 않는 편의점은 빠집니다.
  • 학원·부동산·어린이집의 폐업은 스냅샷이 2~4주 쌓여야 값이 생깁니다. 그때까지 폐업률은 0으로 나오고 “추정” 표시를 유지합니다.
  • RAG 평가셋 80건은 정답 공고가 만료돼 미만료 공고로 다시 뽑아야 합니다.
  • 재단 상품 4건의 취급은행, 센터 민간 데이터(본선 진출 시 9월 28일 방문), 라이선스 잔여 확인이 남았습니다.

다음에 할 일

  1. 남은 커밋을 푸시해 프론트를 갱신하고 백엔드 환경변수(NEIS·어린이집·SGIS 키)를 배포 설정에 반영합니다.
  2. 시연 영상을 녹화합니다.
  3. 제안요약서의 뉴스·색인 건수를 제출 직전에 다시 맞추고 9월 20일 접수합니다.

진행 현황의 작업 목록도 같은 기준으로 갱신했습니다.


맨 위로

053 · DAEGU · 2026