뒤로
N
noodle ·

지난 화에서 일흔 개 중 열 개를 골랐다고 썼다. 2주 동안 그걸 고쳤다.

큰 것부터 적으면 이렇다. 같은 파트너와 매일 같은 시간에 자동으로 방이 생기게 했다. 이제 아무도 "오늘 할래?"를 말하지 않아도 아침에 방이 있다. 세션 화면을 다시 만들었고, 잠금화면에 상대 상태가 뜨게 했고, 세션 중에 메시지를 주고받을 수 있게 했다. 100분이 넘으면 타이머가 0으로 돌아가던 것도 고쳤다.

예정은 2주였고, 실제로도 2주가 걸렸다. 다만 중간에 계획에 없던 일이 하나 끼어들었다.

같은 버그가 세 번 돌아왔다

세션이 끝나고 다시 들어가면 메시지 순서가 뒤섞였다. 고쳤다. 다른 경로로 다시 나왔다. 또 고쳤다. 또 나왔다.

세 번째에 멈춰서 생각했다. 고치는 방식이 틀린 게 아니라, 고칠 수 있는 종류의 문제가 아닌 것 같았다.

원인은 이랬다. 메시지가 앱 안의 임시 기억에 들어 있었다. 화면을 떠나면 그 기억이 사라지고, 다시 들어오면 남은 조각을 가지고 순서를 다시 맞춰야 했다. 맞출 때마다 조금씩 다르게 맞춰졌다. 버그가 아니라 구조가 그렇게 돼 있었다.

그래서 고치는 걸 그만두고 다시 만들었다. 메시지는 전부 서버에 저장하고, 앱은 그걸 읽어서 보여주기만 한다. 기억해야 할 곳이 한 군데가 되니 틀릴 자리가 없어졌다.

2~3일 걸릴 줄 알았다. 일주일이 걸렸다. 새로 만드는 것보다 기존에 흘어져 있던 걸 전부 걷어내는 게 더 오래 걸렸다.

반대로 되돌린 것도 있다

통화 기능에서는 정반대로 했다.

통화를 걸었다가 취소하거나, 상대가 받기 전에 앱을 꺼버리거나, 스크럼에서 세션으로 넘어가는 중에 통화가 걸려오면 화면이 어긋났다. 전부 제대로 처리하려고 몇 가지를 넣었다. 일정 시간이 지나면 자동으로 끊기게 하고, 연속으로 누르면 무시하게 하고, 중복을 막는 장치를 붙였다.

넣고 나니 다른 데가 망가졌다. 화면이 넘어간 뒤에도 "받기" 버튼이 사라지지 않고 계속 떠 있었다. 원래 문제보다 눈에 띄는 문제였다.

전부 되돌렸다. 지금은 통화를 걸고 안 받으면 몇십 초쯤 울리다가 끊긴다. 깔끔하지는 않다. 대신 어긋나지는 않는다.

한쪽은 더 깊이 파고들었고 한쪽은 손을 뗐는데, 기준이 뭐였냐면 되돌릴 수 있는가였다. 메시지는 틀리면 기록이 남고 기록은 되돌릴 수 없다. 통화는 어색하면 한 번 더 걸면 된다.

맞는 판단이었는지는 아직 모르겠다. 다음 주에 쓰다 보면 알게 될 것 같다.

못 한 것도 적어둔다

10분을 채우면 잠금화면이 잠깐 빛나게 하려고 했는데 안 했다. iOS와 안드로이드를 따로 만들어야 하는데 들이는 품에 비해 얻는 게 적어 보였다. 정기 파트너를 여러 명 두는 것도 미뤘다. 지금은 한 명만 된다.

고친 것보다 미룬 것이 더 많다. 원래 그렇게 하기로 했다. 10월 말에 개발을 멈추기로 날짜를 박아뒀고, 그 안에 안 들어가는 건 이름만 적어서 넘긴다.

다음 주에 써본다

고쳐놓고 아직 하루도 안 써봤다. 다음 주에 지난번 그 파트너와 다시 일주일을 돌린다. 이번에는 반복 예약을 미리 걸어두고 시작한다.

아침에 방이 저절로 생겨 있으면, 금요일에도 들어가게 될까. 그게 이번 주의 질문이다.

StartRoom

정한 시간에 파트너와 방에 들어가 오늘 할 일을 적고 같이 타이머를 켭니다. 혼자 일하는 사람이 미루지 않고 시작하도록.

0

댓글

로그인 후 댓글을 남길 수 있습니다.

오피셜메일
오피셜메일

메시지 순서 문제를 임시 상태 보정이 아니라 서버 저장으로 풀어낸 판단이 인상적입니다. 세션 종료 후 재진입·다른 기기 접속까지 같은 순서가 유지되는지 회귀 테스트를 남겨두면, 다음 주 반복 예약을 시험할 때도 원인 구분이 쉬울 것 같아요. 통화처럼 되돌릴 수 있는 불편과 기록처럼 되돌릴 수 없는 오류를 나눈 기준도 배웠습니다.