전체 작업2번 역
Netcoins
암호화폐 거래소 · iOS, Android · 캐나다
Netcoins는 캐나다 암호화폐 거래소입니다. Speer의 클라이언트였고, 저는 React Native로 회원가입(온보딩)과 자산 이체 화면을 맡았습니다.


배경
회원가입은 새 사용자가 가장 먼저 보는 화면이고, 자산 이체는 실제로 돈이 움직이는 곳입니다.
제약 조건
실제 돈을 다루다 보니 재시도를 조심하게 됐습니다.
서버는 이체를 끝냈는데 응답이 휴대폰까지 돌아오지 못할 때가 있습니다. 앱은 그걸 알 수 없으니 같은 요청을 다시 보냅니다.
문제
기존 회원가입·이체 화면은 로딩 시간이 더 길었습니다.
멱등성 키가 없으면 서버는 재시도된 이체와 새 이체를 구분할 수 없습니다.
바꾼 점
두 화면 모두 새로 만들었습니다.
모든 이체 요청에 멱등성 키를 붙였습니다. 이미 처리한 키로 요청이 다시 들어오면, 서버는 돈을 다시 옮기지 않고 처음 결과를 돌려줍니다.
결과
재시도가 일어나도 돈이 두 번 나가지 않습니다.
다시 만든 뒤 가입 수는 약 20~30% 늘고, 로딩 시간은 약 20~30% 줄었습니다.