brunch

You can make anything
by writing

C.S.Lewis

by Jacob Sunho Kim Jacob kim Aug 17. 2024

AI로 여행의 미래를 그리다: 해커톤수상 프로젝트

36시간의 열정: 아이디어에서 프로토타입까지



안녕하세요, 여러분. 얼마 전 인터파크트리플에서 주최한 AI 해커톤 ‘인트톤(INTthon)’에 참가했던 경험을 나누고자 합니다. 우리 팀은 ‘SnapMatch AI’라는 프로젝트로 3등이라는 값진 성과를 거두었는데요, 그 여정을 함께 돌아보겠습니다.

해커톤 소개

인트톤은 ‘인터파크트리플’과 ‘해커톤’의 합성어로, 회사 내에서 AI 기술을 활용한 혁신적인 아이디어를 발굴하고 실현하는 것을 목표로 했습니다. 이번 해커톤의 주제는 다음 세 가지 중 하나를 선택할 수 있었습니다  

인터파크트리플 구성원들의 업무 효율 및 성과를 증진시킬 수 있는 아이디어

인터파크트리플에 접목할 AI 서비스 아이디어

인터파크트리플 투어와 엔터 고객의 크로스셀을 높일 수 있는 아이디어


프로젝트 배경: 여행의 새로운 패러다임을 찾아서

이 프로젝트를 시작하게 된 이야기를 들려드리고 싶었어요. 사실 이 아이디어는 저희가 일상에서 마주한 작은 관찰들에서 시작되었답니다.


변화하는 여행 트렌드

요즘 SNS를 보면 여행 사진들이 넘쳐나죠. 친구들이 올린 멋진 풍경 사진을 보며 “나도 저기 가보고 싶다”라고 생각해 본 적 있으신가요? 저희도 그랬어요. 그리고 이런 생각이 들었죠. “이 사진만 보고도 여행 계획을 세울 수 있다면 얼마나 좋을까?”

동시에 AI 기술이 우리 일상에 깊숙이 들어와 있다는 것도 눈여겨보았어요. 챗봇으로 간단한 정보를 얻고, AI가 그린 그림을 감상하는 게 더 이상 특별한 일이 아니더라고요. 그래서 저희는 생각했습니다. “AI를 활용해 여행 계획을 더 쉽고 재미있게 만들 수 있지 않을까?”


여행 계획의 어려움

하지만 여전히 많은 사람들이 여행 계획을 세우는 데 어려움을 겪고 있다는 사실도 알게 되었어요. 정보는 넘쳐나지만, 정작 자신에게 딱 맞는 여행지를 찾기는 쉽지 않더라고요. 블로그, 여행 앱, 리뷰 사이트… 정보의 홍수 속에서 오히려 선택이 더 어려워지는 경우가 많았죠.

특히 눈에 띈 건, 사람들이 ‘나만의 특별한 경험’을 원한다는 거예요. 인스타그램에 올릴 만한, 남들과는 다른 unique한 여행을 꿈꾸는 거죠. 하지만 현실은 늘 비슷비슷한 관광 코스를 돌게 되는 경우가 많았어요.


인터파크트리플의 고민

그러던 중 저희가 속한 인터파크트리플의 상황도 들여다보게 되었어요. 회사에서는 여행 상품과 엔터테인먼트 상품을 연계해 판매하려고 노력하고 있었지만, 생각만큼 성과가 나지 않고 있었거든요.

예를 들어, 제주도 여행 패키지를 구매한 고객에게 제주도의 뮤직 페스티벌 티켓을 함께 추천하는 식이었죠. 하지만 이런 방식은 다소 획일적이고, 고객의 실제 취향을 제대로 반영하지 못하는 한계가 있었어요.


아이디어의 탄생

이런 관찰과 고민들이 모여 SnapMatch AI라는 아이디어가 탄생했어요. 저희가 생각한 건 이거였죠.

“사용자가 마음에 드는 사진 한 장만 올리면, AI가 그 사진의 분위기와 스타일을 분석해서 딱 맞는 여행지를 추천하고, 거기에 어울리는 액티비티나 공연까지 함께 제안하면 어떨까?”

이렇게 하면 사용자는 복잡한 검색 과정 없이도 자신의 취향에 꼭 맞는 여행 계획을 세울 수 있고, 회사 입장에서는 여행과 엔터테인먼트 상품을 자연스럽게 연계할 수 있을 거라고 생각했어요.


도전과 가능성

물론 이 아이디어를 실현하는 게 쉬운 일은 아니었어요. AI 모델을 어떻게 학습시킬 것인지, 사용자 경험을 어떻게 설계할 것인지, 개인정보는 어떻게 보호할 것인지 등 수많은 과제가 있었죠.

하지만 우리는 이 도전이 가치 있다고 믿었어요. SnapMatch AI가 실현된다면, 여행의 개념 자체를 바꿀 수 있을 거라고 생각했거든요. 더 이상 여행은 목적지를 정하고 계획을 세우는 것부터 시작하는 게 아니라, 일상의 작은 순간에서 영감을 받아 시작되는 특별한 경험이 될 수 있을 것 같았어요.


목표

SnapMatch AI의 주요 목표는 다음과 같습니다


사용자에게 사진 한 장을 통해 새로운 여행지를 발견할 기회 제공

일상에서 벗어나 새로운 문화와 경험을 탐색할 수 있는 플랫폼 구축

여행 계획의 부담을 줄이고 즐거운 여행 경험 제공

인터파크의 여행 상품 및 엔터테인먼트 상품의 크로스셀링 증대




개발 과정을 알려드릴게요!

SnapMatch AI 프로젝트의 개발 과정은 제한된 시간 내에 최대한의 효과를 얻기 위해 체계적으로 진행되었습니다. 각 단계별로 상세한 내용을 공유해볼게요!


1. 아이디어 구체화 및 기술 스택 선정

첫 단계에서는 팀원들의 다양한 아이디어를 수렴하고 실현 가능성을 검토했습니다. 주요 결정 사항은 다음과 같습니다  

핵심 기능 정의: 이미지 기반 키워드 추출, 개인화된 여행지 추천, AI 이미지 생성

기술 스택 선정:

프론트엔드: React.js (빠른 프로토타이핑에 용이했음)

백엔드: Node.js (JavaScript 생태계 통일성 확보)

AI 모델: GPT-4 및 DALL-E 사용

클라우드 서비스: Azure (마이크로소프트와의 협력을 고려)


2. 프로토타입 개발


2.1 이미지 분석 및 키워드 추출

이 단계에서 가장 중요한 부분은 사용자가 업로드한 이미지에서 적절한 여행 관련 키워드를 추출하는 것이었습니다. 이를 위해 GPT-4 모델을 활용했으며, 다음과 같은 프롬프트 엔지니어링 과정을 거쳤습니다



### OBJECTIVE ### 
Your task is to carefully analyze the photos sent by users and create keywords.

### Instruction ### 
- Remember that your response to the user must be in Korean.
- Carefully analyze the submitted photos and input text to extract travel-related keywords.
- Create 5 categories: 1. 여행 스타일, 2. 사진의 장소, 3. 비슷한 여행지, 4. 여행 분위기, 5. 기타 키워드
- For category 1, 4, and 5, extract at least 3 keywords, but no more than 5 keywords.
- For category 2,3 extract keywords as many as the number uploaded by the user.
- Exclude verb in all keywords
- If there are similar meaning or same results in all of your answers remove keywords and replace to another.
- Extract at least 20 keywords, but no more than 25, and if you run out of keywords, suggest the most similar ones.

### Task ### 
- For category 1: Find out travel style keywords based on the results of your analysis.
- For category 2: Find out the exact locations of the images. only if exact locations can be found.
- For category 3: Find out famous tourist attractions that are very related or similar to the keywords based on the results of your analysis. If results are same with category 2, find another results.
- For category 4: Find out travel atmosphere based on the results of your analysis.
- For category 5: Find out any keywords based on the results of your analysis. and if you run out of keywords, suggest the most similar ones.

### Response Format ### 
- Make all the resulting values into one array after shuffling all orders.
- Please give me an answer in JSON type.
- Please only generate answers as json objects.
- Please do not add any other sentences.
- Please do not add "json" string.### OBJECTIVE ###Your task is to carefully analyze the photos sent by users and create keywords.


이 프롬프트의 주요 특징은 다음과 같습니다  

명확한 목적 설정: AI에게 사용자 사진을 분석하여 여행 관련 키워드를 생성하는 명확한 목표를 제시했습니다.

구조화된 지시사항: 카테고리별로 키워드를 추출하도록 하여 다양한 측면의 여행 정보를 포함하도록 했습니다.

제약 조건 설정: 키워드 수, 동사 제외 등의 제약을 두어 결과의 일관성과 품질을 관리했습니다.

유연성 확보: 유사한 키워드 대체, 추가 제안 등을 통해 다양한 상황에 대응할 수 있게 했습니다.

표준화된 출력 형식: JSON 형태의 출력을 요구하여 후속 처리를 용이하게 했습니다.


이러한 프롬프트 설계를 통해, 우리는 일관성 있고 풍부한 여행 관련 키워드를 추출할 수 있었습니다. 물론, 초기에는 몇 가지 문제점들이 발견되었습니다  

때때로 너무 일반적인 키워드가 추출되는 경우

사진의 세부적인 특징을 놓치는 경우

특정 카테고리에 편중된 키워드 추출


이러한 문제들을 해결하기 위해 우리는 프롬프트를 지속적으로 개선했으며, 추출된 키워드에 대한 후처리 로직을 추가하여 결과의 품질을 향상시켰습니다.


2.2 여행지 추천 알고리즘 개발

추출된 키워드를 바탕으로 적절한 여행지를 추천하는 알고리즘을 개발했습니다. 이 과정에서 다음과 같은 접근 방식을 사용했습니다:  

키워드 가중치 설정: 각 카테고리별로 다른 가중치를 부여하여 더 중요한 요소에 집중할 수 있게 했습니다.

협업 필터링: 유사한 키워드를 선택한 다른 사용자들의 선호도를 반영했습니다.

콘텐츠 기반 필터링: 여행지의 특성과 추출된 키워드 간의 유사도를 계산했습니다.

이 알고리즘의 구현에는 여러 기술적 도전이 있었습니다. 특히 실시간 처리와 개인화된 추천 사이의 균형을 잡는 것이 어려웠습니다. 우리는 일부 계산을 사전에 처리하고 캐싱하는 방식을 도입하여 이 문제를 해결했습니다.


2.3 AI 이미지 생성

추천된 여행지의 이미지를 생성하기 위해 DALL-E 모델을 사용했습니다. 이 과정에서도 프롬프트 엔지니어링이 중요한 역할을 했습니다



### Role ###
You are a great photographer.

### Instruction ###
Please create a picture that matches the keyword entered by the user.
It should feel like a real picture.
The more you feel like a famous tourist destination, the better.

Please refer to the keyword below:
[Keyword list]

이 프롬프트는 간단하지만 효과적이었습니다. “great photographer” 역할을 부여함으로써 고품질의 이미지 생성을 유도했고, “famous tourist destination” 언급을 통해 여행지 이미지에 초점을 맞추도록 했습니다.

하지만 이 접근 방식에도 한계가 있었습니다. 생성된 이미지가 때때로 비현실적이거나 추천된 여행지와 정확히 일치하지 않는 경우가 있었습니다. 이를 보완하기 위해 우리는 실제 여행지 이미지 데이터베이스를 구축하고, AI 생성 이미지와 실제 이미지를 혼합하여 사용하는 방식을 고려했습니다.



3. 통합 및 최적화


각 컴포넌트를 개발한 후, 이들을 하나의 시스템으로 통합하는 과정이 필요했습니다. 이 단계에서 주로 다음과 같은 작업을 수행했습니다

API 설계 및 구현: 프론트엔드와 백엔드 간의 효율적인 통신을 위한 API 설계

성능 최적화: 이미지 처리, AI 모델 추론 등에서의 병목 현상 해결

에러 처리 및 로깅: 안정적인 서비스 운영을 위한 에러 처리 로직 구현

사용자 인터페이스 개선: 직관적이고 반응성 높은 UI/UX 구현



4. 테스트 및 디버깅


제한된 시간 내에 가능한 많은 시나리오를 테스트하려 노력했습니다. 주요 테스트 항목은 다음과 같았습니다

다양한 이미지 유형에 대한 키워드 추출 정확도

추천 알고리즘의 일관성 및 다양성

AI 이미지 생성의 품질 및 속도

전체 시스템의 응답 시간 및 안정성



테스트 과정에서 발견된 버그와 개선 사항들은 즉시 수정하여 프로토타입의 완성도를 높였습니다.


주요 기능 및 특징

이미지 기반 키워드 추출: 사용자가 업로드한 이미지에서 AI가 자동으로 여행 관련 키워드를 추출합니다.

개인화된 여행지 추천: 추출된 키워드를 바탕으로 사용자의 취향에 맞는 여행지를 추천합니다.

AI 생성 이미지: 추천된 여행지의 이미지를 AI가 실시간으로 생성하여 제공합니다.

크로스셀링 기능: 여행 상품과 연계된 엔터테인먼트 상품(콘서트, 뮤지컬 등)을 함께 추천하여 크로스셀링 기회를 제공합니다.




발표와 평가


해커톤의 마지막 단계인 발표에서 너무나 긴장하고 떨렸습니다 하나 이 과정을 통해 우리는 프로젝트의 가치를 효과적으로 전달하는 전략을 세웠고, 전문가들로부터 날카로운 피드백을 받을 수 있었습니다.


1. 발표 준비


발표 시간이 3분으로 제한되어 있었기 때문에, 우리는 핵심 내용을 간결하고 효과적으로 전달하는 데 주력했습니다. 발표 준비 과정은 다음과 같았습니다


핵심 메시지 선정: SnapMatch AI의 주요 기능과 차별점을 3가지로 압축했습니다.

이미지 기반 여행 추천의 혁신성

AI 기술을 활용한 개인화된 경험 제공

여행과 엔터테인먼트의 크로스셀링 가능성


발표 구조 설계:

도입 (30초): 문제 정의 및 솔루션 개요

본론 (2분): 주요 기능 시연 및 기술 설명

결론 (30초): 비즈니스 임팩트 및 향후 계획


발표 자료 준비:

간결하고 임팩트 있는 슬라이드 디자인

주요 기능의 실시간 데모 준비


역할 분담:

발표자: 프로젝트 개요 및 비전 설명

기술 시연자: 핵심 기능 실시간 데모


리허설

팀 내부 피드백 세션 진행

시간 제한 내 발표 연습


발표 당일, 우리는 긴장된 마음으로 순서를 기다렸습니다. 드디어 우리 차례가 되었을 때, 준비한 대로 발표를 진행했습니다:




2. 질의응답


발표 후 심사위원들로부터 날카로운 질문들이 이어졌습니다:

Q: 기존의 여행 추천 서비스와의 차별점은 무엇인가요? A: 우리는 사용자가 업로드한 이미지를 기반으로 한 직관적이고 즉각적인 추천을 제공합니다. 또한, AI 생성 이미지를 통해 사용자가 추천받은 여행지를 미리 ‘경험’할 수 있게 해줍니다.

Q: AI 모델의 정확도는 어떻게 보장하나요? A: 현재는 프로토타입 단계로, 지속적인 학습과 개선이 필요합니다. 향후 사용자 피드백을 반영한 모델 업데이트와 더 많은 여행 데이터를 확보하여 정확도를 높여갈 계획입니다.

Q: 개인정보 보호는 어떻게 처리하고 있나요? A: 사용자가 업로드한 이미지는 키워드 추출 후 즉시 삭제되며, 모든 개인 데이터는 암호화하여 저장합니다. 또한, 추천 시스템에서는 익명화된 데이터만을 사용합니다.


3. 평가 및 피드백

심사위원들로부터 다음과 같은 평가와 피드백을 받았습니다:


1.긍정적 평가

이미지 기반 추천의 혁신성과 직관성

AI 기술의 효과적인 활용

여행과 엔터테인먼트의 크로스셀링 아이디어


2. 개선 제안

더 많은 실제 사용 사례와 데이터 필요

장기적인 비즈니스 모델 구체화 필요


3. 향후 발전 방향 제안

실제 여행사 데이터와의 연동 가능성 탐색

사용자 리뷰 및 피드백 시스템 강화




마무리 및 소감

인트톤 해커톤에 참여하면서 우리 팀은 정말 많은 것을 배우고 경험했습니다. 1박 2일이라는 짧은 시간 동안 아이디어를 구체화하고, 프로토타입을 만들어 발표까지 하는 과정은 힘들었지만 그만큼 보람찼습니다.


AI 기술에 대한 이해 심화

이번 기회를 통해 AI 기술, 특히 GPT-4와 DALL-E같은 최신 모델들을 실제로 적용해보면서 이 기술들의 가능성과 한계를 직접 체감할 수 있었어요. 예를 들어, GPT-4를 이용해 이미지에서 여행 관련 키워드를 추출할 때, 모델의 놀라운 이해력과 동시에 때로는 예상치 못한 결과를 내놓는 것을 보며 AI의 현주소를 실감했죠.


팀워크의 중요성

우리 팀은 PO 두 명, 개발자 두 명으로 구성되어 있었는데, 서로 다른 배경을 가진 팀원들이 협력하는 과정이 특히 인상 깊었습니다. PO들은 사용자 관점에서 서비스를 구상하고, 개발자들은 그 아이디어를 구현 가능한 형태로 다듬어 나갔어요. 이 과정에서 때로는 의견 충돌도 있었지만, 서로를 존중하며 최선의 결과를 위해 노력했습니다.


AI와 여행 산업의 만남

SnapMatch AI 프로젝트를 통해 AI 기술이 여행 산업에 어떤 변화를 가져올 수 있는지 구체적으로 그려볼 수 있었어요. 단순히 여행지를 추천하는 것을 넘어, 사용자의 일상적인 사진 한 장으로부터 새로운 여행의 영감을 제공하는 것. 이것이 바로 우리가 꿈꾸는 미래의 여행 서비스입니다.


앞으로의 계획

해커톤은 끝났지만, SnapMatch AI의 여정은 이제 시작입니다. 우리는 다음과 같은 계획을 세우고 있어요:

프로토타입 개선: 현재의 프로토타입을 더욱 안정화하고, 실제 사용자들의 피드백을 받아 개선해 나갈 예정입니다

데이터 확보: 더 다양하고 풍부한 여행 데이터를 확보하여 추천의 정확도를 높이려고 합니다.

UI/UX 개선: 사용자들이 더욱 직관적으로 서비스를 이용할 수 있도록 인터페이스를 개선할 계획입니다.

비즈니스 모델 구체화: 여행과 엔터테인먼트를 연계한 크로스셀링 전략을 더욱 구체화할 예정입니다.

관련 부서와의 협업: 인터파크트리플 내 여러 부서와 협력하여 실제 서비스 론칭 가능성을 타진해볼 계획입니다.



수상 소감


이번 인트톤 해커톤은 우리에게 정말 값진 경험이었습니다. 기술적인 도전을 넘어, 새로운 아이디어를 실현해가는 과정에서 느낀 성취감과 팀워크의 중요성은 앞으로의 업무에도 큰 자산이 될 거예요.

특히 PO와 개발자가 한 팀이 되어 서로의 전문성을 존중하며 협력했던 과정이 가장 기억에 남습니다. 이런 경험을 할 수 있게 해준 인터파크트리플과 함께 고민하고 노력해준 팀원들에게 진심으로 감사드립니다.

앞으로도 이런 기회가 있다면 주저 없이 참여할 것 같아요. 여러분도 기회가 된다면 꼭 참여해보세요. 해커톤은 단순히 기술적 역량을 겨루는 자리가 아니라, 새로운 아이디어를 발견하고 협업의 가치를 깨닫는 소중한 경험이 될 거예요.

SnapMatch AI가 앞으로 어떻게 발전해 나갈지 정말 기대됩니다. 이 프로젝트를 시작으로, 앞으로도 계속해서 혁신적인 서비스 개발에 매진하겠습니다. 우리의 작은 도전이 여행 산업에 새로운 바람을 불어넣을 수 있기를 희망합니다.


마지막으로, 이 글을 읽어주신 여러분께 감사드립니다. 우리의 경험이 여러분에게도 작은 영감이 되었기를 바랍니다. 함께 성장하고 발전해 나가는 여정에 여러분도 동참해 주세요. 감사합니다!



참고 자료  

SnapMatch AI 프로젝트 발표자료


https://youtu.be/3NLgoYp3Fis

이 프로젝트와 관련하여 더 자세한 내용이 궁금하신 분들은 언제든 연락 주시기 바랍니다. 함께 배우고 성장하는 기회가 되었으면 좋겠습니다. 감사합니다.


제이콥을 SNS를 통해 만나보세요!

✍️ Linkedin: 

https://www.linkedin.com/in/jacob1kim/

✍️ Brunch: 

https://brunch.co.kr/@jacob1

✍️ Mediam: 

https://medium.com/@shkim.the

✍️ X: 

https://x.com/jacob_sunho

작가의 이전글 베트남에서 데이팅 어플 사업하다가 망했습니다!
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari