<?xml version="1.0" encoding="UTF-8"?>
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
      <title>Hwanseok Sim</title>
      <link>https://shsblog.gttemp.cloud/blog</link>
      <description>전화망부터 운영 화면까지, 현장에서 돌아가는 음성 AI와 주차 서비스를 만드는 개발자</description>
      <language>ko-KR</language>
      <managingEditor>hs502983@gmail.com (심환석)</managingEditor>
      <webMaster>hs502983@gmail.com (심환석)</webMaster>
      <lastBuildDate>Sun, 01 Nov 2026 00:00:00 GMT</lastBuildDate>
      <atom:link href="https://shsblog.gttemp.cloud/feed.xml" rel="self" type="application/rss+xml"/>
      
  <item>
    <guid>https://shsblog.gttemp.cloud/blog/visitcall-devlog-08-v2-client-and-deploy</guid>
    <title>VisitCall 개발기 8 — 2.0 클라이언트 호환과 부천 단지 배포</title>
    <link>https://shsblog.gttemp.cloud/blog/visitcall-devlog-08-v2-client-and-deploy</link>
    <description>앱 하나가 1.x와 2.0 서버에서 모두 동작하도록 단지 선택과 공통 네트워크 계층을 넣고, 부천 단지 로컬 PC에 Docker Compose 스택을 올려 스토어 배포까지 마친 과정(2026년 10~11월).</description>
    <pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>visitcall</category><category>개발기</category><category>flutter</category><category>docker</category>
  </item>

  <item>
    <guid>https://shsblog.gttemp.cloud/blog/visitcall-devlog-07-v2-redesign</guid>
    <title>VisitCall 개발기 7 — 2.0 재설계: 멀티 단지 통합 서버</title>
    <link>https://shsblog.gttemp.cloud/blog/visitcall-devlog-07-v2-redesign</link>
    <description>1.x 저장소 네 개를 분석해 결함을 정리하고, 메인 서버와 폴링 서버를 Fastify + PostgreSQL 통합 서버 하나로 합친 과정. 커서 영속, 멱등 아웃박스, 사이트별 단일 워커를 넣었다(2026년 10월).</description>
    <pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>visitcall</category><category>개발기</category><category>fastify</category><category>postgresql</category>
  </item>

  <item>
    <guid>https://shsblog.gttemp.cloud/blog/gem3park-devlog-08-timeout-self-correction-next</guid>
    <title>Gem3Park 개발기 8 — timeout, 자기 정정 복구, 그리고 남은 과제</title>
    <link>https://shsblog.gttemp.cloud/blog/gem3park-devlog-08-timeout-self-correction-next</link>
    <description>방문 목적 분류 호출의 48%가 timeout으로 버려지던 원인, 외부 결정 모델 Jev를 shadow로만 붙인 이유, 말을 고쳐 말한 동·호수를 복구하되 오복구 0을 우선한 결정, 그리고 아직 풀지 못한 과제를 정리한 마지막 편.</description>
    <pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>gem3park</category><category>개발기</category><category>운영</category><category>품질측정</category>
  </item>

  <item>
    <guid>https://shsblog.gttemp.cloud/blog/gem3park-devlog-07-live-stt-and-monitoring</guid>
    <title>Gem3Park 개발기 7 — 두 번째 귀와 모니터링 웹</title>
    <link>https://shsblog.gttemp.cloud/blog/gem3park-devlog-07-live-stt-and-monitoring</link>
    <description>Google STT 옆에 Gemini 3.5 Transcribe Live를 PoC에서 shadow, 병렬 보조로 단계 승격한 과정과, 그 결과를 사람이 확인할 수 있게 9월 12일 하루에 다시 만든 운영 모니터링 웹(통화 검색·녹음 재생·검수·SSE)을 다뤘다.</description>
    <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>gem3park</category><category>개발기</category><category>gemini</category><category>모니터링</category>
  </item>

  <item>
    <guid>https://shsblog.gttemp.cloud/blog/gem3park-devlog-06-unit-ambiguity-guard</guid>
    <title>Gem3Park 개발기 6 — 0 하나 차이 호수의 오승인을 막기까지</title>
    <link>https://shsblog.gttemp.cloud/blog/gem3park-devlog-06-unit-ambiguity-guard</link>
    <description>호출자가 1006호라고 했는데 106호로 확정된 통화에서 시작해, STT N-best 보존·위험 쌍 탐지·Gemini 우선·호출자 확인으로 오승인을 막은 8월 15일 하루의 설계와, 배포 직후 발견한 우회 경로를 정리했다.</description>
    <pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>gem3park</category><category>개발기</category><category>stt</category><category>안전설계</category>
  </item>

  <item>
    <guid>https://shsblog.gttemp.cloud/blog/visitcall-devlog-06-incidents-in-production</guid>
    <title>VisitCall 개발기 6 — 운영 중 장애와 교훈</title>
    <link>https://shsblog.gttemp.cloud/blog/visitcall-devlog-06-incidents-in-production</link>
    <description>노원 단지에서 1.x를 운영하며 겪은 입차 매칭 실패, 시각 형식, 자정 배치, 알림 오발송, 이중 게이트, 그리고 Change Tracking 버전을 문자열로 비교해 감지가 멈춘 사건까지(2025년 11월~2026년 8월).</description>
    <pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>visitcall</category><category>개발기</category><category>운영</category><category>장애</category>
  </item>

  <item>
    <guid>https://shsblog.gttemp.cloud/blog/gem3park-devlog-05-allowlist-audio-assist</guid>
    <title>Gem3Park 개발기 5 — 허용 목록, 그리고 오디오 보조 설계를 줄인 이야기</title>
    <link>https://shsblog.gttemp.cloud/blog/gem3park-devlog-05-allowlist-audio-assist</link>
    <description>동·호수를 현장 허용 목록으로 검증하게 된 계기, 첫 발화 오디오 fallback을 크게 만들었다가 모든 guided 턴의 &#39;누락 시 전사만&#39; 보조로 줄인 판단, 그리고 그 운영 수치를 정리했다.</description>
    <pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>gem3park</category><category>개발기</category><category>gemini</category><category>stt</category>
  </item>

  <item>
    <guid>https://shsblog.gttemp.cloud/blog/gem3park-devlog-04-sip-watchdog-final-verification</guid>
    <title>Gem3Park 개발기 4 — SIP 등록 장애, watchdog, 그리고 최후검증</title>
    <link>https://shsblog.gttemp.cloud/blog/gem3park-devlog-04-sip-watchdog-final-verification</link>
    <description>프로세스는 살아 있는데 전화가 바로 끊기던 5월의 SIP 등록 장애와 그 뒤 만든 3단계 watchdog, 그리고 통화 녹음을 근거로 상담원 전환 직전에 방문 목적을 다시 판정하는 최후검증을 정리했다.</description>
    <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>gem3park</category><category>개발기</category><category>asterisk</category><category>운영</category>
  </item>

  <item>
    <guid>https://shsblog.gttemp.cloud/blog/gem3park-devlog-03-guided-mode-visit-purpose</guid>
    <title>Gem3Park 개발기 3 — guided 모드와 방문 목적 판정</title>
    <link>https://shsblog.gttemp.cloud/blog/gem3park-devlog-03-guided-mode-visit-purpose</link>
    <description>모델이 재질문을 정하던 구조를 슬롯 기반 guided 상태 기계로 옮기고, 방문 목적 판정을 공통 resolver로 모은 3~5월의 작업. 정규식 오탐, 단일 사이트 회귀, 재질문 무한 루프 수정까지 다뤘다.</description>
    <pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>gem3park</category><category>개발기</category><category>상태기계</category><category>대화설계</category>
  </item>

  <item>
    <guid>https://shsblog.gttemp.cloud/blog/gem3park-devlog-02-agent-handoff-and-state-split</guid>
    <title>Gem3Park 개발기 2 — 상담원 인계 안전장치와 1,400줄 클로저 해체</title>
    <link>https://shsblog.gttemp.cloud/blog/gem3park-devlog-02-agent-handoff-and-state-split</link>
    <description>동·호수를 세 번 못 알아들으면 상담원에게 넘기는 규칙을 넣으며, 프롬프트에 맡긴 흐름의 한계와 1,400줄짜리 함수를 CallFlowController·SessionState로 쪼갠 과정을 적었다.</description>
    <pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>gem3park</category><category>개발기</category><category>상태관리</category><category>리팩터링</category>
  </item>

  <item>
    <guid>https://shsblog.gttemp.cloud/blog/gem3park-devlog-01-audiosocket-gemini-live-relay</guid>
    <title>Gem3Park 개발기 1 — AudioSocket과 Gemini Live로 인터폰 전화 받기</title>
    <link>https://shsblog.gttemp.cloud/blog/gem3park-devlog-01-audiosocket-gemini-live-relay</link>
    <description>주차장 인터폰 전화를 AI가 받게 하려고 Asterisk AudioSocket과 Gemini Live API를 잇는 릴레이 서버를 만든 첫 열흘. 샘플레이트 변환, 20ms 재생 큐, 통화 종료 타이밍에서 막힌 지점을 정리했다.</description>
    <pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>gem3park</category><category>개발기</category><category>asterisk</category><category>audiosocket</category>
  </item>

  <item>
    <guid>https://shsblog.gttemp.cloud/blog/visitcall-devlog-05-release-and-store</guid>
    <title>VisitCall 개발기 5 — 1.x 출시: Xcode Cloud와 스토어 배포</title>
    <link>https://shsblog.gttemp.cloud/blog/visitcall-devlog-05-release-and-store</link>
    <description>Flutter 앱을 App Store와 Google Play에 올리기까지의 빌드 실패, Xcode Cloud 스크립트 시행착오, Android 서명, 서버를 PM2로 상시 운영하게 된 과정(2025년 8~10월).</description>
    <pubDate>Thu, 23 Oct 2025 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>visitcall</category><category>개발기</category><category>flutter</category><category>xcodecloud</category>
  </item>

  <item>
    <guid>https://shsblog.gttemp.cloud/blog/visitcall-devlog-04-admin-web</guid>
    <title>VisitCall 개발기 4 — 관리자 웹: 정적 페이지에서 Next.js까지</title>
    <link>https://shsblog.gttemp.cloud/blog/visitcall-devlog-04-admin-web</link>
    <description>관리사무소가 쓰는 관리자 웹을 문자 사용량 화면, 정적 HTML 통계 페이지, Next.js 대시보드로 세 번 다시 만든 과정과, 두 DB에 직접 붙는 구조의 비용(2025년 4~9월).</description>
    <pubDate>Fri, 26 Sep 2025 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>visitcall</category><category>개발기</category><category>nextjs</category><category>관리자웹</category>
  </item>

  <item>
    <guid>https://shsblog.gttemp.cloud/blog/visitcall-devlog-03-parking-db-integration</guid>
    <title>VisitCall 개발기 3 — 주차관제 DB 연동과 Change Tracking 폴링</title>
    <link>https://shsblog.gttemp.cloud/blog/visitcall-devlog-03-parking-db-integration</link>
    <description>구조를 바꿀 수 없는 업체 주차관제 DB에서 입출차를 읽고 방문 차량을 써 넣기 위해 SQL Server Change Tracking 1초 폴링 서버를 만든 과정과, 알림 큐·필터링 결정(2025년 7~9월).</description>
    <pubDate>Sat, 13 Sep 2025 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>visitcall</category><category>개발기</category><category>sqlserver</category><category>주차관제</category>
  </item>

  <item>
    <guid>https://shsblog.gttemp.cloud/blog/visitcall-devlog-02-push-and-entry-alerts</guid>
    <title>VisitCall 개발기 2 — 입차 푸시 알림과 중복 제거</title>
    <link>https://shsblog.gttemp.cloud/blog/visitcall-devlog-02-push-and-entry-alerts</link>
    <description>방문 차량이 들어오면 세대 구성원의 휴대폰이 울리게 만든 FCM 푸시 경로와, 같은 알림이 두 번 뜨는 문제를 서버 캐시와 앱 메시지 ID 저장으로 막은 과정(2025년 7~8월).</description>
    <pubDate>Wed, 20 Aug 2025 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>visitcall</category><category>개발기</category><category>fcm</category><category>flutter</category>
  </item>

  <item>
    <guid>https://shsblog.gttemp.cloud/blog/visitcall-devlog-01-prototype-and-stack</guid>
    <title>VisitCall 개발기 1 — SMS 링크 프로토타입에서 Flutter와 Express로</title>
    <link>https://shsblog.gttemp.cloud/blog/visitcall-devlog-01-prototype-and-stack</link>
    <description>React Native 앱을 Flutter로 옮기고 SMS 링크로 방문 차량을 받던 첫 프로토타입에서, 앱에서 차량번호를 직접 등록해 주차관제 쪽으로 넘기는 구조로 바뀌기까지의 2025년 3~7월 기록.</description>
    <pubDate>Sat, 05 Jul 2025 00:00:00 GMT</pubDate>
    <author>hs502983@gmail.com (심환석)</author>
    <category>visitcall</category><category>개발기</category><category>flutter</category><category>express</category>
  </item>

    </channel>
  </rss>
