대부분의 앱들은 처음 앱을 가동했을 때, 앱에 대한 전반적인 설명과 함께 시작하는 버튼으로 온보딩화면을 구현한다. 사실 우리는 모든 기능들이 직관적으로 보이기 때문에 온보딩 화면은 필요가 없었으나, 익명계정 로그인 관리를 위해 온보딩화면이 필요하다 판단을 내렸다.
익명계정에서 로그아웃 기능을 만드는 것은 어떤가?
문제는 한번 로그아웃을 하면, 영원히 로그인 할 수 있는 유령계정이 된다. 왜냐? 아이디, 비밀번호 없이 무작위로 생성된 UUID만을 취급하여 만들었기 때문에
-> 불가
로그 아웃의 기능을 없애고, 회원 탈퇴만 구현
가장 유력한 후보이긴 했다. 다만, 의견이 나왔던 것 중에 일기의 종류가 다양하여 계정을 여러개 쓰는 사람들은 어떻게 하냐? 는 말에 처음엔 어리둥절 했다. 근데 실제로 찾아보니 일기 계정을 2~3개 만들어서, 하나는 자신의 감정을 담은 일기, 다른 하나는 반려묘, 반려견에 관한 관찰일기, 마지막으로 커플일기 등등 나눠서 쓰는 분들이 적지 않았다.
-> 불가
온보딩 화면 구현
온보딩 화면을 만들어 시작하기 버튼을 누를 때, 익명 계정이 생성되도록 하는 것이다. 그렇게 되면, 로직이 달라진다.
a. 사용자는 시작하기를 누르면 익명계정이 생성된다.
b. 익명 계정을 사용하다 소셜 계정으로 전환하는데도 문제가 없다.
c. 소셜 계정을 로그아웃하고, 일기를 작성해도 데이터베이스에는 등록이 되지 않는다.
why? 비로그인 상태이기 때문이다. 대신, 일기를 작성해도 아무런 변화가 없다.
-> 이렇게 단순하게 로직을 생각하고 온보딩화면을 뚝딱 만들었다.
사용자가 익명 계정에서 소셜 계정으로 전환할 때, 기존에 사용하고 있는 소셜 계정이 있는 경우, 익명 계정이 삭제되고 ( 데이터 포함 ), 소셜 계정으로 전환하는 로직을 만들었다. 이게 최선인 듯하다. 아직까지는... 다만, 아직 Alert창으로 기존의 계정이 있으므로 모든 데이터가 소멸된다는 경고 문구를 만들지는 못했다. 실질적으로 사용자가 이미 사용하고 있는 소셜계정이 있으면, 보통 로그인을 먼저하지 않는가?.. 이런 디테일까지 신경쓴다고 어필하고싶지만, 개발자는 묵묵히 해야하는거겠지...