웹 개발 경험을 가지고 앱 개발을 시작하면서, 로그인 상태 유지 기능에 대한 흥미로운 관점 차이를 발견했습니다.
처음에는 웹 개발의 관습대로 사용자에게 로그인 상태 유지 옵션을 제공했지만, 이 과정에서 몇 가지 모순점을 발견하게 되었습니다.
첫 번째로, 회원가입 직후 자동 로그인 시에는 이 옵션을 제공하지 않고 있었다는 점이었고,
두 번째로는 일상적으로 사용하는 여러 모바일 앱들을 돌아보니 대부분 로그인 상태 유지를 별도의 옵션으로 제공하지 않는다는 점이었습니다.
이러한 발견은 웹과 앱의 근본적인 사용 환경 차이에 대해 다시 한번 생각해보는 계기가 되었습니다.
사용 환경의 차이
보안 관점
UX 관점
UI 변경
로직 변경
await AsyncStorage.multiSet([
["jti", response.data.jti],
["accessToken", response.data.accessToken],
["refreshToken", response.data.refreshToken],
["isLoggedIn", "true"],
["rememberLogin", "true"], // 항상 true로 설정
]);
await AsyncStorage.multiSet([
["jti", response.data.jti],
["accessToken", response.data.accessToken],
["refreshToken", response.data.refreshToken],
["isLoggedIn", "true"], // rememberLogin 제거
]);
기존에는 rememberLogin 값을 따로 관리했지만, 선택권을 줄 필요가 없다면 이 키 자체가 불필요하다는 걸 깨달았습니다. 결국 isLoggedIn 값만 관리하면 충분하기 때문에 불필요한 데이터를 정리하는 것이 더 깔끔한 구현이 됩니다.
이 경험을 통해 단순히 기능을 구현하는 것이 아니라, 실제 사용자의 관점에서 더 좋은 UX를 고민하는 것이 중요하다는 것을 다시 한번 깨닫게 되었습니다.