황총무의 실험실

📅
개발 일지

약속 잡기 기능은 어떻게 만들어졌을까?

2025-04-10

문제 인식

5명이 넘는 모임에서 약속을 잡으려면, 카카오톡에서 각자 안 되는 날짜를 텍스트로 보내고 누군가가 정리해야 합니다. 이 과정에서 날짜가 꼬이거나 빠지는 사람이 생기면 처음부터 다시 시작해야 했습니다.

"다들 언제 돼?" → (30분의 카톡 폭탄) → "그래서 언제야?" → (또 30분)...

해결 방법: 캘린더 기반 투표

방장이 약속방을 만들고 링크를 공유하면, 멤버들이 캘린더에서 불가능한 날짜를 터치해 소거하는 방식으로 설계했습니다. 소거되지 않은 날짜 중 전원 가능한 최적의 날짜가 자동으로 하이라이트됩니다.

기술적 고민

  • 캘린더 UI를 직접 구현할지, 라이브러리를 쓸지 — 결국 date-fns와 커스텀 캘린더 그리드로 직접 구현했습니다.
  • 투표 데이터의 실시간 동기화 — Supabase Realtime을 활용해 다른 사람의 투표가 즉시 반영되도록 했습니다.
  • 모바일 UX 최적화 — 날짜 셀을 드래그해서 여러 날을 한번에 선택할 수 있는 인터랙션을 추가했습니다.

결과

주변 친구들이 실제로 사용하기 시작하면서 피드백이 쌓였고, '확정 투표' 기능이나 '시간대별 세부 투표' 같은 기능이 추가되었습니다. 직접 쓰는 서비스를 만드는 게 가장 좋은 동기부여라는 걸 느꼈습니다.

황총무의 실험실