← All work

Experiment

CueAI

사용자의 장소와 방문 목적을 해석해 그 순간에 필요한 짧은 메시지를 전달할 수 있는지 검증한 AI 컴패니언 실험입니다. 위치 이벤트, 방문 맥락, 알림 정책과 iOS 위젯을 하나의 흐름으로 구현했습니다.

Mobile · AI · Backend · iOS / 2026.01

같은 응원 문장도 사용자가 어디에서 무엇을 하려는지 알고 전달하면 더 유용해질 수 있는지 실험했습니다.

What I explored

CueAI는 사용자의 위치와 방문 목적을 바탕으로 상황에 맞는 동기부여 메시지를 만드는 모바일 컴패니언입니다. 앱을 열고 대화를 시작해야 하는 챗봇 대신, 집에서 출발하거나 새로운 장소에 도착하고 한곳에 머무는 순간을 감지해 필요한 메시지를 먼저 전달하는 방식을 검토했습니다.

핵심은 문장을 생성하는 모델 자체보다 언제 메시지를 보내고 어떤 맥락을 제공할지 결정하는 일이었습니다. 출발, 도착과 체류를 구분하고, 현재 장소의 성격과 사용자가 선택한 목적, 직전 방문과 하루의 방문 횟수를 함께 해석하도록 범위를 잡았습니다.

What I built

Expo와 React Native에서 백그라운드 위치 업데이트를 받고, 이동 거리와 시간 간격을 기준으로 전송할 좌표를 로컬 큐에 저장했습니다. 앱이 다시 활성화되면 대기 중인 위치를 서버로 보내고, 새 장소에는 업무·학습·휴식 같은 방문 목적을 지정할 수 있는 화면을 연결했습니다.

Next.js API와 Supabase에는 사용자, 장소, 방문, 목적과 알림 이력을 모델링했습니다. 위치가 들어오면 기존 장소와의 거리를 비교해 방문의 시작과 종료를 만들고, 출발·도착·장기 체류 중 어떤 이벤트인지 판정했습니다. 현재 방문뿐 아니라 이전 장소와 목적, 체류 시간과 방문 이력을 GPT 프롬프트의 구조화된 맥락으로 전달했습니다.

알림 전에는 사용자의 활성화 설정, 조용한 시간, 하루 전송 한도와 최소 간격을 검사했습니다. 생성된 메시지는 앱의 로컬 알림으로 전달하고, App Group 공유 저장소와 WidgetKit을 통해 iOS 홈 화면 위젯에도 같은 내용을 갱신했습니다. 서버는 API Gateway와 Lambda로 배포할 수 있도록 AWS CDK로 정의했습니다.

Where it stopped

온보딩, 프로필, 위치 추적, 장소 라벨링, 메시지 생성과 iOS 위젯으로 이어지는 기능 흐름까지 구현했습니다. 다만 실제 사용자에게 배포해 알림의 적절한 빈도와 메시지 품질을 검증하는 단계까지 이어가지는 않았습니다. 날씨와 장소 정보 연동, 사용자 피드백을 반영한 개선, Android 위젯과 앱 스토어 출시는 계획으로 남았습니다.

따라서 CueAI는 완성된 컴패니언 서비스라기보다 위치 이벤트와 사용자의 의도를 LLM 맥락으로 바꾸고, 과도하지 않은 알림으로 전달하는 전체 기술 흐름을 확인한 프로토타입입니다.

What I learned

선제적으로 말을 거는 제품에서는 메시지의 문장보다 발송 판단이 더 중요했습니다. 관련성 높은 문장을 만들더라도 조용한 시간, 직전 알림과 하루 횟수를 고려하지 않으면 기능 자체가 방해가 될 수 있었습니다. 생성과 발송 정책을 분리해 서버가 먼저 개입 빈도를 제한해야 했습니다.

위치만으로 사용자의 상황을 단정하기도 어려웠습니다. 같은 카페라도 업무, 공부와 휴식의 의미가 달라질 수 있어 장소 분류와 방문 목적을 함께 받아야 했습니다. 이 실험을 통해 개인화에는 더 많은 데이터보다 사용자가 수정할 수 있는 작은 맥락이 필요하다는 점을 확인했습니다.