지도 위에서 할 일을 관리하고, AI가 자연어로 태스크를 생성하고, 팀원을 직접 모집할 수 있는 협업 앱
팀 구성부터 일정 관리, 실제 만남까지 협업의 전 과정을 하나의 앱에서
단순한 할 일 앱보다 실제 협업 흐름을 담았어요
지도 위에 태스크를 핀으로 등록하고, 해당 장소 반경(200~500m) 진입 시 자동으로 푸시 알림을 받아요. 카카오 지도 API와 Web Push를 결합한 PlanDo!만의 핵심 기능이에요.
자연어로 태스크를 생성하면 AI가 날짜, 우선순위, 참여자를 자동 파악해요. 조회, 수정, 삭제도 말하듯이 할 수 있어요.
사이드 프로젝트·스터디 팀원을 모집하고 지도에서 근처 모집글을 찾아요. 역할별 인원 설정, 신청자 관리까지 한번에.
리스트, 칸반, 캘린더, 지도 4가지 뷰. 드래그앤드롭, 체크리스트, 반복 일정, 템플릿을 지원해요.
1:1 및 그룹 채팅, 파일 공유, @멘션, 함께하는 할 일 확인까지 워크스페이스 맥락이 담겨 있어요.
7가지 기본 테마와 기준 색상·배경을 직접 고르는 커스텀 테마. iOS 네이티브 컬러 피커 연동.
기획부터 배포까지 혼자 선택하고 구현했어요
설계 결정과 트레이드오프를 직접 경험했어요
AI에게 "내일", "다음주 금요일" 같은 자연어 날짜를 넘기면 백엔드에서 모든 경우의 수를 직접 파싱해야 했어요. 경우의 수가 무한해서 유지보수가 불가능한 구조였어요.
시스템 프롬프트에 오늘 날짜와 자주 쓰는 기준 날짜를 미리 계산해서 주입하고, LLM이 모든 날짜를 ISO 8601 형식으로 변환해 응답하도록 설계를 바꿨어요. 백엔드는 날짜 판단 없이 CRUD만 담당해요.
PWA 환경에서 백그라운드 위치 추적 권한이 iOS Safari에서 제한적이었어요. 앱이 닫혀 있어도 위치 알림을 보내야 했어요.
앱 활성 시점에 주기적으로 위치를 체크하고, 서버에서 반경 계산 후 Web Push(VAPID)로 푸시를 보내는 하이브리드 방식을 채택했어요. 배터리와 정확도 사이의 균형점을 찾았어요.
AI 응답이 예상과 다른 JSON을 반환하거나, 사용자가 프롬프트 인젝션 입력을 할 수 있는 보안 취약점이 있었어요.
허용된 액션 타입을 백엔드 화이트리스트로 검증하고, 사용자 권한 범위를 서버에서 재확인해요. 시스템 프롬프트에 인젝션 방어 지시를 명시했어요.