jindorry
← 접은 것

추파 — 거절이 보이지 않는 앱을 만들다 접었다

거절당해도 상대가 모르게. 앱은 거의 다 만들었는데, 사람이 없으면 안 도는 물건이었다.

좋아하는 사람한테 표현을 못 하는 이유는 대개 하나다. 거절당할까 봐.

더 정확히는 거절당한 게 남을까 봐다. 내가 그런 마음이었다는 걸 상대가 알게 되고, 그 어색함이 남는 게 싫은 것이다.

그 어색함을 없애면 표현이 쉬워지지 않을까. 그 생각으로 만든 앱이다.

분홍-주황 그라데이션 바탕에 흰 위치 핀, 그 안에 분홍 하트가 들어 있는 앱 아이콘
추파. 위치 핀 안에 하트 하나

어떻게 도는가

  1. 카페나 바에 가서 체크인한다. GPS로 “나 지금 여기 있다”고 표시하는 것이다.
  2. 같은 가게에 체크인한 사람들이 보인다.
  3. 마음에 드는 사람에게 추파(🫶)를 보낸다.
  4. 둘이 서로에게 보냈을 때만 매칭된다. 그때부터 24시간 동안 채팅할 수 있다.

체크인은 GPS로 반경을 확인한다. 그 가게에 실제로 있어야 들어간다.

추파 앱 체크인 화면. 'GPS 위치 확인 중' 아래에 'GPS 좌표 확인', '블루보틀 성수 반경 확인'이 차례로 체크되고 '체크인 완료'가 남아 있다
블루보틀 성수에 체크인하는 중. 좌표를 보고, 반경 안에 있는지 보고, 들여보낸다

들어가면 지금 같은 가게에 있는 사람들이 보인다. 위에 오늘 쓸 수 있는 추파가 세 개 떠 있다.

블루보틀 성수 라운지 화면. 체크인 완료와 1시간 47분 남음, 오늘 남은 추파 하트 세 개, 지금 여기 있는 사람들 6명의 카드 목록
라운지. 체크인은 두 시간짜리고, 추파는 하루 세 개다

그래서 화면을 하나 지웠다

이 앱의 핵심은 넣은 기능이 아니라 뺀 화면이다.

처음엔 ‘받은 추파’ 화면이 있었다. 누가 나한테 추파를 보냈는지 목록으로 보여주는 곳이다. 데이팅 앱이면 당연히 있는 화면이고, 사실 제일 재밌는 화면이다.

5월 29일에 그걸 통째로 지웠다.

  • ChupaListScreen 삭제 — 158줄
  • 아래 탭에서 ‘추파’ 칸 제거. 네 칸이 세 칸이 됐다
  • ‘추파 받음’ 알림 제거
  • 내 프로필 통계의 ‘받은 추파’를 ‘보낸 추파’로 교체

지우고 나면 이렇게 된다. 받는 사람은 자기가 추파를 받았다는 사실을 전혀 모른다.

내가 누구한테 보냈는지도 상대는 모른다. 상대도 나에게 보내야만, 그제야 둘 다 알게 된다.

거절이라는 사건 자체가 일어나지 않는다. 거절할 기회가 없으니까. 안 되면 그냥 아무 일도 안 일어난 것이다.

추파 앱의 상대 프로필 화면. 이름과 나이, 한 줄 소개, 관심사 태그, 체크인 정보가 있고 맨 아래에 '추파 던지기 (3개 남음)' 버튼이 있다
이 화면에서 할 수 있는 건 보내는 것뿐이다. 받은 내역을 볼 곳은 앱 어디에도 없다

‘받은 추파’ 목록은 재밌는 화면이다. 받은 사람은 기분이 좋고, 앱을 자꾸 열게 된다. 지표로 보면 지울 이유가 없다.

그런데 그 화면이 있으면 이 앱이 하려던 걸 못 한다. 받은 사람이 알아버리면, 답을 안 하는 것이 곧 거절이 된다. 보이는 순간 거절이 생긴다.

아껴 쓰게 만들었다

하루 세 번. 처음엔 다섯 번이었는데 6월에 셋으로 줄였다. 무제한이면 눈에 띄는 사람 전부에게 뿌리게 된다. 그러면 추파가 아무 뜻도 없는 신호가 된다.

24시간. 매칭돼도 채팅은 하루만 열린다. 그 안에 뭔가 하거나, 닫히거나.

둘 다 “귀하게 쓰라”는 장치다. 다만 이 장치는 사람이 많을 때를 전제로 한다. 뒤에 다시 나온다.

다 만들기는 했다

두 달 좀 넘게, 127개 커밋.

앱React Native + Expo. TypeScript
서버AWS 람다·DynamoDB·실시간 채팅 소켓·이미지 저장소
로그인카카오, 애플
안전장치차단, 신고, 신고 내역
검사유닛 · 가짜 서버로 도는 흐름 검사 · 화면 렌더링 검사
자동화커밋할 때마다 타입·린트·검사 자동 실행

서버 응답이 계약과 어긋나면 잡아내는 검증도 넣었다. 혼자 만들면 QA를 해줄 사람이 없다. 조용히 깨지는 걸 사람이 못 잡으니 기계가 잡게 해야 했다.

6월 24일에 QA 배포용 빌드 설정을 올렸다. 그게 마지막 커밋이다.

남은 건 코드 문제가 아니었다. 운영 환경 변수, 애플 로그인 콘솔 등록, 푸시 알림 설정, 에러 수집 도구. 앉아서 하면 되는 것들이었다.

안 했다.

접은 이유

초반 점화가 안 된다.

이 앱은 매칭이 일어나야 돈다. 매칭된 사람이 생기면 그 얘기가 퍼지고, 퍼지면 설치가 늘고, 늘면 매칭이 더 생긴다. 한 번 돌기 시작하면 도는 구조다.

문제는 그 첫 바퀴다. 사람이 없으면 매칭이 없고, 매칭이 없으면 얘기할 거리가 없고, 얘기가 없으면 사람이 안 는다.

이건 사람 모으는 앱이면 다 겪는 문제다. 그런데 추파는 두 가지가 더 얹힌다.

첫째, 같은 가게에 동시에 있어야 한다. 그냥 “사용자가 많으면” 되는 게 아니다. 같은 카페에, 같은 시간에, 둘 다 체크인해 있어야 한다. 도시 하나에 천 명이 흩어져 있으면 아무 일도 안 일어난다. 필요한 건 총량이 아니라 밀도다.

둘째, 이게 뼈아픈데 — 아무 일도 안 일어나는 게 이 앱의 정상 동작이다.

거절을 안 보이게 하려고 ‘받은 추파’를 지웠다. 그 말은, 사람이 없는 초반에 사용자가 받는 신호도 없다는 뜻이다.

체크인하고, 둘러보고, 추파를 보내고, 앱을 닫는다. 아무것도 안 뜬다. 다음 날도 똑같다.

이게 앱이 고장 난 건지, 사람이 없는 건지, 내가 아무한테도 선택받지 못한 건지 알 방법이 없다. 사용자 입장에선 셋 다 똑같이 생겼다.

다른 데이팅 앱은 “누가 당신을 좋아합니다” 같은 걸 띄워서 사람을 붙잡는다. 그게 좀 얄밉긴 해도, 초반에 사용자를 버티게 하는 장치인 건 맞다.

추파는 그걸 원칙적으로 못 한다. 친절하려고 지운 화면이, 초반을 버티게 해줄 화면이기도 했다.

이걸 알고도 지웠냐면, 아니다. 지울 때는 몰랐다. 사람이 없어 봐야 알게 되는 것이었다.

그래서 지금

접었다. 지우진 않았다.

생각 자체는 아직 맞다고 본다. 사람 만나기 힘든 시대에, 부담 없이 표현할 수 있는 통로는 있는 게 낫다. 거절을 안 보이게 만든다는 설계도 나쁘지 않았다고 생각한다.

다만 그 생각이 맞는지 확인하려면 사람이 필요했고, 사람을 모으려면 그 생각이 맞다는 게 먼저 보여야 했다. 그 순서를 못 풀었다.

다시 한다면 밀도부터 만들 것 같다. 앱을 먼저 만들고 사람을 부르는 게 아니라, 한 동네 한 가게에서 시작하든지. 아니면 초반에만 “아무 일도 안 일어나는 것”을 견디게 해줄 다른 장치를 붙이든지.

그건 다음에 할 생각이다. 지금은 여기까지 적어둔다.