| No | 작업명 | 주요 내용 | 분류 | 상태 |
|---|---|---|---|---|
| 001 | 프로젝트 초기 설정 |
Next.js 16 App Router + TypeScript strict, Tailwind CSS v4, shadcn/ui, ESLint/Prettier |
인프라 | ✅ 완료 |
| 002 | Prisma 스키마 설계 |
MariaDB + Prisma 5.22, User / Conversation / Message / Itinerary / Place / FAQ / SystemPrompt / AIProviderConfig / BannedWord / Reservation / AgentMemo |
인프라 | ✅ 완료 |
| 003 | 라우팅 구조 및 i18n 골격 |
next-intl [locale] 라우트 (ko/en/id), 관리자 라우트, LocaleSwitcher, Header/BottomNav |
인프라 | ✅ 완료 |
| 004 | 타입 정의 및 인터페이스 |
ChatMessage / Tool / ToolCall / LLMProvider 인터페이스, Itinerary / Place / User / API 공통 타입 |
인프라 | ✅ 완료 |
| No | 작업명 | 주요 내용 | 분류 | 상태 |
|---|---|---|---|---|
| 005 | Auth.js v5 사용자 인증 |
Credentials Provider, bcrypt 해싱, JWT 세션, 회원가입/로그인 UI, src/proxy.ts 미들웨어 |
인증 | ✅ 완료 |
| 006 | 마이페이지 구현 |
/api/user/profile, /api/user/password, 프로필 조회/수정, 비밀번호 변경, 저장된 일정 목록 |
인증 | ✅ 완료 |
| 007 | 비로그인→로그인 대화 인계 |
sessionStorage 기반 임시 대화 → /api/conversation/handoff → DB userId 동기화 |
인증 | ✅ 완료 |
| No | 작업명 | 주요 내용 | 분류 | 상태 |
|---|---|---|---|---|
| 008 | LLM 프로바이더 어댑터 |
LLMProvider 인터페이스, Anthropic / OpenAI 어댑터, AES-256-GCM API Key 복호화, DB 동적 로드 |
AI | ✅ 완료 |
| 009 | 채팅 UI 컴포넌트 |
MessageBubble, MessageList, ChatInput, TypingIndicator, react-markdown + rehype-sanitize XSS 방어 |
UI | ✅ 완료 |
| 010 | 스트리밍 응답 및 멀티턴 |
/api/chat/stream SSE, Rate Limit(IP당 20req/min), Sliding window 10턴, DB 저장 |
AI | ✅ 완료 |
| 011 | 시스템 프롬프트 DB 로드 |
locale별 활성 프롬프트, 메모리 캐시 + TTL, 관리자 변경 시 즉시 반영 |
AI | ✅ 완료 |
| No | 작업명 | 주요 내용 | 분류 | 상태 |
|---|---|---|---|---|
| 012 | LLM Tool Use 아키텍처 |
Tool/ToolResult 인터페이스, 프로바이더별 변환, 다단계 체이닝 루프(MAX 5회), 병렬 실행 |
AI | ✅ 완료 |
| 013 | 날씨/환율 외부 API Tool |
OpenWeatherMap get_weather, open.er-api.com get_exchange_rate, 응답 캐싱 |
외부API | ✅ 완료 |
| 014 | 추천 및 유의사항 Tool |
get_recommendations(Place DB 필터), FAQ 매칭, 예산/동행/목적 기반 필터링 |
외부API | ✅ 완료 |
| No | 작업명 | 주요 내용 | 분류 | 상태 |
|---|---|---|---|---|
| 015 | 여행 일정 추천 및 저장 |
create_itinerary Tool, Zod 검증, /api/itinerary CRUD, 여행목적/예산/인원 저장 |
UI | ✅ 완료 |
| 016 | Day별 스케줄 UI |
/itinerary/[id] 상세 페이지, @dnd-kit 드래그앤드롭, 장소 CRUD, Day 탭 UI |
UI | ✅ 완료 |
| 017 | Google Maps 동선 시각화 |
@vis.gl/react-google-maps, 서버사이드 지오코딩 프록시, Marker + Polyline 렌더링 |
외부API | ✅ 완료 |
| No | 작업명 | 주요 내용 | 분류 | 상태 |
|---|---|---|---|---|
| 018 | 일정 공유 URL |
nanoid 토큰, /api/itinerary/[id]/share, 공개 페이지 /share/[token], OG Meta 태그 |
UI | ✅ 완료 |
| 019 | PDF 다운로드 |
@react-pdf/renderer, Noto Sans KR 임베딩, /api/itinerary/[id]/pdf, A4 레이아웃 |
UI | ✅ 완료 |
| No | 작업명 | 주요 내용 | 분류 | 상태 |
|---|---|---|---|---|
| 020 | 전체 UI 다국어 적용 |
messages/ko.json, en.json, id.json 전체 키, useTranslations / getTranslations 적용 |
UI | ✅ 완료 |
| 021 | 다국어 시스템 프롬프트 |
locale별 시스템 프롬프트 시드, 챗봇 locale 컨텍스트 주입, 다국어 에러 메시지 |
AI | ✅ 완료 |
| No | 작업명 | 주요 내용 | 분류 | 상태 |
|---|---|---|---|---|
| 022 | 관리자 인증 및 대시보드 |
ADMIN_JWT_SECRET, jose HS256, admin_token httpOnly 쿠키(8h), 통계 대시보드 |
관리자 | ✅ 완료 |
| 023 | FAQ 및 추천 데이터 CRUD |
/admin/faq, /admin/places 페이지네이션 + 검색, 카테고리/태그/좌표 관리 |
관리자 | ✅ 완료 |
| 024 | 시스템 프롬프트 관리 |
/admin/prompts locale 탭, 버전 히스토리 + 롤백, 활성 버전 지정 |
관리자 | ✅ 완료 |
| 025 | AI 프로바이더 설정 |
Claude/ChatGPT 동적 전환, AES-256-GCM 암호화, 트랜잭션 기반 활성 전환 |
관리자 | ✅ 완료 |
| 026 | 대화 로그 및 금칙어 관리 |
/admin/logs 키워드 검색, 상세 조회, /admin/banned-words 정규식 지원, 캐시 무효화 |
관리자 | ✅ 완료 |
| No | 작업명 | 주요 내용 | 분류 | 상태 |
|---|---|---|---|---|
| 027 | B2B 상담 관리 모듈 |
/admin/consultations 목록/상세, 상태관리(NEW→IN_PROGRESS→BOOKED→CLOSED), 카테고리 분류, 상담원 배정, 예약 등록, 내부 메모 |
관리자 | ✅ 완료 |
| 028 | 외부 연동 및 확장 |
get_booking_links Tool (항공/숙박/액티비티 파트너 URL), KakaoTalk/WhatsApp Webhook, Email/Slack 알림 시스템 |
외부연동 | ✅ 완료 |
| 029 | 보안 점검 및 코드 리뷰 |
Zod 검증 일괄 적용, unsafe 캐스팅 제거, HMAC 서명 검증, safeInt NaN 방지, Prisma 트랜잭션, CSP 헤더, Rate Limit |
보안 | ✅ 완료 |
| No | 작업명 | 주요 내용 | 분류 | 상태 |
|---|---|---|---|---|
| 030 | 50개국 추천 여행 일정 생성 |
55개 일정 시드 데이터 (도쿄/파리/뉴욕 등), 국가별 Unsplash 이미지, 메인 페이지 추천 6개 랜덤 표시 |
UI | ✅ 완료 |
| 031 | 여행 일정 검색 페이지 |
/search 검색 페이지, 키워드(도시/국가/제목) 검색, 여행 목적별 필터(가족/커플/허니문/출장/솔로/단체), 페이지네이션, /api/itinerary/search API |
UI | ✅ 완료 |
| 032 | 알림 시스템 및 알림 페이지 |
Notification DB 모델, /notifications 리스트 페이지, 20개 시드 데이터(일정/날씨/환율/프로모/시스템), 읽음 처리, 헤더 알림 배지, /api/notifications API |
UI | ✅ 완료 |
| 모듈 | 설명 | 주요 기능 | 상태 |
|---|---|---|---|
| 2-1 | B2C AI 컨시어지 |
자연어 챗봇, LLM Tool Use, 날씨/환율/추천, 시스템 프롬프트, FAQ 기반 응답 |
✅ 완료 |
| 2-2 | 맞춤 추천 및 일정 관리 |
여행 성향/예산/목적 분석, 일정 생성/저장, Day별 UI, 지도 시각화, PDF/공유 |
✅ 완료 |
| 2-3 | B2B 상담 지원 및 예약 |
상담 목록/상세, 상태관리, 상담원 배정, 예약 등록, 내부 메모 |
✅ 완료 |
| 2-4 | 다국어 지원 |
next-intl (ko/en/id), locale 라우팅, 시스템 프롬프트 locale별 분리 |
✅ 완료 |
| 2-5 | 관리자 페이지 |
대시보드, FAQ/Place CRUD, 프롬프트 관리, AI 프로바이더 설정, 로그/금칙어 |
✅ 완료 |
| 2-6 | 외부 연동 및 확장 |
파트너 예약 링크, Google Maps, KakaoTalk/WhatsApp Webhook, 이메일/Slack 알림 |
✅ 완료 |