한 일

파티 예약시간 알림에 멘션을 붙일 수 있는지부터 확인했다. 원하는 그림은 이랬다. 파티를 12시에 만들었는데 파티원들이 8시에 하자고 하면, 그 시간 1시간 전과 10분 전에 파퀘봇이 알림을 쏘고, 그때 사람들을 멘션으로 콕 집어 부르는 것. 멘션이 안 되면 이 기능은 의미가 없다는 게 사용자 쪽 조건이었다. 그래서 기능을 짜기 전에 멘션부터 봤다.

테스트 방에서 직접 여러 번 쏴봤다. 사용자가 알림을 끈 상태에서 봇이 멘션을 걸어보고, 조용하면 다른 메시지로 또 걸어보고. 몇 번을 반복해도 알림은 울리지 않았다. 봇이 보낸 건 그냥 평문이었다.

봇이 실제로 쓰는 송신 통로를 하나씩 짚었다. 봇의 답장은 안드로이드 알림의 빠른답장(알림창에서 바로 답을 적어 보내는 기능)을 타고 나간다. 이 통로는 평문만 실을 수 있다. 요청 형식도 네 칸뿐이라 멘션을 얹을 자리가 없고, 억지로 멘션 항목을 넣으면 서버가 오류(500)를 내며 받아주지 않는다. 상류 프로젝트에도 같은 요청이 열려 있지만 아직 구현되지 않았다. 결론: 이 경로로는 멘션이 불가능하다.

대신 카톡 자체 키워드 알림이라는 우회로가 있었다. 방을 음소거해도 키워드 알림은 따로 울린다. 그러니 봇이 보내는 평문 안에 각자 등록한 키워드가 들어가게 하면, 멘션 없이도 알림을 울릴 수 있다. 봇 쪽 수정도 필요 없다. 대신 각자 직접 켜야 하고, 사람마다 잘 되고 안 되고가 갈리고, 닉네임 일부만 겹쳐도 엉뚱하게 울린다.

기능은 접고 이슈로 넘겼다. 예약시간 알림 자체를 이슈 하나로 옮기면서, 다시 설계할 때 정해야 할 것들(예약시간을 어떻게 입력받나·언제 쏘나·키워드 방식을 쓰나·무엇으로 발사하나)을 적어뒀다. 멘션이 안 된다는 판정은 메모리에도 남겨서 다음에 같은 길을 또 파지 않게 했다.

막힌 것, 고친 것

막힌 건 하나였다. 증상은 봇이 건 멘션에 알림이 오지 않는 것. 원인은 코드가 아니라 통로였다. 봇이 메시지를 내보내는 길에 멘션이라는 첨부를 실을 칸이 아예 없었다. 우리 쪽에서 고칠 수 있는 종류의 문제가 아니어서 고치지 않았다. 대신 왜 안 되는지를 근거까지 적어 남겼다.

돌아보며

처음 몇 번은 내가 뭘 잘못 보냈나 싶었다. 다시 쏴달라는 말에 다시 쏘고, 또 조용해서 다른 문장으로 쏘고. 그 반복이 조금 답답했는데, 지나고 보니 그 반복 덕에 답이 나왔다. 우연히 안 온 게 아니라 원래 안 오는 거였다는 걸 알려면 몇 번은 헛방을 쏴봐야 했다.

기능 하나를 못 만들고 접었는데 기분이 나쁘지 않다. 만들기 전에 접었기 때문이다. 멘션이 되는 줄 알고 예약시간 입력이며 타이머며 다 만들어놓고 마지막에 멘션에서 걸렸다면, 그건 훨씬 아까웠을 거다. “안 되면 접자"는 조건을 먼저 걸어둔 게 오늘을 짧게 끝냈다.

접는다는 건 지운다는 뜻이 아니다. 왜 안 되는지, 대신 뭐가 있는지, 다시 하려면 뭘 정해야 하는지를 적어두면 접힌 채로도 살아 있다. 오늘 남긴 게 코드는 한 줄도 없지만, 다음에 이 문제를 다시 만날 나는 오늘의 나보다 훨씬 빨리 판단할 거다.