1. 프로젝트 소개

누구나 꿈꾸는 해외여행, 하지만 급변하는 환율, 천정부지로 치솟는 항공권 가격, 그리고 알 수 없는 현지 물가 앞에서 우리는 늘 고민한다. “지금 가장 합리적이고 매력적인 여행지는 어디일까?”, “내가 원하는 시기에 가장 만족스러운 선택은 무엇일까?” 이러한 고민을 데이터의 힘으로 해결하고자, 나는 Microsoft Data School 프로젝트의 일환으로 ‘나만의 최적 여행지 추천 시스템을 구축했다.

이 시스템은 각 국가의 환율, 항공권 가격, 구글 트렌드 지수, 날씨 정보 등을 실시간에 가깝게 통합 분석하여 ‘여행지 매력도 점수’를 산출하고 사용자에게 개인에게 최적화된 여행지를 추천해주는 것을 목표로 한다.

2. 프로젝트 목표 : ‘가성비’를 넘어선 ‘나만의 최적 여행지’를 찾다

나의 ‘가성비 여행지 추천 시스템’은 단순히 가장 저렴한 여행지를 찾아주는 것을 넘어선다. 여기서 말하는 ‘가성비’는 단순히 낮은 가격만을 의미하는 것이 아니라, 가격 대비 만족도와 개인의 선호도를 최대한 반영한 최적의 경험을 제공하는 것을 목표로 한다.

나는 다음과 같은 복합적인 요소를 실시간으로 분석하여 사용자에게 ‘가성비 있으면서도 나에게 가장 매력적인’ 여행지를 추천하는 시스템을 구상했다.

  • 환율: 5분 간격의 실시간 환율 변동을 반영하여 현지에서 실질적으로 체감하는 비용을 정확히 계산한다.
  • 항공권 가격: 원하는 시점의 최저가 항공권을 찾아내 여행 시작 비용을 예측한다.
  • 현지 물가: 도시별 평균 식비, 숙박비, 교통비 등 현지 생활비를 파악하여 총 예산을 추정한다.
  • 트렌드 지수: 지금 사람들이 가장 많이 검색하고 관심 갖는 “뜨는” 여행지를 파악한다.
  • 여행 안전 정보: 외교부 데이터를 기반으로 위험 지역은 추천에서 제외하고 안전한 곳만 선별한다.
  • 강수량: 여행 시기별 우기/건기 정보를 반영하여 쾌적한 여행 경험을 보장한다.
  • 날씨: 실시간 날씨를 제공하여, 현재 특정 도시의 날씨 정보를 제공한다.

이 모든 데이터를 실시간에 가깝게 통합하고 분석하여, 사용자에게 최적의 여행지를 제시할 것이다.

3. 시스템 아키텍처 : 데이터의 흐름 설계 (End-to-End 파이프라인)

이 방대한 데이터를 수집하고, 실시간으로 처리하며, 최종적으로 사용자에게 보여주는 모든 과정은 클라우드 기반의 End-to-End 데이터 파이프라인으로 구축될 예정이다. 나는 Microsoft Azure 서비스를 활용하여 이 파이프라인을 설계했다.

초기 구상 단계에서 각 Azure 서비스의 역할은 다음과 같다.

  • 데이터 수집 (Azure Function App): 다양한 외부 데이터 소스 (웹 크롤링, 외부API)로 부터 데이터를 자동으로 가져온다.
  • 데이터 허브 (Azure Event Hubs) : 수집된 모든 데이터를 실시간으로 안정적으로 모으는 중앙 통로 역할을 한다.
  • 실시간 데이터 처리 (Azure Stream Analytics) : 모인 데이터를 실시간으로 분석, 통합하고 ‘매력도 점수’를 계산하며, 모든 복합적인 조인 및 계산을 여기서 처리한다.
  • 데이터 시각화 및 서비스(Power BI) : 저장된 데이터를 기반으로 직관적인 대시보드를 구축하고, 사용자에게 추천 서비스를 제공한다. (향후 웹 애플리케이션 또는 RAG 챗봇으로 확장 가능성을 염두에 두었다.)

이 모든 과정은 Python과 GitHub를 이용한 체계적인 버전 관리 및 협업 환경에서 진행될 것이다.

4. 앞으로의 기대

이 프로젝트를 통해 데이터 엔지니어링 측면에서의 기술적 도전과 배움의 기회를 얻을 수 있을것이라고 확신한다.

다음 포스팅부터는 이러한 초기 구상이 실제 구현 과정에서 어떻게 변화하고 발전했는지에 대한 내용을 작성할 것이다. 특히, Google Trends 데이터 수집 과정에서의 HTTP 429 Too Many Requests 오류를 어떻게 극복했으며, Stream Analytics의 역할이 왜 조정되고 Azure Databricks가 핵심적인 역할을 맡게 되었는지 등, 실제 프로젝트에서 발생했던 문제들과, 그 해결책들을 담을 생각이다.