-
Notifications
You must be signed in to change notification settings - Fork 0
Home
현재 개발·배포·DB·도메인 운영 현황은 아래 문서에서 확인합니다.
- 프로젝트 운영 및 진행 현황
- AWS EC2와 GitHub Actions 자동배포
- PostgreSQL RDS와 DBeaver SSH 터널 연결
- 도메인·Cloudflare·Nginx·HTTPS 설정
- AWS EC2·RDS 비용 절감 Scheduler
- 팀 업무분담 및 개발 규칙
- Redis 장소 상세 캐시 적용
- 외부 API 발급 및 관리 현황
- 아이디어 및 개선 제안
보안 원칙: 실제 비밀번호, API Key, Access Key, Private Key는 Wiki에 기록하지 않습니다.
AI 기반 맞춤형 여행 가이드 및 통합 예약 플랫폼
AI 가이드: 마이티(Mighty)
태그라인: 여행의 모든 것, 마이티와 함께
Figma: All My Trips — AI 맞춤 여행 플랫폼 전체 화면
이 문서는 Figma의 00 · 프로젝트 문서 페이지에서 확인된 프로젝트 개요, 정보구조(IA), 서비스 플로우, 화면 목차를 개발에 사용할 수 있는 Markdown 명세로 정리한 문서이다.
- Figma에 직접 표시된 내용: 프로젝트 개요, 화면명과 번호, IA, 주요 서비스 플로우
- 개발 명세로 보완한 내용: 화면 목적, 주요 UI, 사용자 동작, API·데이터·예외 처리 제안
- 향후 확장 항목: 외부 일정 연동, 동행자 GPS 위치 공유, 운영 모니터링
| 구분 | 내용 |
|---|---|
| 프로젝트 구분 | AI 기반 맞춤형 여행 가이드 및 통합 예약 플랫폼 |
| 프로젝트명 | All My Trips |
| AI 가이드명 | 마이티(Mighty) |
| 서비스 채널 | PC Web 중심 반응형 서비스, 모바일 웹 지원 |
| 핵심 목적 | 분산된 여행 탐색·일정·예약 과정을 하나의 서비스로 통합 |
| 개인화 방식 | 실제 관광 데이터와 사용자 일정 및 취향을 활용한 RAG 기반 개인화 가이드 |
| 주요 산출물 | 전체 UI, 화면 기능 명세, IA, 서비스 플로우, API·DB 설계 |
- 여행 준비 시간 단축과 이동 동선 최적화
- 항공·숙박·티켓 예약 결과의 일정 자동 연동
- 과거 여행 기록을 활용한 지속적인 개인화 추천
- 여행 전·중·후 데이터를 하나의 사용자 경험으로 연결
- 회원가입, 로그인, 소셜 로그인, 회원정보 관리
- 여행 조건과 스타일 설정, 여행지 추천
- 날짜별 일정 편집, 지도 경로와 이동시간 확인
- RAG 챗봇, AI 일정 생성·수정, 날씨·동선 최적화
- 항공·숙박·티켓 탐색 및 예약, 대기열 처리
- 여행 사진·일기·후기 기록
- 관리자 운영 지표, 상품·재고 및 성능 관리
| 영역 | 기술 제안 |
|---|---|
| Backend | Java 17, Spring Boot 3.x, Spring Security, JPA/MyBatis |
| Database | MySQL, Vector DB |
| AI | Ollama 또는 Gemini, Spring AI/LangChain, Embedding, RAG |
| Cache·동시성 | Redis Cache, Redis Lock, Redis Pub/Sub |
| Infra | AWS EC2, Nginx, Docker, GitHub Actions CI/CD |
| 성능 검증 | DB Index, k6 또는 JMeter |
| 지도·위치 | 지도 SDK, Geolocation API, WebSocket |
- 1차 — 여행 가이드 MVP: 회원, 여행 조건, 장소 탐색, 일정 편집, 지도
- 2차 — AI + RAG: 개인화 추천, AI 일정 생성·수정, 여행 가이드 챗봇
- 3차 — 예약 + 대용량 트래픽: 예약 통합, 대기열, 재고 동시성, 운영 모니터링
- 4차 — 연결성과 현지 경험 확장: 외부 일정 가져오기·내보내기, 동행자 위치 공유
flowchart LR
ROOT["All My Trips"] --> MEMBER["회원"]
ROOT --> TRIP["여행 계획"]
ROOT --> SCHEDULE["일정"]
ROOT --> GUIDE["여행 가이드"]
ROOT --> BOOKING["예약"]
ROOT --> RECORD["여행 기록"]
ROOT --> ADMIN["관리자"]
MEMBER --> M1["로그인"]
MEMBER --> M2["회원가입"]
MEMBER --> M3["정보수정·탈퇴"]
TRIP --> T1["기본 정보"]
TRIP --> T2["여행 스타일"]
TRIP --> T3["여행지 추천"]
SCHEDULE --> S1["날짜별 일정"]
SCHEDULE --> S2["추가·삭제·정렬"]
SCHEDULE --> S3["경로·거리·시간"]
SCHEDULE --> S4["날씨·동선 AI 최적화"]
GUIDE --> G1["장소 탐색"]
GUIDE --> G2["장소 상세"]
GUIDE --> G3["테마·인기 여행"]
GUIDE --> G4["RAG 챗봇"]
BOOKING --> B1["항공"]
BOOKING --> B2["숙소"]
BOOKING --> B3["티켓"]
BOOKING --> B4["대기열"]
BOOKING --> B5["예약 내역"]
RECORD --> R1["사진"]
RECORD --> R2["일기"]
RECORD --> R3["후기·별점"]
RECORD --> R4["과거 기록 RAG"]
ADMIN --> A1["운영 지표"]
ADMIN --> A2["테마 관리"]
ADMIN --> A3["상품·재고"]
ADMIN --> A4["성능 모니터링"]
| 구분 | 번호 | 화면명 | 핵심 역할 |
|---|---|---|---|
| 프로젝트 문서 | 0-1 | 프로젝트 개요 | 프로젝트 목적·범위·기술 정의 |
| 프로젝트 문서 | 0-2 | 전체 목차 | 화면 및 설계 문서 목록 |
| 프로젝트 문서 | 0-3 | 정보구조 IA | 서비스 메뉴와 기능 계층 정의 |
| 프로젝트 문서 | 0-4 | 주요 서비스 플로우 | 사용자·AI·예약·관리자 흐름 정의 |
| 메인 | 1-1 | 메인 화면 | 서비스 진입과 여행 검색 |
| 회원 | 2-1 | 로그인 | 일반·소셜 로그인 |
| 회원 | 2-2 | 회원가입 | 약관 동의와 계정 생성 |
| 여행 계획 | 3-1 | 여행 기본 정보 | 목적지·날짜·인원 입력 |
| 여행 계획 | 3-2 | 여행 스타일 | 취향·예산·활동 성향 선택 |
| 여행 계획 | 3-3 | 여행지 추천 | AI 추천 후보 비교·선택 |
| 가이드 | 4-1 | 여행 가이드 탐색 | 장소 검색·필터·목록 탐색 |
| 가이드 | 4-2 | 장소 상세 | 장소 정보와 일정 추가 |
| 가이드 | 4-3 | 테마·인기 여행 | 테마 컬렉션과 인기 코스 탐색 |
| 일정 | 5-1 | 일정 편집 | 날짜별 일정 구성과 정렬 |
| 일정 | 5-2 | 지도 경로 | 동선·거리·이동시간 확인 |
| 일정 | 5-3 | AI 일정 최적화 | 날씨·혼잡도·동선 기반 재배치 |
| AI | 6-1 | AI 여행 가이드 | RAG 기반 대화형 가이드 |
| 예약 | 7-1 | 예약 허브 | 항공·숙소·티켓 통합 진입 |
| 예약 | 7-2 | 티켓 상세·예약 | 옵션·수량·재고·결제 진행 |
| 예약 | 7-3 | 숙소 검색 | 조건별 숙소 검색·비교 |
| 예약 | 7-4 | 항공편 검색 | 노선·날짜별 항공편 비교 |
| 예약 | 7-5 | 예약 대기열 | 혼잡 시 순번·잔여시간 안내 |
| 마이페이지 | 8-1 | 마이 페이지·예약 내역 | 일정·예약·프로필 통합 관리 |
| 마이페이지 | 8-2 | 여행 기록 | 사진·일기·후기 관리 |
| 관리자 | 9-1 | 관리자 대시보드 | 운영·예약·성능 지표 관리 |
화면 목적
사용자가 서비스의 가치와 마이티의 역할을 즉시 이해하고 여행 계획을 시작하는 화면이다.
주요 UI
- All My Trips 로고와 글로벌 내비게이션
- 여행 계획, 여행 일정, 여행 가이드, 마이페이지 메뉴
- 목적지, 출발일·귀국일, 여행 인원 통합 검색 바
- 로그인 버튼
- 마이티 소개와 개인화 추천 진입 버튼
- 추천 여행지, 인기 테마, 진행 중인 여행 요약
화면 동작
- 검색 조건이 완성되면
No 3-1 여행 기본 정보또는 추천 결과로 이동한다. - 로그인 사용자는 저장된 취향과 최근 여행을 반영한 개인화 콘텐츠를 본다.
- 비로그인 사용자의 계획 시작 시 로그인 유도 후 입력값을 복원한다.
개발 설명
- 초기 렌더링 데이터와 개인화 데이터의 API를 분리해 캐싱한다.
- 검색 조건은 URL query 또는 임시 세션에 저장해 뒤로가기에도 유지한다.
- 모바일에서는 검색 바를 단계형 바텀시트로 전환한다.
화면 목적
일반 계정 또는 소셜 계정으로 안전하게 로그인한다.
주요 UI
- 이메일 또는 아이디 입력
- 비밀번호 입력과 표시 전환
- 자동 로그인
- 비밀번호 찾기
- 소셜 로그인
- 회원가입 이동
개발 설명
- Spring Security 기반 인증과 비밀번호 해시를 적용한다.
- Access Token과 Refresh Token의 만료 및 재발급 정책을 분리한다.
- 로그인 실패 횟수 제한, CAPTCHA 또는 지연 정책을 적용할 수 있다.
- 로그인 이전에 작성한 여행 조건을 인증 성공 후 병합한다.
예외 상태
- 잘못된 계정 정보
- 휴면·정지·탈퇴 계정
- 소셜 계정 연결 충돌
- 네트워크 오류 또는 토큰 만료
화면 목적
필수 약관 동의, 본인 식별, 계정 정보를 입력해 신규 계정을 생성한다.
주요 UI
- 전체·개별 약관 동의
- 이메일 인증
- 비밀번호와 비밀번호 확인
- 닉네임
- 선택적 여행 취향 초기 설정
개발 설명
- 약관 버전과 동의 시각을 별도로 저장한다.
- 이메일 인증 코드는 짧은 TTL로 Redis에 저장한다.
- 이메일·닉네임 중복 확인을 제공하되 최종 가입 시 서버에서 다시 검증한다.
- 가입 완료 이벤트로 환영 알림과 기본 프로필을 생성한다.
화면 목적
AI 추천과 일정 생성을 위한 최소 여행 조건을 입력한다.
주요 UI
- 출발지와 희망 목적지
- 여행 기간
- 성인·아동 인원
- 총예산 또는 1인 예산
- 자유 입력 요청사항
- 다음 단계 버튼
개발 설명
- 작성 중 데이터는
trip_draft로 임시 저장한다. - 날짜 역전, 최대 여행 기간, 인원 범위를 프론트와 서버에서 함께 검증한다.
- 목적지가 미정이면 지역 범위나 비행시간 기준으로 추천을 시작한다.
화면 목적
사용자의 여행 성향을 구조화해 개인화 추천의 입력값으로 사용한다.
주요 UI
- 휴양·관광·미식·쇼핑·액티비티 등 다중 선택
- 느긋한 일정과 촘촘한 일정 선호도
- 예산 배분 선호
- 숙소·교통·음식 조건
- 동행 유형
개발 설명
- 태그는 코드 테이블로 관리하고 버전 변경에 대응한다.
- 선택 태그와 가중치를 사용자 기본 취향과 이번 여행 취향으로 구분한다.
- 추천 결과에는 선택한 조건이 어떻게 반영됐는지 설명 가능한 근거를 제공한다.
화면 목적
입력 조건과 취향을 바탕으로 AI 추천 여행지를 비교하고 선택한다.
주요 UI
- 추천 여행지 카드
- 추천 점수와 추천 이유
- 예상 비용, 날씨, 비행시간, 혼잡도
- 관심 등록, 비교, 다시 추천
- 선택 후 일정 생성
개발 설명
- 조건 필터링 결과와 AI 순위 결과를 분리해 생성한다.
- 추천 결과와 근거, 모델·프롬프트 버전을 기록해 재현성을 확보한다.
- 관광 데이터가 부족한 경우 일반 추천임을 명확히 표시한다.
화면 목적
지역별 관광지, 음식점, 쇼핑, 체험 장소를 검색하고 일정 후보를 찾는다.
주요 UI
- 키워드 검색
- 카테고리와 상세 필터
- 목록·지도 보기 전환
- 정렬: 추천순, 거리순, 평점순, 인기순
- 찜하기와 일정 추가
개발 설명
- 지도 영역 변경 시 현재 지도 범위로 재검색한다.
- 페이지네이션 또는 커서 기반 무한 스크롤을 사용한다.
- 인기 장소와 카테고리는 Redis 캐시를 적용한다.
- 검색어, 필터, 지도 범위는 URL에 유지한다.
화면 목적
방문 판단에 필요한 장소 정보와 후기, 운영 상태를 제공한다.
주요 UI
- 사진 갤러리
- 장소명, 평점, 카테고리, 주소
- 영업시간과 휴무일
- 가격, 소요시간, 편의 정보
- 지도와 길찾기
- 일정 추가, 찜하기, 공유
개발 설명
- 외부 관광 데이터와 내부 사용자 콘텐츠의 출처를 구분한다.
- 일정 추가 시 날짜, 시간, 예상 체류시간을 선택하게 한다.
- 폐업·휴무·정보 미확인 상태를 분리해 표시한다.
화면 목적
사용자가 검색어 없이도 큐레이션된 여행 테마와 인기 코스를 발견하게 한다.
주요 UI
- 계절·목적·동행 유형별 테마
- 인기 여행지와 추천 코스
- 테마 상세
- 테마 전체 일정 가져오기
개발 설명
- 관리자 등록 콘텐츠와 자동 집계 인기 콘텐츠를 구분한다.
- 노출 기간, 정렬 순서, 지역, 타깃 사용자 조건을 관리한다.
- 인기 점수는 조회·저장·일정 추가·예약 전환을 조합해 산정한다.
화면 목적
날짜별 장소와 예약을 추가·삭제·정렬해 실제 여행 일정을 완성한다.
주요 UI
- 날짜 탭
- 일정 카드와 시간대
- 드래그 앤 드롭 정렬
- 장소 추가·삭제·복사
- 예약 연결 상태
- 저장, 공유, AI 최적화
개발 설명
- 변경사항에 낙관적 UI를 적용하되 실패 시 이전 상태로 복구한다.
- 일정 순서 변경에는
sort_order또는 간격이 있는 정렬 키를 사용한다. - 동시 편집을 지원한다면 일정 버전과 충돌 해결 정책이 필요하다.
- 예약 항목은 사용자가 실수로 삭제하지 않도록 연결 해제를 별도 처리한다.
화면 목적
일정의 위치, 이동 순서, 거리와 예상 이동시간을 지도에서 확인한다.
주요 UI
- 날짜별 지도 마커
- 마커 간 경로
- 교통수단 선택
- 총 거리와 이동시간
- 일정 목록과 지도 연동
- 외부 지도 길찾기
개발 설명
- 경로 API 호출은 동일 조건 캐시와 요청 제한을 적용한다.
- 좌표가 없는 장소는 지오코딩 후 정확도 또는 확인 상태를 기록한다.
- 경로 계산 실패 시 직선거리와 수동 순서 편집을 제공한다.
화면 목적
날씨, 영업시간, 장소 간 거리, 사용자 선호를 반영해 일정을 재배치한다.
주요 UI
- 현재 일정과 추천 일정 비교
- 변경 이유와 영향
- 변경 항목 선택
- 전체 적용·일부 적용·되돌리기
개발 설명
- AI는 변경 제안만 생성하고 최종 적용은 사용자가 승인한다.
- 장소 영업시간, 예약 고정 시간, 이동시간을 제약조건으로 처리한다.
- 최적화 전 버전을 스냅샷으로 저장해 되돌리기를 지원한다.
- 추천 근거와 참조 데이터의 갱신 시각을 표시한다.
화면 목적
마이티가 사용자의 일정과 취향을 이해하고 여행 질문에 답하며 필요한 작업을 수행한다.
주요 UI
- 대화 목록과 입력창
- 추천 질문
- 장소·일정·예약 카드형 응답
- 출처와 기준 시각
- 일정에 적용 버튼
- 답변 평가와 다시 생성
개발 설명
- 처리 흐름은
질문 분석 → Vector DB 검색 → 일정·취향 컨텍스트 결합 → LLM 답변이다. - 사용자별 여행 데이터 접근 권한을 검색 단계부터 제한한다.
- 답변과 실행 작업을 분리하고 일정 변경·예약은 재확인 후 실행한다.
- 환각 방지를 위해 출처, 데이터 기준일, 불확실성 안내를 제공한다.
화면 목적
항공, 숙소, 티켓 예약 기능을 한곳에서 탐색하고 현재 일정과 연결한다.
주요 UI
- 항공·숙소·티켓 탭
- 여행 조건 자동 입력
- 추천 예약 상품
- 진행 중·완료 예약 요약
- 일정에 연결된 예약 상태
개발 설명
- 여행 기본정보를 검색 조건의 기본값으로 사용한다.
- 공급사마다 다른 데이터는 내부 표준 모델로 변환한다.
- 가격과 재고는 조회 시각 및 재확인 필요 여부를 명확히 표시한다.
화면 목적
티켓 옵션과 사용 조건을 확인하고 수량 선택부터 결제까지 진행한다.
주요 UI
- 상품 정보와 사용 안내
- 날짜·시간·옵션·수량 선택
- 실시간 재고와 가격
- 취소·환불 규정
- 결제 금액 요약
개발 설명
- 재고 확인과 주문 확정 사이에 Redis Lock 또는 재고 예약 TTL을 적용한다.
- 결제 성공 콜백은 멱등 키로 중복 처리를 방지한다.
- 예약 확정 후 일정에 티켓 사용 시간과 위치를 연결한다.
화면 목적
여행 일정과 조건에 맞는 숙소를 검색하고 비교한다.
주요 UI
- 지역·체크인·체크아웃·인원
- 가격, 등급, 평점, 편의시설 필터
- 지도·목록 보기
- 객실 가격과 취소 조건
- 비교와 찜하기
개발 설명
- 표시 가격에 세금·수수료 포함 여부를 함께 제공한다.
- 같은 숙소의 공급사별 결과를 정규화하고 중복 제거한다.
- 객실 재고와 최종 가격은 결제 전 다시 확인한다.
화면 목적
출발지, 목적지, 날짜, 인원을 기준으로 항공편을 비교한다.
주요 UI
- 왕복·편도·다구간
- 공항·날짜·인원·좌석 등급
- 가격, 시간, 경유, 항공사 필터
- 여정 상세와 수하물 조건
- 선택한 항공편 요약
개발 설명
- 공항·도시 코드를 표준화하고 시간대 정보를 함께 저장한다.
- 출발·도착 시간은 현지 시간과 시간대를 함께 표시한다.
- 공급사 가격 만료와 재조회 상태를 처리한다.
화면 목적
예약 요청이 몰릴 때 사용자 순서를 보장하고 서버 과부하를 방지한다.
주요 UI
- 현재 대기 순번
- 예상 대기시간
- 진행 상태
- 이탈·재접속 안내
- 입장 가능 시간 제한
개발 설명
- Redis Sorted Set 등으로 대기 순서를 관리한다.
- 대기 토큰, 입장 토큰, 만료 시간을 분리한다.
- 폴링 또는 SSE로 상태를 갱신하고 중복 탭 정책을 정의한다.
- 결제와 재고 차감은 대기열 통과 이후에도 별도의 동시성 제어를 적용한다.
화면 목적
사용자의 여행, 예약, 프로필과 서비스 설정을 통합 관리한다.
주요 UI
- 예정·진행·지난 여행
- 예약 내역과 상태
- 취소·환불 요청
- 프로필과 여행 취향
- 알림·보안·연결 서비스 설정
개발 설명
- 예약 상태는 공급사 상태와 내부 상태를 구분해 동기화한다.
- 목록 조회는 기간·상태 필터와 페이지네이션을 적용한다.
- 민감한 예약 상세는 본인 확인과 권한 검증 후 제공한다.
화면 목적
여행 후 사진, 일기, 후기와 별점을 기록해 개인화 데이터로 활용한다.
주요 UI
- 여행별 타임라인
- 사진 업로드
- 날짜·장소별 일기
- 후기와 별점
- 공개 범위 설정
- 추억 요약과 다시 여행 추천
개발 설명
- 이미지 원본과 썸네일을 분리해 객체 스토리지에 저장한다.
- EXIF 위치정보는 사용자 동의 후 사용하고 기본적으로 제거를 고려한다.
- 비공개 기록은 개인 RAG 범위에만 포함한다.
- 삭제·공개 범위 변경 시 Vector DB 데이터도 동기화한다.
화면 목적
서비스 운영 상태, 예약·재고, AI 사용량, 서버 성능을 통합 관리한다.
주요 UI
- 가입자·활성 사용자·여행 생성·예약 전환 지표
- 예약 성공·실패·취소 현황
- 상품·재고·테마 관리
- AI 요청량, 응답시간, 오류율
- 서버 상태, 트래픽, CPU·메모리·DB·Redis 상태
- 장애와 임계치 알림
개발 설명
- Spring Boot Actuator와 Micrometer로 애플리케이션 지표를 수집한다.
- Prometheus와 Grafana 또는 CloudWatch를 연동할 수 있다.
- 관리자 역할별 조회·수정 권한을 분리하고 감사 로그를 저장한다.
- 실시간 지표는 짧은 주기 폴링 또는 SSE를 사용하고 기간별 지표는 집계 테이블을 사용한다.
- 개인정보는 대시보드에서 마스킹하고 운영 목적에 필요한 최소 범위만 제공한다.
flowchart LR
A["메인"] --> B["로그인"]
B --> C["여행 조건"]
C --> D["AI 여행지 추천"]
D --> E["일정 생성·편집"]
E --> F["지도·날씨"]
F --> G["예약"]
G --> H["여행·기록"]
flowchart LR
A["로그인 화면"] --> B{"회원가입 여부"}
B -->|"미가입"| C["약관 동의"]
C --> D["회원가입"]
D --> E["가입 완료"]
B -->|"가입"| F["아이디·비밀번호"]
F --> G["로그인 완료"]
flowchart LR
A["사용자 질문"] --> B["질문 분석"]
B --> C["Vector DB 검색"]
C --> D["일정·취향 컨텍스트"]
D --> E["LLM 답변"]
E --> F["사용자 확인"]
F --> G["일정에 적용"]
flowchart LR
A["상품 선택"] --> B["재고 확인"]
B --> C["대기열"]
C --> D["Redis Lock"]
D --> E["결제"]
E --> F["재고 차감"]
F --> G["예약 확정"]
flowchart LR
A["관리자 로그인"] --> B["대시보드"]
B --> C["테마·상품 등록"]
C --> D["재고 관리"]
D --> E["예약·성능 모니터링"]
각 화면은 정상 상태만 표현하지 않고 다음 상태를 함께 설계한다.
| 상태 | 공통 처리 원칙 |
|---|---|
| Loading | Skeleton 또는 진행 상태 제공, 중복 요청 방지 |
| Empty | 비어 있는 이유와 다음 행동 제시 |
| Error | 원인에 맞는 메시지, 재시도·문의 경로 제공 |
| Offline | 마지막 데이터 표시 여부와 재연결 상태 안내 |
| Unauthorized | 로그인 또는 권한 요청 후 원래 화면으로 복귀 |
| Expired | 세션·가격·재고·대기 토큰 만료를 구분해 안내 |
| Partial | 외부 API 일부 실패 시 가능한 정보부터 표시 |
| 도메인 | 주요 엔터티 |
|---|---|
| 회원 |
member, social_account, terms_agreement, travel_preference
|
| 여행 |
trip, trip_member, trip_style, trip_draft
|
| 일정 |
itinerary_day, itinerary_item, route_snapshot
|
| 가이드 |
place, place_category, place_review, theme
|
| AI |
chat_session, chat_message, recommendation, rag_source
|
| 예약 |
booking, booking_item, inventory, payment, waiting_token
|
| 기록 |
travel_record, photo, diary, review
|
| 관리자 |
admin_user, admin_role, audit_log, metric_snapshot
|
| 기능 | 예시 API |
|---|---|
| 인증 |
POST /api/auth/login, POST /api/auth/refresh
|
| 회원가입 |
POST /api/members, POST /api/verifications/email
|
| 여행 |
POST /api/trips, GET /api/trips/{tripId}
|
| 취향 | PUT /api/trips/{tripId}/styles |
| 추천 | POST /api/trips/{tripId}/recommendations |
| 장소 |
GET /api/places, GET /api/places/{placeId}
|
| 일정 |
GET /api/trips/{tripId}/itinerary, PATCH /api/itinerary/items/{itemId}
|
| 최적화 |
POST /api/trips/{tripId}/optimization-preview, POST /api/trips/{tripId}/optimization-apply
|
| AI 가이드 |
POST /api/ai/chat, POST /api/ai/actions/{actionId}/confirm
|
| 예약 |
POST /api/bookings, GET /api/bookings/{bookingId}
|
| 대기열 |
POST /api/queues/{productId}/tickets, GET /api/queues/tickets/{token}
|
| 여행 기록 |
POST /api/trips/{tripId}/records, POST /api/photos
|
| 관리자 |
GET /api/admin/dashboard, GET /api/admin/metrics
|
다음 항목은 현재 Figma 목차의 21개 기본 화면 이후에 추가할 수 있는 확장 기능이다.
- 캘린더 파일, 예약 이메일 또는 제휴 플랫폼에서 일정·예약을 가져온다.
- 자동 인식 결과를 미리 보여주고 사용자가 수정한 뒤 저장한다.
- 원본 출처와 마지막 동기화 시간을 표시한다.
- 캘린더, 지도, PDF, 공유 링크 등으로 일정을 내보낸다.
- 읽기 전용과 공동 편집 권한을 구분한다.
- 변경 시 외부 서비스 재동기화 여부를 선택한다.
- 여행 그룹 참여자에게 위치 공유 목적과 시간을 안내한다.
-
15분,1시간,여행 종료까지등 공유 시간을 선택한다. - 사용자가 직접 시작하고 언제든지 중지할 수 있게 한다.
- 동행자의 현재 위치, 정확도 범위, 마지막 업데이트 시간을 표시한다.
- Web Geolocation API와 WebSocket을 사용한다.
- 화면 잠금이나 브라우저 종료 시 갱신이 멈출 수 있음을 안내한다.
-
길을 잃었어요버튼으로 동행자에게 현재 위치와 알림을 전달한다. - 동행자에게 길찾기, 집결지 지정, 전화 연결을 제공한다.
- 오작동 방지를 위해 전송 전 확인 단계를 둔다.
각 화면은 다음 조건을 만족하면 개발 준비가 완료된 것으로 본다.
- 화면 목적과 핵심 사용자 행동이 정의되어 있다.
- 정상·로딩·빈 결과·오류·권한 상태가 정의되어 있다.
- 요청·응답 데이터와 유효성 검사가 정의되어 있다.
- 모바일 반응형 동작이 정의되어 있다.
- 개인정보와 접근 권한이 검토되어 있다.
- 외부 API 실패와 재시도 정책이 정의되어 있다.
- 추적할 분석 이벤트와 운영 지표가 정의되어 있다.
문서 기준 Figma 노드: 3:4310 (00 · 프로젝트 문서)
작성 기준일: 2026-07-22