세밀한 기획의 중요성, 기능보다 흐름이 더 어려웠다
카카오 로그인을 붙이고 나니, 김이 조금 빠졌다. 그 다음엔 구글이랑 네이버 계정 연동도 추가했다. 이미 카카오를 한 번 겪고 나서라 그런지, 구글이랑 네이버는 상대적으로 수월했다. 물론 쉬웠다는 건 아니고, 그냥 “아, 이제 이런 흐름이구나” 정도를 알게 된 수준이었다.
문제는 그 다음이었다.
이건 혼자 쓰는 웹앱이 아니었고, 누군가를 불러와야 하는 앱이었다. 그래서 초대 기능이 필요했다. 그냥 링크를 복사해서 보내는 방식도 있었지만, 기왕이면 카카오톡으로 초대를 보내고 싶었다. 다들 카카오톡을 쓰고 있으니까, 그게 제일 자연스러워 보였다.
그런데 여기서부터 상황이 복잡해졌다.
카카오톡 연동해서 친구 목록을 불러오는 것부터 쉽지 않았다. 문서대로 한 것 같은데 안 되고, 다시 보면 또 다른 설정이 빠져 있고, 하나를 고치면 다른 게 틀어졌다. 그래도 이건 어떻게든 붙였다. 문제는 그 다음부터였다.
환경이 너무 많았다. 카카오톡 안에 탑재된 웹, PWA로 설치한 화면, 사파리에서 여는 웹, 크롬에서 여는 웹. 이게 전부 같은 웹인데도 조금씩 다르게 동작했다. 여기서는 잘 되는데 저기서는 뻑나고, 저기를 고치면 이번엔 또 다른 쪽이 안 됐다. 하나 해결했다고 안심하면, 다른 환경에서 다시 문제가 터졌다.
고치다 보면 눈앞이 아찔해졌다. 이게 내가 만든 기능의 문제인지, 환경 차이 때문인지 구분하는 것부터가 어려웠다.
게다가 초대 흐름 자체도 단순하지 않았다. 초대받은 사람이 이미 아이디가 있는지 없는지, 이 그룹에 이미 가입돼 있는지 아닌지, 처음 들어오는 사람인지에 따라 보여줘야 할 화면이 전부 달라졌다. 조건이 하나 늘어날 때마다 흐름이 갈라졌고, 그만큼 머릿속도 복잡해졌다.
지금 생각해보면, 처음부터 완벽한 흐름을 그려놓고 만들었어야 했다. 그런데 그때는 그렇게 하지 못했다. 일단 되는 대로 만들고, 막히면 고치고, 또 막히면 그때 가서 다시 생각하는 식이었다. 주먹구구식으로 만든 흔적이 곳곳에 남아 있다.
그래도 어쨌든, 되긴 됐다.
클로드랑 제미나이, 챗지피티를 번갈아 붙잡고 씨름했다. 이 흐름이 맞는지, 여기서 왜 꼬이는지, 어떤 분기가 빠졌는지 계속 물어봤다. 이해한 것도 있고, 솔직히 정확히 모르겠지만 그냥 넘어간 부분도 있다.
배포 환경도 여전히 미스터리다. Vercel 설정을 이것저것 만지다 보니 어느 순간부터 작동하기 시작했다. 왜 이렇게 수정하니까 되는지는 잘 모르겠다. 그래도 일단 돌아간다. 지금은 그걸로 충분하다고 생각한다.
완벽하진 않다. 코드도, 구조도, 흐름도 마음에 안 드는 부분이 많다. 그래도 초대 기능이 생기고 나서, 이 앱은 확실히 ‘혼자 쓰는 물건’에서 ‘같이 쓰는 공간’ 쪽으로 넘어왔다는 느낌이 들었다.
머리가 아찔하긴 했지만, 결국 여기까지 왔다.
그럼 된 거지 뭐.
어쨌든 카카오톡 초대하기가 된다.