🌿 OuttaDoor: 일상 순간을 야외 모험으로 바꾸기
요약
OuttaDoor는 평범한 일상 순간을 야외 모험의 기회로 전환하는 웹 애플리케이션입니다. 사용자가 원하는 분위기나 활동을 선택하면, 퀘스트를 생성하여 실내 생활에서 벗어나 주변 환경을 탐험하도록 영감을 제공합니다. 이 프로젝트는 FastAPI와 Python으로 백엔드를 구축하고, Ollama를 통해 Gemma 3 1B 같은 오픈 웨이트 모델을 로컬에서 활용하는 과정을 담고 있습니다.
핵심 포인트
- 일상의 순간을 야외 활동 기회로 전환하는 웹 앱 아이디어입니다.
- FastAPI와 JavaScript 스택을 사용하여 개발되었습니다.
- Ollama를 이용해 Gemma 3 1B 등 오픈 웨이트 모델을 로컬 환경에서 구동했습니다.
- 로컬 추론은 통제력을 높이지만, 배포 시 환경 설정의 어려움이 있습니다.
제가 만든 것:
🌿 OuttaDoor — 평범한 순간들을 야외 모험으로 전환하기
만약 기술이 우리가 스크린에 보내는 시간을 줄이고 주변 세계를 경험하는 시간을 늘리도록 장려한다면 어떨까요?
이 아이디어가 OuttaDoor의 영감이 되었습니다. 이 웹 애플리케이션은 평범한 순간들을 야외 모험의 기회로 전환하도록 설계되었습니다.
사용자는 Nature, Walking, Photography, Friends와 같은 야외 분위기를 선택하고, 이용 가능한 시간과 기분을 선택하여, 밖에 나가서 무언가 다른 것을 시도할 수 있도록 돕는 퀘스트를 생성할 수 있습니다.
아이디어는 간단합니다: 스크린을 목적지가 아닌 시작점으로 만드는 것입니다.
저는 일상에 약간의 영감이 필요하거나, 주변 환경을 탐험하거나, 작은 야외 활동을 즐기고 싶은 사람들을 위해 OuttaDoor를 만들었습니다.
데모
🌐 라이브 웹사이트: https://outtadoor-1.onrender.com/
이 애플리케이션은 Render에 배포되었으며, 제 노트북과 독립적으로 라이브 웹사이트를 테스트했습니다.
코드
💻 GitHub 저장소: https://github.com/aditric7/OuttaDoor
저장소에는 프론트엔드, 백엔드 및 프로젝트 문서가 포함되어 있습니다.
기술 스택:
1: 프론트엔드는 HTML, CSS, JavaScript 사용
2: 백엔드는 Python, FastAPI, Pydantic 사용
3: 로컬 AI 설정을 위해 Ollama를 통한 Gemma 3 1B 사용
4: 배포는 Render 사용
구축 과정
- 프로젝트 구조 설정, 프론트엔드를 FastAPI 백엔드에 연결, 배포 구성, 문제 해결, README 업데이트 및 라이브 애플리케이션 테스트 작업을 수행했습니다.
- AI 컴포넌트의 경우, Ollama를 통해 Gemma 3 1B를 사용하는 방법을 탐구하여 모델이 개발 환경에서 로컬로 실행되도록 했습니다.
- 백엔드는 구성된 Ollama 서비스를 사용하여 퀘스트를 생성하려고 시도합니다. 또한 AI 서비스가 사용할 수 없을 때 애플리케이션이 미리 정의된 퀘스트를 반환할 수 있도록 폴백(fallback) 메커니즘을 구현했습니다.
현재 배포의 중요한 한계점은 Render 백엔드가 내 노트북에서 실행되는 Ollama 모델에 자동으로 접근할 수 없다는 것입니다. 결과적으로, 배포된 웹사이트는 Gemma를 통해 생성하는 대신 대체 퀘스트(fallback quests)를 반환할 수 있습니다.
또한 저는 개발 과정에서 AI의 도움을 받았습니다. 프로젝트 설정, 통합, 구성, 디버깅, 배포 및 테스트 과정을 직접 진행하면서 말입니다. 이 프로젝트를 통해 저는 배포된 웹 애플리케이션의 여러 부분이 어떻게 조화롭게 작동하는지 이해할 수 있었습니다.
Open Innovation이 중요한 이유:
오픈 웨이트 모델(open-weight models)은 개발자들에게 단순히 폐쇄적이고 호스팅되는 API를 호출하는 것을 넘어 AI로 실험해 볼 기회를 제공합니다.
Ollama와 함께 Gemma 3 1B를 탐색하면서, 저는 로컬 추론(local inference)에 대해 배우고, 저만의 환경에서 모델을 실험하며, AI를 로컬에서 실행할 때 관련된 실질적인 트레이드오프(trade-offs)를 이해할 수 있었습니다.
로컬에서 실행되는 모델은 적절하게 구성될 경우 추론이 어디서 일어날지에 대한 통제력을 더 많이 제공하고 원격 추론 서비스에 대한 의존도를 줄일 수 있습니다. 또한 다양한 모델과 배포 접근 방식으로 실험할 수 있는 유연성을 제공합니다.
하지만 로컬 추론에는 적절한 하드웨어와 실행 중인 모델 서비스가 필요합니다. 현재 제 배포 환경에서는 로컬 모델이 호스팅된 백엔드에 자동으로 사용 가능하지 않기 때문에 대체 메커니즘(fallback mechanism)이 중요합니다.
저에게 있어 오픈 혁신은 AI 구현을 단순한 모델 사용을 넘어, 그것이 어떻게 실행되는지, 애플리케이션이 그것과 어떻게 연결되는지, 그리고 모델이 사용할 수 없을 때 무슨 일이 발생하는지를 이해하는 학습 경험으로 만들었습니다.
나의 에이전트 세션(My Agent Session):
현재 공유할 DevRelay 에이전트 세션은 없습니다. 저는 AI 도움을 받고 직접 설정을 구성하고 통합, 디버깅, 배포 및 테스트를 진행하며 프로젝트를 개발했습니다. 곧 하나 만들겠습니다.
시상 부문(Prize Categories):
고려해 볼 만한 잠재적 부문: Gemma — Gemma의 최적 활용 (Best Use of Gemma).
수상 부문
저는 로컬에서 퀘스트를 생성하기 위해 Ollama를 통해 Gemma 3 1B를 탐색했기 때문에 Gemma 부문에 관심이 있습니다. 제출물이 모델이 프로젝트에 어떻게 구현되고 사용되는지를 정확하게 반영하도록 하겠습니다.
✨ 현재 작동하는 것?
1: 퀘스트 생성을 위한 웹 인터페이스
2: 프론트엔드와 연결된 FastAPI 백엔드
3: 로컬 AI 서비스가 사용할 수 없을 때의 대체 메커니즘
4: 제가 노트북과 독립적으로 테스트한 배포된 웹사이트
🚀 다음 개선할 점
- 배포된 버전에서 모델 추론을 사용 가능하게 하고, 퀘스트 개인화를 개선하며, 다양한 아웃도어 활동에 더 유용하도록 경험을 만들 방법을 탐색하고 싶습니다.
- OuttaDoor를 구축하는 과정은 아이디어를 작동하고 배포되는 애플리케이션으로 전환하는 학습 경험이었습니다. 단순히 코드를 작성하는 것을 넘어, 구성 요소를 연결하고, 디버깅하며, 결과를 테스트하는 것이었습니다.
- OuttaDoor 사용해 보기: https://outtadoor-1.onrender.com/
*사용해보시고 의견을 들려주시면 기쁠 것 같습니다! *🌿
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기