로브 (Lovv) 서비스 흐름 명세서

문서 버전: v0.3

문서 상태: 검토 중 (Review)

기준 문서: 요구사항 명세서

[PRD 반영 v0.1 — 대화형 빌더] 일정 생성 흐름이 자동 결과 화면에서 사용자 주도 HITL 빌더로 바뀐다:

가장 적합한 장소 1곳을 시작으로 반경 내 후보(관광지 DB + 식당·카페 지도 API)를 제시 → 사용자 선택 → 다음 장소 반경 제시를 반복(interrupt/resume).

후보 선택은 메인 대화창과 격리된 서브 윈도우(사이드바) 에서 진행한다. 상세: ../98_prd/interactive_builder_prd.md.

1. 문서 개요

1.1 목적

본 문서는 로브 서비스의 사용자 진입, 인증, 온보딩, 목적지 탐색, 챗봇 추천, 일정 생성, 저장·피드백·외부 연동 흐름을 화면과 상태 전이 관점에서 정의한다. 요구사항 명세서의 기능 요구사항을 사용자 행동, 시스템 처리, 데이터 상태 단위로 연결해 UX 설계와 프론트엔드·백엔드 구현의 기준으로 사용한다.

1.2 적용 범위

2. 사용자 유형과 진입점

사용자진입점핵심 목적
신규 자유여행자로그인 또는 비로그인 진입 → 온보딩 → 목적지 탐색선호 테마를 설정하고 첫 추천을 받는다
재방문 자유여행자세션 검증 → 메인 대시보드 또는 챗봇저장 선호와 피드백을 반영한 추천을 받는다
관광 운영자운영 화면담당 지역 데이터와 제안 상태를 확인하고 신규 로컬 콘텐츠를 제안한다
서비스 관리자관리자 화면데이터 제안 승인, 추천 정책, 검증 뱃지, 공지사항을 관리한다

3. User Flow

단계화면 / 상태사용자 행동시스템 반응사용자에게 보이는 결과완료 조건
1진입 및 인증사용자가 Lovv에 접속 후 소셜/자체 로그인을 진행한다백엔드가 OAuth 또는 자체 로그인 인증 후 Access Token과 Refresh Token을 발급하고 사용자 상태, 기존 취향, 저장 일정을 로드한다로그인 세션이 유지된 맞춤형 메인 대시보드가 노출된다로그인 완료 및 메인 화면 진입
2목적지 탐색 1단계"언제, 어느 나라로 떠나세요?" 질문에 국가와 시기를 입력한다입력된 시기의 공공 관광 데이터, 혼잡도, 계절성 데이터를 기준으로 후보 필터링 조건을 준비한다국가/시기 선택 완료 상태가 UI에 반영된다국가 및 시기 확정
3테마 설정 2단계자연어 또는 테마 태그 칩으로 취향을 입력한다RAG 엔진이 벡터 DB에서 조건에 맞는 소도시 후보를 검색하고 스코어링한다대도시와 유사하지만 덜 붐비는 소도시 후보군 비교 카드가 노출된다추천 소도시 리스트 확인
4소도시 확정 및 챗봇추천된 소도시 중 1곳을 선택하고 AI 일정 짜기에 진입한다대화형 워크스페이스가 열리고 선택 소도시의 날씨 경향, 축제 정보, 검증 상태를 초기 컨텍스트에 주입한다"선택한 도시의 현지 축제 정보를 일정에 포함할까요?" 안내 메시지가 노출된다대화 시작 상태 진입
5동적 일정 생성 3단계사용자가 기간, 이동 성향, 축제 포함 여부 등 세부 요구사항을 입력한다멀티스텝 Agent가 외부 API와 내부 데이터를 조회하고 동선을 최적화한 뒤 Structured Output 형태로 일정 초안을 생성한다추천 이유와 데이터 출처 뱃지가 포함된 시간대별 타임라인 UI가 생성된다초안 일정 및 근거 확인
6실시간 피드백 및 조정"이 날은 덜 걷게 해줘", "카페 추가해줘" 등 추가 자연어를 입력한다Agent 파이프라인이 기존 PlanDraft와 신규 요구사항을 재평가하고 특정 일정 블록과 대체 일정을 갱신한다실시간 갱신된 타임라인과 실내 중심 대체 일정 토글을 확인한다만족하는 일정 확정
7일정 저장 및 연동일정을 마이페이지에 저장하거나 맛집/숙소 상세 정보를 클릭한다서버가 완성된 일정과 저장 범위 내 선호·피드백 데이터를 저장하고 외부 플랫폼 딥링크를 생성한다내 저장 목록에 일정이 반영되고 현지 신뢰 플랫폼으로 이동할 수 있다외부 예약 이동 또는 마이페이지 저장 완료

4. Service Flow

API 경로는 docs/07_api_spec/07_api_spec.md의 Base URL /api/v1을 전제로 표기한다.

단계TriggerFrontend 처리상태 / 데이터 관리AI & Infra 비즈니스 로직결과
1앱 로드 및 세션 검증브라우저 쿠키의 Refresh Token 유무를 확인하고 현재 사용자 조회를 요청한다GET /auth/me, Cookie: Refresh Token, Memory: Access Token백엔드가 토큰 유효성을 검증하고 사용자 ID와 역할을 식별한다. 만료 시 재발급 또는 로그인 전환을 처리한다유효하면 메인 화면으로 진입하고, 토큰이 없거나 만료되면 로그인 화면으로 이동한다
2소셜/자체 로그인 완료OAuth 인가 코드 또는 로그인 폼 데이터를 백엔드로 전송한다POST /auth/login, User, Preference, SavedItinerary자체 로그인은 비밀번호 해시를 검증하고, 소셜 로그인은 제공자 API로 사용자를 식별한 뒤 신규/기존 회원을 매핑한다JWT 발급, 보안 쿠키 설정, 개인화 메인 대시보드 출력 준비가 완료된다
3목적지 및 테마 전송사용자가 입력한 국가, 시기, 자연어 취향, 테마 칩을 추천 요청 상태로 구성한다GET /destinations/map-markers, POST /recommendations, State: recommendationSession자연어 쿼리를 조건 객체로 구조화하고, 벡터 DB와 목적지 DB에서 소도시 후보를 검색한다. 혼잡도와 계절성 필터를 적용한다메이저 대도시를 대체할 수 있는 소도시 후보군 또는 1차 추천 결과가 반환된다
4소도시 선택 및 대화 시작특정 소도시를 확정한 뒤 AI 일정 생성 챗봇으로 진입한다State: selectedDestination, State: chatSession, PlanDraft선택 소도시의 축제 정보, 월별 기상 경향, 온보딩 선호, 피드백 이력을 초기 프롬프트와 Agent 상태에 주입한다초기 어시스턴트 메시지와 소도시 맞춤 상태 칩 UI가 렌더링된다
5동적 AI 일정 생성 요청사용자가 기간, 이동 성향, 동행, 축제 포함 여부를 메시지로 전송한다POST /recommendations, PlanDraft, RecommendationResultIntent Agent, Supervisor Router, Retriever, Festival Verifier, Ranker, Itinerary Writer, Output Validator 순으로 실행한다데이터 출처와 검증 상태 뱃지가 포함된 오전/오후/저녁 타임라인과 챗봇 응답을 출력한다
6실시간 일정 피드백사용자가 카페 추가, 동선 최적화, 덜 걷기 등 수정 요구사항을 입력한다State: PlanDraft, POST /recommendations/{recommendationId}/alternatives/weather기존 PlanDraft와 신규 요구사항을 재투입하고 특정 타임라인 블록만 수정한다. 월별 기상 경향에 따라 실내 중심 대체 일정을 결합한다수정된 타임라인 레이아웃과 대체 일정 토글 UI가 반영된다
7최종 일정 저장 및 외부 연동사용자가 마이페이지 저장, 지도 열기, 숙소/맛집 상세 링크를 클릭한다POST /me/itineraries, POST /me/feedback, GET /external/search-links, GET /external/stay-links저장 일정은 사용자 ID와 매핑하고 피드백은 향후 랭킹 가중치 업데이트 데이터로 축적한다. 숙소는 직접 추천하지 않고 검색 딥링크만 생성한다마이페이지 내 일정이 보존되고 신뢰 가능한 현지 플랫폼으로 외부 이동한다
8지자체 데이터 검증 및 업데이트지자체나 로컬 파트너가 축제/체험 정보 업데이트를 제안한다POST /admin/data-submissions, PATCH /admin/data-submissions/{submissionId}/review관리자 승인 후 RDB와 벡터 DB에 콘텐츠를 반영하고 출처·검증 상태를 갱신한다일반 사용자 추천 풀에 최신 로컬 데이터와 검증 완료 뱃지가 반영된다

5. 온보딩 흐름

5.1 조건

5.2 질문 구조

단계질문선택 결과저장 상태
1어떤 스타일의 여행지를 선호하나요?한국 또는 일본 대도시 스타일 선택selectedCityStyle
2어떤 분위기가 더 끌리나요?기본 테마 또는 확장 테마 칩 선택mappedThemes
3선택 확인대도시 스타일을 기본 테마로 매핑onboardingProfile
4완료선호 테마 프로필 저장PoC 로컬 스토리지 또는 사용자 프로필

5.3 대도시 스타일 매핑

기본 테마한국 예시일본 예시
온천·휴양아산/온양벳푸
바다·해안부산오키나와
역사·전통경주교토
미식·노포전주오사카
자연·트레킹제주닛코
예술·감성강릉가나자와

6. 목적지 탐색 흐름

6.1 메인 탐색 상태

메인 화면은 국가, 여행 시기, 테마, 자연어 취향을 조합해 추천 후보를 좁히는 탐색 워크스페이스다. 지도 마커와 후보 비교 카드는 같은 조건 상태를 공유한다.

UI 요소동작상태
국가 필터한국, 일본, 전체 중 선택country
시기 필터월 또는 계절 선택travelMonth 또는 season
테마 필터기본 테마와 확장 테마 선택themes
자연어 입력"드라마 촬영지 중심의 조용한 곳" 같은 조건 입력naturalLanguageQuery
소도시 후보 카드추천 이유, 혼잡도, 계절성, 출처 뱃지 비교candidateDestinations
소도시 마커클릭 시 목적지 후보로 고정selectedDestination

6.2 후보 비교 후 흐름

단계사용자 행동시스템 처리다음 상태
1국가와 시기 입력목적지 DB와 월별 기상 경향 기준으로 1차 필터링테마 설정
2자연어 또는 테마 칩 입력RAG 검색과 스코어링으로 후보군 생성후보 비교
3후보 카드 또는 지도 마커 클릭소도시명, 대표 태그, 추천 월, 검증 상태 표시소도시 확정
4AI 일정 짜기 클릭챗봇 세션과 PlanDraft 초기 상태 생성대화형 일정 생성

7. 챗봇 및 AI 일정 생성 흐름

7.1 자연어 입력 예시

입력 예시구조화 조건
"6월에 비 덜 오는 일본 소도시 추천해줘"국가=일본, 월=6월, 진입점=월별 기상 경향
"혼자 조용히 쉬는 바다 여행 가고 싶어"동행=혼자, 테마=바다·해안/휴양
"가을에 축제 있는 한국 소도시 알려줘"국가=한국, 시기=가을, 축제 포함 후보
"드라마 촬영지 중심인데 너무 붐비지 않았으면 좋겠어"테마=미디어 성지/조용함, 혼잡 회피 선호

7.2 추천 생성 전 필수 확인

챗봇은 추천 생성 직전 아래 항목을 확인한다.

확인 항목기본 처리
국가명시되지 않으면 한국/일본 중 선택 질문
여행 시기월 또는 계절 입력 요청
일정 유형명시되지 않으면 당일치기~4박5일 선택 질문
축제·행사 포함 여부예/아니오 선택 질문
이동 성향명시되지 않으면 보통 이동량을 기본값으로 사용

7.3 Agent 처리 단계

단계처리사용자에게 보이는 결과
1Intent Agent가 멀티턴 맥락을 정리하고 필요한 조건만 추출한다누락 조건이 있으면 추가 질문
2Intent Agent가 국가, 월, 테마, 일정 유형, 축제 포함 여부를 구조화한다입력 조건 칩 갱신
3Supervisor Router가 검색·후보 선정·일정 생성 순서를 제어한다생성 진행 상태 표시
4Retriever와 Festival Verifier가 목적지, 축제, 월별 기상 경향을 조회·검증한다출처 및 검증 상태 뱃지
5Ranker가 개인화 이력과 혼잡도, 계절성을 반영해 후보를 정렬한다소도시 후보 비교 또는 최종 목적지
6Itinerary Writer가 시간대별 일정과 추천 이유를 함께 생성한다오전/오후/저녁 타임라인, 추천 이유, 동선 설명
7Output Validator가 조건 충족, 환각, 축제 날짜, 단일 목적지 여부를 검증한다검증된 추천 결과 또는 폴백 안내

8. 추천 결과 흐름

8.1 결과 카드 구성

영역표시 내용
추천 대상소도시명, 국가, 지역, 대표 이미지
추천 이유사용자 조건, 계절 적합도, 혼잡도, 월별 기상 경향 중 2개 이상
검증 상태출처, 최신성, 축제 날짜 검증 상태, 데이터 결측 안내
일정일정 유형에 맞춘 일별·시간대별 방문 순서
축제·행사사용자가 포함을 선택한 경우 해당 월 행사 정보. 날짜 미확정 축제는 확정 일정으로 배치하지 않는다
외부 링크지도, 공식 관광 정보, 숙소 검색 링크, 현지 플랫폼 링크
피드백좋아요, 싫어요, 저장, 추천 다시 받기

8.2 대체 일정 토글

월별 기상 경향상 우천, 폭설, 장마, 태풍 가능성이 높은 목적지는 "기상 악화 시 대체 일정 보기" 토글을 제공한다. 토글을 활성화하면 동일 목적지 안에서 실내 중심 일정으로 전환한다. WeatherAPI 현재 날씨는 상세 화면 표시용으로만 사용하고 추천 스코어링 기준으로 사용하지 않는다.

8.3 실시간 피드백 반영

피드백 유형처리
이동 부담 감소동선 거리와 이동 횟수를 줄이고 일정 블록을 재배치한다
카페/맛집 추가장소 후보를 추가하되 출처와 외부 탐색 링크를 함께 표시한다
축제 제외축제 블록을 제거하고 같은 시간대 대체 방문지를 제안한다
우천 대비실내 중심 대체 일정 토글을 기본 활성화한다
추천 다시 받기현재 조건을 유지하되 직전 추천 목적지는 제외하거나 감점한다

9. 저장·피드백·마이페이지 흐름

기능PoCProduction
일정 저장로컬 스토리지POST /me/itineraries로 로그인 계정 서버 저장
온보딩 선호로컬 스토리지PUT /me/preferences로 사용자 프로필 저장
좋아요/싫어요로컬 스토리지POST /me/feedback으로 추천 피드백 테이블 저장
마이페이지기본 조회저장 일정 상세, 선호 재설정, 피드백 이력, 삭제 기능
대화 로그전문 저장 금지전문 저장 금지. 구조화된 선호와 최종 일정만 저장

10. 운영·관리자 데이터 흐름

단계사용자행동시스템 처리결과
1관광 운영자/데이터 제공 기관축제, 체험, 로컬 장소 정보를 제안한다POST /admin/data-submissions로 제안 상태 저장검토 대기 상태 생성
2서비스 관리자제안 데이터를 검토하고 승인/반려/수정 요청한다PATCH /admin/data-submissions/{submissionId}/review로 검토 이력 저장승인 또는 반려 상태 확정
3시스템승인된 데이터를 목적지 DB와 벡터 DB에 반영한다임베딩 생성, 출처 URL, 검증 시각, 신뢰도 갱신추천 후보 풀 최신화
4일반 사용자업데이트된 조건으로 검색한다RAG 검색 시 최신 데이터와 검증 뱃지 사용"관광공사/지자체 검증 완료" 등 신뢰 표시

11. 예외 흐름

상황처리
필수 조건 누락챗봇이 국가, 월, 일정 유형, 축제 포함 여부를 추가 질문한다
추천 후보 없음조건 완화 제안 및 다른 월/테마 안내를 제공한다
축제 날짜 미검증확정 일정에 배치하지 않고 후보 정보 또는 참고 안내로만 표시한다
외부 API 실패기본 데이터 표시 후 현재 날씨 또는 장소 상세 미제공 안내를 제공한다
스트리밍 응답 실패마지막 안정 상태의 PlanDraft를 유지하고 재시도 CTA를 제공한다
로컬 저장 실패저장 실패 메시지와 재시도 버튼을 제공한다
로그인 만료Refresh Token 재검증 후 실패하면 로그인 화면으로 이동한다
권한 없는 운영 화면 접근로그인 또는 접근 불가 안내를 표시한다

12. 관련 요구사항 및 API 영향

영역관련 요구사항관련 API
인증/세션역할 모델, Production 회원가입 기반 저장/auth/login, /auth/logout, /auth/me
온보딩/선호FR-ONBOARD-001, FR-STORE-001/me/preferences, /themes/onboarding-options
목적지 탐색FR-COM-001, FR-REC-001, FR-REC-002/destinations, /destinations/map-markers
추천 생성FR-COM-005, FR-REC-003, FR-REC-004/recommendations, /recommendations/{recommendationId}
대체 일정월별 기상 경향, 대체 일정 데이터/recommendations/{recommendationId}/alternatives/weather
저장/피드백FR-STORE-001, FR-STORE-002, FR-STORE-003/me/itineraries, /me/feedback
외부 연동지도·숙소·현지 플랫폼 딥링크/external/weather/current, /external/stay-links, /external/search-links
운영 검토역할 기반 운영, 데이터 품질·출처 추적성/admin/data-submissions, /admin/audit-logs

13. 변경 이력

버전날짜작성자변경 내용
v0.22026-06-02로브 기획팀User Flow와 Service Flow 추가, 인증/JWT, RAG 후보 비교, AI 일정 생성, 실시간 피드백, 외부 딥링크, 관리자 데이터 검증 흐름 반영
v0.12026-05-29로브 기획팀서비스 흐름 명세서 초안 작성