<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net">
<diagram name="UserJourney v2 — 외출 여정" id="uj-v2"><mxGraphModel dx="1400" dy="900" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1892" pageHeight="704" math="0" shadow="0" background="#FFFFFF"><root><mxCell id="0"/><mxCell id="1" parent="0"/>
<mxCell id="g1" value="1. 외출 전" style="rounded=1;arcSize=3;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#8A8F94;strokeWidth=1.2;dashed=1;dashPattern=6 4;verticalAlign=top;align=left;spacingLeft=8;fontStyle=1;fontSize=11.5;fontColor=#5B6066;" vertex="1" parent="1"><mxGeometry x="180" y="70" width="328" height="564" as="geometry"/></mxCell>
<mxCell id="c2" value="1. 발견·탐색" style="text;html=1;strokeColor=none;fillColor=#EEF0F2;align=center;verticalAlign=middle;fontSize=11;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="194" y="100" width="300" height="26" as="geometry"/></mxCell>
<mxCell id="c3" value="가고 싶은 곳·요즘 뜨는 곳을 찾는다" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="194" y="136" width="300" height="44" as="geometry"/></mxCell>
<mxCell id="c4" value="지도 격자 탐색 · 행정동 검색&#10;핫구역 순위·격자 썸네일 미리보기&#10;미션(축제·코스) 훑기" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="194" y="190" width="300" height="92" as="geometry"/></mxCell>
<mxCell id="c5" value="로그인·온보딩" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#E8F0F8;strokeColor=#4E7EA8;fontSize=9;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="202" y="296" width="284" height="22" as="geometry"/></mxCell>
<mxCell id="c6" value="① 지도 홈" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#E7F4EE;strokeColor=#3E9E6D;fontSize=9;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="202" y="322" width="284" height="22" as="geometry"/></mxCell>
<mxCell id="c7" value="③ 핫구역" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FBEBE8;strokeColor=#C15848;fontSize=9;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="202" y="348" width="284" height="22" as="geometry"/></mxCell>
<mxCell id="c8" value="② 격자 썸네일" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FDF1DE;strokeColor=#E58E1C;fontSize=9;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="202" y="374" width="284" height="22" as="geometry"/></mxCell>
<mxCell id="c9" value="GET /api/grids (뷰포트 bbox)&#10;GET /api/missions/active (TTL 1h)&#10;GET /api/grids/hot (Redis ZSET)" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="194" y="410" width="300" height="92" as="geometry"/></mxCell>
<mxCell id="c10" value="“어디가 요즘 예쁠까?” 기대감 · 발견의 즐거움" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontStyle=2;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="194" y="512" width="300" height="50" as="geometry"/></mxCell>
<mxCell id="c11" value="핫구역 신선도 · 미션 칩 노출 기준" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="194" y="572" width="300" height="50" as="geometry"/></mxCell>
<mxCell id="g12" value="2. 외출 중" style="rounded=1;arcSize=3;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#8A8F94;strokeWidth=1.2;dashed=1;dashPattern=6 4;verticalAlign=top;align=left;spacingLeft=8;fontStyle=1;fontSize=11.5;fontColor=#5B6066;" vertex="1" parent="1"><mxGeometry x="534" y="70" width="646" height="564" as="geometry"/></mxCell>
<mxCell id="c13" value="2. 촬영·점령" style="text;html=1;strokeColor=none;fillColor=#EEF0F2;align=center;verticalAlign=middle;fontSize=11;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="548" y="100" width="300" height="26" as="geometry"/></mxCell>
<mxCell id="c14" value="그 순간을 짧게 남기고 칸을 점령한다" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="548" y="136" width="300" height="44" as="geometry"/></mxCell>
<mxCell id="c15" value="현장 촬영 또는 갤러리 선택 (≤30초)&#10;공개 범위 선택 (기본 PRIVATE)&#10;업로드 · 진행 확인" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="548" y="190" width="300" height="92" as="geometry"/></mxCell>
<mxCell id="c16" value="⑥ 촬영·업로드" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FBF6E4;strokeColor=#D6A34A;fontSize=9;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="556" y="296" width="284" height="22" as="geometry"/></mxCell>
<mxCell id="c17" value="격자 내 GPS 검증&#10;presigned PUT → S3 → 메타 저장&#10;점령·재방문 판정 · Kafka 발행" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="548" y="410" width="300" height="92" as="geometry"/></mxCell>
<mxCell id="c18" value="“빠르고 부담 없이 남기고 싶다”" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontStyle=2;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="548" y="512" width="300" height="50" as="geometry"/></mxCell>
<mxCell id="c19" value="촬영→업로드 단계 수 최소화" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="548" y="572" width="300" height="50" as="geometry"/></mxCell>
<mxCell id="c20" value="3. 미션·스탬프 (신규)" style="text;html=1;strokeColor=none;fillColor=#EEF0F2;align=center;verticalAlign=middle;fontSize=11;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="866" y="100" width="300" height="26" as="geometry"/></mxCell>
<mxCell id="c21" value="축제·코스를 돌며 스탬프를 모은다" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="866" y="136" width="300" height="44" as="geometry"/></mxCell>
<mxCell id="c22" value="미션 확인 — 면(축제)·마커(팝업)·폴리라인(코스)&#10;미션 격자에서 촬영&#10;스탬프 획득 연출" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="866" y="190" width="300" height="92" as="geometry"/></mxCell>
<mxCell id="c23" value="① 지도 홈" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#E7F4EE;strokeColor=#3E9E6D;fontSize=9;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="874" y="296" width="284" height="22" as="geometry"/></mxCell>
<mxCell id="c24" value="⑥ 촬영·업로드" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FBF6E4;strokeColor=#D6A34A;fontSize=9;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="874" y="322" width="284" height="22" as="geometry"/></mxCell>
<mxCell id="c25" value="GET /api/missions/active&#10;코스 포토스팟 판정 (스팟 N곳 중 target)&#10;user_missions 진행도 갱신" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="866" y="410" width="300" height="92" as="geometry"/></mxCell>
<mxCell id="c26" value="‘N칸 중 M칸’ 수집 재미" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontStyle=2;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="866" y="512" width="300" height="50" as="geometry"/></mxCell>
<mxCell id="c27" value="코스 시작점·순번 표기 (미결)" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="866" y="572" width="300" height="50" as="geometry"/></mxCell>
<mxCell id="g28" value="3. 외출 후" style="rounded=1;arcSize=3;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#8A8F94;strokeWidth=1.2;dashed=1;dashPattern=6 4;verticalAlign=top;align=left;spacingLeft=8;fontStyle=1;fontSize=11.5;fontColor=#5B6066;" vertex="1" parent="1"><mxGeometry x="1206" y="70" width="646" height="564" as="geometry"/></mxCell>
<mxCell id="c29" value="4. 처리 대기·시청" style="text;html=1;strokeColor=none;fillColor=#EEF0F2;align=center;verticalAlign=middle;fontSize=11;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="1220" y="100" width="300" height="26" as="geometry"/></mxCell>
<mxCell id="c30" value="내 영상이 잘 나왔는지 확인하고 나눈다" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1220" y="136" width="300" height="44" as="geometry"/></mxCell>
<mxCell id="c31" value="인코딩 상태 확인 (4단계)&#10;AI 하이라이트 구간 조정 · 블러 토글&#10;재생 · 좋아요" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1220" y="190" width="300" height="92" as="geometry"/></mxCell>
<mxCell id="c32" value="⑥ 촬영·업로드" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FBF6E4;strokeColor=#D6A34A;fontSize=9;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="1228" y="296" width="284" height="22" as="geometry"/></mxCell>
<mxCell id="c33" value="④ 격자 상세" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#F0EBF8;strokeColor=#8A6ABF;fontSize=9;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="1228" y="322" width="284" height="22" as="geometry"/></mxCell>
<mxCell id="c34" value="② 격자 썸네일" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FDF1DE;strokeColor=#E58E1C;fontSize=9;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="1228" y="348" width="284" height="22" as="geometry"/></mxCell>
<mxCell id="c35" value="FastAPI 파이프라인 — 1080p 30초 실측 4.3분&#10;processing_status = READY 갱신&#10;presigned GET 재생" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1220" y="410" width="300" height="92" as="geometry"/></mxCell>
<mxCell id="c36" value="“AI가 알아서 골라준다” · 처리 대기 지루함" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontStyle=2;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1220" y="512" width="300" height="50" as="geometry"/></mxCell>
<mxCell id="c37" value="처리 지연 체감 최소화 (상태 표시·푸시)" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1220" y="572" width="300" height="50" as="geometry"/></mxCell>
<mxCell id="c38" value="5. 도감·리텐션" style="text;html=1;strokeColor=none;fillColor=#EEF0F2;align=center;verticalAlign=middle;fontSize=11;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="1538" y="100" width="300" height="26" as="geometry"/></mxCell>
<mxCell id="c39" value="내 지도가 채워지는 재미를 확인한다" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1538" y="136" width="300" height="44" as="geometry"/></mxCell>
<mxCell id="c40" value="도감 지도·갤러리·뱃지 확인&#10;지역별 탐험률 (동 단위) 확인&#10;스탬프북 ‘15개 중 3개’" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1538" y="190" width="300" height="92" as="geometry"/></mxCell>
<mxCell id="c41" value="⑦ 개인 도감" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#E0F4F8;strokeColor=#2FA4C7;fontSize=9;fontStyle=1;fontColor=#2B2B2B;" vertex="1" parent="1"><mxGeometry x="1546" y="296" width="284" height="22" as="geometry"/></mxCell>
<mxCell id="c42" value="GET /api/collections/summary·grids&#10;region_stats (동 단위 탐험률)&#10;badges · streaks" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1538" y="410" width="300" height="92" as="geometry"/></mxCell>
<mxCell id="c43" value="“내 지도가 채워진다” 성취감 · 공유 욕구" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontStyle=2;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1538" y="512" width="300" height="50" as="geometry"/></mxCell>
<mxCell id="c44" value="스트릭·뱃지 알림 타이밍" style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C6CBD1;fontSize=9.5;fontColor=#2B2B2B;align=left;verticalAlign=middle;spacingLeft=8;spacingRight=6;" vertex="1" parent="1"><mxGeometry x="1538" y="572" width="300" height="50" as="geometry"/></mxCell>
<mxCell id="c45" value="목표" style="rounded=1;arcSize=30;whiteSpace=wrap;html=1;fillColor=#4A5560;strokeColor=none;fontSize=10.5;fontStyle=1;fontColor=#FFFFFF;" vertex="1" parent="1"><mxGeometry x="40" y="145" width="120" height="26" as="geometry"/></mxCell>
<mxCell id="c46" value="행동" style="rounded=1;arcSize=30;whiteSpace=wrap;html=1;fillColor=#4A5560;strokeColor=none;fontSize=10.5;fontStyle=1;fontColor=#FFFFFF;" vertex="1" parent="1"><mxGeometry x="40" y="223" width="120" height="26" as="geometry"/></mxCell>
<mxCell id="c47" value="터치포인트" style="rounded=1;arcSize=30;whiteSpace=wrap;html=1;fillColor=#4A5560;strokeColor=none;fontSize=10.5;fontStyle=1;fontColor=#FFFFFF;" vertex="1" parent="1"><mxGeometry x="40" y="333" width="120" height="26" as="geometry"/></mxCell>
<mxCell id="c48" value="시스템" style="rounded=1;arcSize=30;whiteSpace=wrap;html=1;fillColor=#4A5560;strokeColor=none;fontSize=10.5;fontStyle=1;fontColor=#FFFFFF;" vertex="1" parent="1"><mxGeometry x="40" y="443" width="120" height="26" as="geometry"/></mxCell>
<mxCell id="c49" value="감정" style="rounded=1;arcSize=30;whiteSpace=wrap;html=1;fillColor=#4A5560;strokeColor=none;fontSize=10.5;fontStyle=1;fontColor=#FFFFFF;" vertex="1" parent="1"><mxGeometry x="40" y="524" width="120" height="26" as="geometry"/></mxCell>
<mxCell id="c50" value="기회" style="rounded=1;arcSize=30;whiteSpace=wrap;html=1;fillColor=#4A5560;strokeColor=none;fontSize=10.5;fontStyle=1;fontColor=#FFFFFF;" vertex="1" parent="1"><mxGeometry x="40" y="584" width="120" height="26" as="geometry"/></mxCell>
<mxCell id="c51" value="FillMap · User Journey v2 — 외출 여정 (2026.07)" style="text;html=1;strokeColor=none;fillColor=none;align=left;fontSize=17;fontStyle=1;fontColor=#232F3E;" vertex="1" parent="1"><mxGeometry x="20" y="8" width="700" height="26" as="geometry"/></mxCell>
<mxCell id="c52" value="보조자료 (Not Architecture) — 사용자 관점 흐름 · UX 참고용" style="rounded=1;arcSize=12;whiteSpace=wrap;html=1;fillColor=#FDF1F0;strokeColor=#C15848;fontSize=10;fontStyle=1;fontColor=#C15848;" vertex="1" parent="1"><mxGeometry x="1432" y="10" width="420" height="24" as="geometry"/></mxCell>
<mxCell id="c53" value="터치포인트 색 = SA v2(Application Architecture) 화면 색과 동일 · 시스템 행의 정본은 SA v2·SysA v2·CA v2 · 수치: 영상 30초 상한 · AI 처리 1080p 30초 실측 4.3분 · 탐험률 동 단위" style="text;html=1;strokeColor=none;fillColor=none;align=left;fontSize=9.5;fontColor=#6B7075;" vertex="1" parent="1"><mxGeometry x="180" y="650" width="1672" height="20" as="geometry"/></mxCell>
</root></mxGraphModel></diagram></mxfile>
