문제 재정의
Movra 프로젝트는 단순히 일정 관리 서비스가 아닌, "계획은 세우지만 반복적으로 실행에 실패하는 문제"를 뇌 과학 기반으로 접근하여 해결한 프로젝트입니다.
제 자신의 모습과 주변 친구들을 보며, 계획은 세우지만 반복적으로 실행에 실패하는 모습을 자주 관찰하였습니다. 기존 생산성 서비스들을 조사한 결과, 대부분 일정 관리 기능에 집중되어 있었지만 실제 사용자들은 계획을 세운 이후 실행을 시작하고 지속하는 과정에서 더 큰 어려움을 겪고 있었습니다. 저는 이를 단순한 일정 관리의 문제가 아니라, 행동을 지속하지 못하는 구조적 문제라고 판단하였습니다.
저는 이러한 관점에서 "목표를 행동으로 이어가는 과정"의 문제라고 판단하였고, 이를 해결하기 위해 "목표 인식 → 행동 시작 → 회고 → 복귀" 흐름 중심의 뇌 과학 기반 행동 전환 구조로 서비스를 설계하였습니다.
뇌 과학 기반 행동 설계
| 기능 | 설명 |
|---|---|
| MindSweep + TopPick |
문제 — 해야 할 일이 많아질수록 행동 시작 자체를 어려워함 해결 — MindSweep으로 생각을 빠르게 인출하고, TopPick으로 오늘 반드시 할 행동 하나를 선택 의도 — 결정 피로를 줄이고 계획 관리보다 "행동 시작 기준점" 설계에 집중 |
| Recovery Card |
문제 — 계획 실패 이후 복귀하지 못하는 패턴 반복 해결 — 실패를 자연스러운 과정으로 바라보는 복귀 중심 UX 설계. 죄책감 유발보다 작은 행동 재시작에 집중 |
| Future Vision |
문제 — 사용자가 목표를 세우더라도 일상 속에서 목표를 자주 잊고 현재 자극에 쉽게 휩쓸림 해결 — 목표를 반복적으로 시각화하는 Future Vision 기능 설계 의도 — 뇌의 RAS 기반 주의 필터 메커니즘을 참고해 설계. 목표를 반복적으로 노출함으로써 일상 속 행동 선택 과정에서도 목표 관련 자극을 더 자주 떠올릴 수 있도록 유도 |
| 감시자 시스템 |
문제 — 혼자 공부할 경우 쉽게 미루거나 집중 흐름이 끊기는 문제 발생 해결 — 상호 동의 기반 감시자 시스템 설계. 서로의 집중 상태와 행동 흐름을 확인할 수 있는 구조 구성 의도 — 단순 소셜 기능이 아닌, "누군가 보고 있다"는 인식만으로 행동과 집중도가 증가하는 호손 효과를 기반으로 설계 |
주요 기여
Harness Engineering
- AI 기반 개발 생산성을 높이면서도, 무분별한 코드 생성과 컨텍스트 오염 문제를 방지하기 위해 Harness Engineering 구조 설계
-
Layer Harness 아키텍처
- Layer 1: 규칙 문서(AGENT.md) — 자연어 기반 규칙 문서를 통해 AI 작업 범위와 구현 우선순위를 명시
- Layer 2: 작업 프로토콜(docs/workflow.md) — 구현 이전에 범위 분석, 성공 조건, 검증 계획을 먼저 정의하도록 작업 흐름 표준화
- Layer 3: 자동 검증(scripts/agent-verify.ps1) — lint/type-check/test · 위험 코드 스캔까지 코드 레벨 검증 자동화
- Layer 4: Git Hook / 커밋 규칙 — 검증되지 않은 코드와 잘못된 커밋 메시지가 저장소에 반영되지 않도록 Git 단계에서 강제
Cloudflare Tunnel + 미니 PC 구축
- Infra 구조와 서비스 운영 과정을 직접 학습하기 위해, 미니 PC 기반 자체 인프라 환경을 구축
- Docker 기반으로 백엔드 및 부가 서비스를 운영하고, Cloudflare Tunnel을 활용해 공인 IP 없이 외부 HTTPS 접근 환경 구성
FCM 기반 알림 게이트웨이 구현
- 여러 도메인에 흩어질 수 있는 알림 발송 로직을 NotificationGateway로 통합해, 비즈니스 서비스는 알림 채널 세부 구현에 의존하지 않고 공통 Payload만 전달하도록 설계
- 사용자 알림 설정, 학교 시간/수면 시간 차단, 일일 발송 제한, 알림 타입별 발송 제한 등 공통 정책을 Gateway 레벨에서 일관되게 처리
- Firebase Admin SDK 기반 FCM 발송 모듈을 구현하고, 사용자별 다중 디바이스 토큰에 대해 순차 발송을 지원
- FCM 응답 중 만료되거나 해지된 토큰을 감지해 DB에서 자동 삭제하도록 구현해 토큰 생명주기 관리 안정화
- 알림 발송 실패가 핵심 비즈니스 로직 실패로 전파되지 않도록 sendSafely()와 발송 결과 enum을 도입해 운영 안정성 확보
DDD 기반 행동 지속 도메인 설계
- "계획 → 실행 → 회고 → 복귀" 핵심 행동 흐름을 기준으로 도메인 책임을 분리하고, 핵심 과제·시간 배치·집중 기록·회고 데이터를 독립적으로 관리
- 계획 변경과 실행 시간표 간 불일치를 줄이기 위해 Domain Event 기반 동기화 구조를 적용하고 Aggregate 간 직접 참조 최소화
- 일별 행동 요약과 이벤트 로그를 분리해 회고, 복귀 제안, 추천, 통계 기능으로 확장 가능한 행동 데이터 기반 구축
집중 세션 통계 & 추천 파이프라인
- 집중 세션 데이터를 단순 기록으로 저장하는 데 그치지 않고, 일일 요약/기간별 통계/추천 기능으로 확장할 수 있는 데이터 파이프라인 설계
- FocusSession 원천 데이터를 DailyFocusSummary 스냅샷으로 집계하고, 이를 기반으로 주간/월간 통계와 집중 시간대 추천 계산 구조 구현
- 날짜가 넘어가는 세션, 중복 집계 가능성 등 실제 사용 상황에서 발생할 수 있는 예외를 고려해 일일 통계의 정합성 유지
- 축적된 행동 데이터를 회고, 추천, 개인화 기능으로 연결할 수 있는 백엔드 기반 마련
성능 최적화
학년 평균 인원을 기준으로 DAU 150명, Peak TPS 10 수준의 조회 중심 서비스 환경을 가정.
Redis 캐시 제거
회고
문제를 바라보는 관점의 변화
Movra 프로젝트는 단순 기능 구현이 아니라, 문제를 새로운 관점에서 정의하고 해결해보는 경험이었습니다. 위 프로젝트는 저와 주변 사람들이 계획을 세워도 반복적으로 실패하는 모습을 보며 시작되었습니다. 저는 이를 단순 의지 부족의 문제가 아니라, 소프트웨어적으로 해결할 수 있는 문제라고 생각했습니다.
뇌 과학 기반 행동 지속 관점으로의 접근
이 문제를 해결하기 위해 자료를 조사하면서 기존 일정 관리 서비스와 같은 방식으로는 결국 같은 실패가 반복될 것이라 판단했고, 문제를 행동 흐름과 행동 지속 관점에서 다시 바라보고자 했습니다. 그 과정에서 "사람의 행동은 자신의 뇌의 영향을 받는 것이 아닐까?"라는 생각을 하게 되었습니다. AI Searching을 활용해 관련 논문과 자료를 조사하며 서비스 구조를 설계했고, 행동 지속 방식과 개인별 동기 요인 등을 분석하며 기능 방향성을 구체화할 수 있었습니다.
개발자로서의 관점 변화
이번 프로젝트를 통해 개발자의 역할에 대해서도 다시 고민하게 되었습니다. 단순히 요구사항을 구현하는 것이 아니라, 문제의 본질을 이해하고 해결 방향까지 설계하는 과정 역시 개발자의 중요한 역할이라는 점을 느끼게 되었습니다.
AI 활용 방식에 대한 고민
구현 과정에서는 문서와 실제 코드 간 차이, 높은 구현 난이도 등 여러 어려움도 있었습니다. 이를 해결하기 위해 AI Agent를 단순 자동화 도구가 아니라, 문제를 함께 분석하고 검증하는 협업 도구로 활용했습니다. 특히 AI 결과를 그대로 사용하는 것이 아니라, 동작 원리와 구조를 직접 이해하고 개선하며 개발을 진행하고자 노력했습니다.
프로젝트를 통해 얻은 점
이번 프로젝트는 기술적 성장뿐 아니라, 문제를 바라보는 시각과 AI를 활용하는 태도까지 다시 고민해볼 수 있었던 경험이었습니다. 현재 Movra는 알파 테스트를 진행 중이며, 고등학생 대상 정식 출시를 목표로 서비스를 준비하고 있습니다.