배광민 · lirodek0106

CommaTravel — 쉼표여행

여행자의 상태와 여행 분위기·시간·지역·시군구·활동량을 바탕으로 국내 여행 코스와 장소를 추천하는 사이드 프로젝트입니다.

주요 기능

• 조건 선택부터 규칙 기반 추천 결과와 커서 기반 추가 조회까지 이어지는 여행 탐색 흐름

• 코스·장소 상세, 지도와 경유지 이동 정보, 저장·공유·리뷰 기능

• 소셜 로그인과 계정 연결, 비회원 저장 데이터의 회원 계정 병합

• Elasticsearch 기반 장소·코스 통합 검색과 지역·위치 필터, PostgreSQL 검색 대체 처리

• 검색한 관광 데이터를 근거로 답하는 Ollama 여행 챗봇과 모델 장애 시 검색 결과 대체 응답

아키텍처

Vue·TypeScript·Vuetify 프론트엔드는 FSD 방향의 계층으로 화면과 기능을 분리합니다. Java·Spring Boot 백엔드는 JPA·QueryDSL과 PostgreSQL·Flyway를 사용합니다. TourAPI 공공 관광 데이터를 적재해 추천과 검색에 활용하고, PostgreSQL 원본과 Elasticsearch 검색 모델을 구분합니다.

검증과 공개 범위

Vitest와 Spring Boot·Testcontainers 테스트가 구성되어 있습니다. 코스 추천은 설명 가능한 규칙 기반 점수이며, 챗봇은 검색 근거를 활용합니다. 일부 외부 API 기능은 공급자 설정과 실제 응답 검수가 별도로 필요합니다.

사용 기술

Java · Spring Boot · JPA · QueryDSL · Vue.js · TypeScript · Vuetify · PostgreSQL · Vitest · Flyway · Elasticsearch · Ollama · Pinia · Testcontainers