Code 빌드

로직상 되는데 폰에서 막히는 버그: PawRelay 초대코드를 짧게 고친 이유

seunghyeonlab 2026. 6. 25. 19:14

hero

오늘 잡은 버그는 '기능 버그'가 아니었다

PawRelay의 Plus 테스트용 흐름 중 하나는 Google Drive를 통한 선택적 수동 백업·가져오기다. 가족 구성원끼리 데이터를 옮길 때, 자동 동기화 외에 손으로 직접 가져올 수 있는 경로를 하나 더 두는 것이다.

이 흐름 자체는 거의 완성돼 있었다. 코드 생성도 되고, 다른 기기에서 그 코드를 입력하면 데이터도 들어온다. 로직만 보면 통과다. 그런데 QA에서 한 가지가 걸렸다.

초대코드가 너무 길어서, Android에서 입력하는 도중에 잘렸다.

기능은 맞다. 그런데 사용자가 코드를 다 입력하지 못하고 중간에 막히면, 그 기능은 사실상 동작하지 않는 것과 같다.

판단 기준: "된다"의 정의를 사람 쪽으로 옮기기

여기서 내가 세운 기준은 단순하다.

  • 로직상 된다 = 입력이 끝까지 들어왔을 때 올바른 결과가 나온다
  • 실제로 된다 = 실제 폰에서 사람이 막히지 않고 끝까지 입력한다

이 둘은 완전히 다른 기준이다. 그동안은 앞쪽만 통과시키고 "됐다"고 판단해왔는데, 이번 버그는 뒤쪽 기준이 빠져 있으면 제품이 무너진다는 걸 보여줬다.

PawRelay는 AI로 빠르게 만든 앱이지만, 만들어진 것을 그대로 테스터에게 넘기지 않는다. 이런 '사람이 막히는 지점'은 테스터를 받기 전에 먼저 걷어내는 걸 원칙으로 잡고 있다. 테스터의 시간은 진짜 집·진짜 반려동물 환경에서만 나오는 문제에 쓰여야 하기 때문이다.

남긴 결정

고친 내용은 두 가지다.

  1. 초대코드를 짧게 바꿨다. 길이가 문제의 원인이었으니, 입력 중 잘리는 구간 자체를 없애는 방향으로 줄였다.
  2. 예전 코드도 계속 읽을 수 있게 했다. 이미 짧은 코드로 바꿨다고 옛 형식을 끊어버리면, 기존에 코드를 받아둔 흐름이 깨진다. 그래서 새 코드를 기본으로 하되, 과거 형식도 인식하도록 호환을 남겼다.

두 번째 결정이 핵심이다. "새 게 좋으니 옛 건 버린다"가 아니라, 전환 구간에서 누구도 막히지 않게 하는 쪽을 택했다. 이게 비공개 테스트 단계에서 특히 중요하다고 봤다.

다음에 확인할 기준

이번 일로 체크리스트에 추가한 항목이 있다.

  • 사용자가 직접 손으로 입력하는 값(코드·이름 등)은 실제 Android 기기에서 끝까지 입력되는지 본다. 에뮬레이터나 로직 테스트만으로 통과시키지 않는다.
  • 형식을 바꾸는 변경은 옛 형식 호환을 같이 확인한다. 새 형식만 검증하고 끝내지 않는다.
  • Drive 가져오기는 어디까지나 Plus 테스트용 선택 경로로만 설명한다. 가족 공유 그 자체로 포장하지 않는다.

지금 상태

PawRelay는 아직 공개 출시가 아니라 Google Play 비공개 테스트를 준비하는 단계다. 가족 변경 사항은 자동으로 확인되고, 필요하면 수동 새로고침도 된다(즉시 실시간 동기화를 약속하는 건 아니다).

실제 집에서 써봐야만 보이는 문제가 분명히 더 있을 거라, Android 테스터는 계속 찾고 있다. 관심 있으면 DM으로 연락 주시면 된다. Google 계정 이메일은 공개 댓글이 아니라 비공개로만 받는다.


🐦 X에서 더 빠르게: @baegseungh7061
📚 이 시리즈 더 보기: Code 빌드
💌 새 글 알림: X 팔로우 또는 블로그 RSS 구독