IRL Quest — 휴대폰을 내려놓게 만드는 이유를 주는 AI
요약
IRL Quest는 사용자가 휴대폰을 더 오래 사용하는 대신, 적게 사용하도록 유도하는 AI 애플리케이션입니다. 오픈 웨이트 모델로 생성된 현실 기반 미션을 제공하고, 물리적 위험 점검 필터를 거칩니다. 이후 사용자에게 오프라인 활동을 권장하며, 돌아와서만 개인적인 저널링이 가능하게 설계되었습니다.
핵심 포인트
- 디지털 체류 시간 극대화 패러다임을 역전시킴.
- 오픈 웨이트 LM으로 현실 기반 미션을 생성함.
- 물리적 안전 점검 필터(regex)를 적용하여 신뢰성을 높임.
- 사용자에게 오프라인 활동을 강제하고, 돌아와서만 저널링 가능.
IRL Quest 🌿
휴대폰을 내려놓게 만드는 이유를 주는 AI.
Hacktoberfest Open-Source AI Challenge의 일환으로 제작되었으며, 'Week 1: Touch Grass' 주제에 맞춰 개발되었습니다.
1. 제가 만든 것
대부분의 현대 소비자 애플리케이션과 대화형 AI 제품은 디지털 체류 시간을 최대화하도록 설계되어 있습니다. 즉, 더 긴 세션 시간, 깊은 스크롤 깊이, 습관적인 화면 사용 시간을 유도합니다. 특히 챗봇은 끝없이 이어지는 주고받는 디지털 잡담을 장려합니다.
IRL Quest는 이러한 패러다임을 완전히 뒤집습니다:
"성공적인 사용자는 애플리케이션을 더 오래 사용하는 것이 아니라, 적게 사용하게 됩니다."
전통적인 AI 앱 (화면 최대화):
사용자 ──► 프롬프트 ──► 끝없는 채팅 및 스크롤 ──► 화면 시간 극대화 📱
...
역전된 참여 루프 (The Inverted Engagement Loop)
- 선호도 선택: 카테고리(자연, 탐험, 관찰, 마음챙김, 놀라움), 목표 시간(5, 10, 20, 30분), 난이도를 선택합니다.
- 로컬 AI 생성: 오픈 웨이트(open-weight) 명령어 모델(LM Studio에서 로컬로 실행)이 2초 이내에 구체적이고 현실 기반의 물리 세계 미션을 생성합니다.
- 결정론적 안전 점검: 미션이 화면에 표시되기 전에, 물리적 위험 요소(무단 침입, 활성 교통, 독성 식물/버섯, 위험한 등반, 낯선 사람과의 만남)를 가로채기 위해 결정론적 정규 표현식 코드 필터(deterministic regex code filter)를 거칩니다.
- '풀잎에 손대기 모드'(Touch Grass Mode): 미션이 생성되는 순간, 인터페이스는 주변 타이머와 단 하나의 메시지: **
휴대폰을 치우세요. 탐험하러 가세요.**가 표시된 방해 요소 없는 간소한 화면으로 축소됩니다. - 물리 세계 발견: 사용자는 휴대폰을 주머니에 넣고, 기기를 잠근 후, 현실로 나가 바깥 활동을 합니다.
- 절차적 명상 벨 (Procedural Meditation Bell): 시간이 경과하면, 네이티브 Web Audio API를 통해 합성된 부드러운 하모닉 차임벨 소리가 자동으로 재생됩니다—완전히 오프라인 상태에서 작동합니다.
주권적 저널링 (Sovereign Journaling): 사용자가 돌아와서 1~2문장의 성찰을 작성하고, 원클릭 JSON 내보내기로 100% 개인적인 로컬 브라우저 저널에 아카이브합니다.
2. 데모 및 시각적 워크스루 (Demo & Visual Walkthrough)
- GitHub 저장소: github.com/Ani0811/irl-quest
- 라이선스: MIT (100% 오픈소스)
- 로컬 추론 스택: LM Studio +
google/gemma-3-4b또는Meta-Llama-3.1-8B-Instruct
4가지 애플리케이션 상태 (The 4 Application States)
1. 퀘스트 구성기 및 실시간 연결 모니터 (/)
실시간 로컬 LLM 심박수 확인 (http://127.0.0.1:1234), 오픈 가중치 모델 감지 (google/gemma-3-4b), 카테고리/기간 매개변수 선택.
2. 풀밭에 발을 디디기 모드 (Touch Grass Mode) (/active)
_Obsidian 안티-디스트랙션 인터페이스 (#050806), 에포크 계산 카운트다운 시계, 그리고 핵심 명령: "휴대폰을 내려놓고. 탐험하세요."
3. 완료 및 성찰 (Completion & Reflection) (/complete)
돌아오는 즉시 감각적 관찰 기록—무한 피드, 좋아요, 또는 알고리즘의 미로에 빠지지 않습니다.
4. 주권적 로컬 저널 및 통계 (Sovereign Local Journal & Stats) (/journal)
오프라인 브라우저 전용으로 실제 야외 체류 시간, 카테고리별 분포를 추적하며, 원클릭으로 주권적인(sovereign) JSON 데이터 내보내기가 가능합니다.
실제 현장 검증 (비행기 모드에서 테스트)
IRL Quest가 단순한 데스크톱 시연이 아님을 확인하기 위해, 세 가지 실제 물리적 환경(자세한 내용은 docs/FIELD_TESTS.md 참고)에서 야외 현장 테스트를 진행했습니다:
| 설정 | Quest 유형 및 기간 | 검증된 물리적 행동 | 결과 |
|---|---|---|---|
| 도시 보도 | 탐험 (10분) | 빈티지 석조 세부 사항 발견; 휴대폰이 코트 주머니에 보관됨; 교통 위험 요소 없음. | 통과 |
| ... |
3. 제작 과정
IRL Quest는 클라우드 의존성을 제로화하고, 빠른 지연 시간(latency), 결정론적 안전성(deterministic safety)을 우선시하는 로컬 퍼스트 웹 애플리케이션으로 처음부터 설계되었습니다.
flowchart TD
User[☓ 사용자] --> Client[🚭 Next.js 프론트엔드 (React / Tailwind)]
...
기술적 하이라이트:
- Next.js 15 App Router 및 TypeScript: 클라이언트 상태와 추론 로직을 분리하는 모듈형 서버 라우트 핸들러(
/api/health,/api/quest/generate)를 사용했습니다. - 모델 비종속적 프로바이더 추상화 (
AIProvider): LM Studio의 루프백 엔드포인트(http://localhost:1234/v1)에 연결하는 표준화된 TypeScript 인터페이스입니다. Google의 **google/gemma-3-4b**와 Meta의 **Llama-3.1-8B-Instruct**를 사용하여 검증하고 테스트했습니다. - 결정론적 안전 게이트키퍼: 생성형 LLM은 확률적(stochastic)이며 실제 물리적 안전을 위해 전적으로 신뢰할 수 없습니다. 프로그램 레벨의 정규표현식 엔진이 모든 내러티브 필드(
title,objective,rules,success_condition)를 스캔하여 6가지 위험 영역을 확인합니다:- 재산 및 무단 침입 (Property & Trespass)
- 교통 및 도로 (Traffic & Roads)
- 식물체 섭취 (독성 담쟁이덩굴, 야생 균류) (Botanical Ingestion)
- 야생 동물 접촉 (Wildlife Contact)
- 고소 및 위험 등반 (Heights & Hazardous Climbing)
- 야간 취약점 및 낯선 사람 (Nighttime Vulnerabilities & Strangers)
- 에포크 기반 주변 카운트다운: 휴대폰을 주머니에 넣거나 화면 잠금이 타이머 드리프트(timer drift)를 유발하는 것을 방지하기 위해, 타이머는 시스템 에포크 시간(system epoch time)을 사용하여
Math.max(0, targetEndTimestamp - Date.now())를 평가합니다. - 절차적 Web Audio 차임: 무거운 MP3 오디오 애셋을 번들링하는 대신, 사용자 정의 티베트 싱잉 볼 차임을 네이티브 Web Audio 하모닉 사인파(harmonic sine waves) (528 Hz, 792 Hz, 1056 Hz)와 지수 감쇠(exponential decay)를 사용하여 합성했습니다. 이는 100% 오프라인으로 작동합니다.
- 자동화 테스트 스위트 (Vitest): 안전 필터, JSON Sanitization, 스키마 제약 조건, 오프라인 카탈로그 및 저널 통계를 검증하는 5개의 테스트 스위트에 걸쳐 **36개의 자동 단위 테스트(automated unit tests)**가 300ms 이내에 실행됩니다.
4. 왜 오픈 혁신이 중요한가 (Why Open Innovation Matters)
무한 피드(infinite feeds)를 통해 사용자 주의력을 수익화하는 시대에, **오픈 소스 AI 및 오픈 웨이트 모델(open-source AI and open-weight models)**은 결정적인 탈출구(critical escape hatch)를 제공합니다:
1. 신체적 습관 및 성찰의 사생활 보호 (Privacy of Physical Habits & Reflections)
당신이 어디를 걸어 다니는지, 언제 휴식을 취하는지, 그리고 당신의 일지에 기록하는 사적인 관찰 내용이 상업적 광고 타겟팅 모델을 학습시키거나 원격 기업 데이터베이스에 저장되어서는 안 됩니다. 로컬 오픈 웨이트 추론(local open-weight inference)과 브라우저 스토리지를 사용하면 데이터 바이트가 기기를 벗어나는 일은 절대 없습니다.
2. 야외에서의 진정한 오프라인 자유
자연에는 5G 커버리지가 없습니다. 트레일을 탐험하거나, 국립공원 또는 시골 숲을 거닐 때, 클라우드에 연결된 앱은 작동하지 않습니다. IRL Quest는 로컬 노트북이나 휴대용 하드웨어에서 완전한 비행기 모드로 작동합니다.
3. 민주화 및 요청당 비용 제로
개발자와 취미가들은 토큰당 API 요금을 지불하거나 속도 제한을 걱정할 필요 없이 무제한의 퀘스트를 실행할 수 있습니다. 오픈 웨이트(open weights)는 일상적인 소비자급 실리콘 위에서 주권적인 인텔리전스를 가능하게 합니다.
4. 종속성 탈피 및 모델 자유도
사용자는 애플리케이션 코드 한 줄을 변경하지 않고도 기반이 되는 모델(Gemma, Llama, Mistral 또는 Phi)을 교체할 수 있습니다.
5. 나의 에이전트 세션
본 프로젝트는 Google DeepMind의 Antigravity 에이전트가 페어 프로그래밍 지원을 통해 아키텍처링(architected), 스캐폴딩(scaffolded) 및 강화되었으며, 특화된 기술, 자동 브라우저 검증 서브에이전트, 그리고 테스트 주도 개발(test-driven development) 방식을 활용했습니다.
- 에이전트 기록 및 사전 할당 세션: [Embed Link Placeholder]
6. 로컬에서 실행하는 방법
# 1. 저장소 클론
git clone https://github.com/Ani0811/irl-quest.git
cd irl-quest
...
http://localhost:3000에 접속하여 마이크로 퀘스트를 설정하고, 휴대폰을 치우세요! 🌿
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기



