앱 개발에서의 로그인 상태 유지 처리에 대한 고찰

oversleep·2025년 2월 14일
0

app-development

목록 보기
6/38
post-thumbnail

웹 개발 경험을 가지고 앱 개발을 시작하면서, 로그인 상태 유지 기능에 대한 흥미로운 관점 차이를 발견했습니다.
처음에는 웹 개발의 관습대로 사용자에게 로그인 상태 유지 옵션을 제공했지만, 이 과정에서 몇 가지 모순점을 발견하게 되었습니다.

첫 번째로, 회원가입 직후 자동 로그인 시에는 이 옵션을 제공하지 않고 있었다는 점이었고,
두 번째로는 일상적으로 사용하는 여러 모바일 앱들을 돌아보니 대부분 로그인 상태 유지를 별도의 옵션으로 제공하지 않는다는 점이었습니다.

이러한 발견은 웹과 앱의 근본적인 사용 환경 차이에 대해 다시 한번 생각해보는 계기가 되었습니다.

웹과 앱의 차이점

  1. 사용 환경의 차이

    • 웹: 공용 PC 등 여러 사용자가 사용할 수 있는 환경
    • 앱: 개인 스마트폰 등 private한 환경
  2. 보안 관점

    • 웹: 로그인 상태 유지가 보안 위험이 될 수 있음
    • 앱: 기기 자체가 개인화되어 있어 상대적으로 안전
  3. UX 관점

    • 웹: 사용자 선택에 따른 로그인 상태 관리
    • 앱: 빠른 접근성과 편의성 중시

개선된 구현 방향

  1. UI 변경

    • 로그인 상태 유지 체크박스 제거
    • 더 깔끔한 로그인 화면 구성
  2. 로직 변경

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 값만 관리하면 충분하기 때문에 불필요한 데이터를 정리하는 것이 더 깔끔한 구현이 됩니다.

배운 점

  1. 플랫폼의 특성에 맞는 UX 설계의 중요성
  • 웹과 앱은 사용 환경이 다르므로 동일한 UX를 적용하면 어색할 수 있다.
  1. 불필요한 사용자 선택지 제거로 인한 UX 개선
  • 사용자가 굳이 고민하지 않아도 되는 옵션은 없애는 것이 좋다.
  1. 웹과 앱의 근본적인 사용 환경 차이 이해
  • 웹에서는 세션 유지가 선택 사항이지만, 앱에서는 기본적으로 유지되는 것이 자연스럽다.

이 경험을 통해 단순히 기능을 구현하는 것이 아니라, 실제 사용자의 관점에서 더 좋은 UX를 고민하는 것이 중요하다는 것을 다시 한번 깨닫게 되었습니다.

profile
궁금한 것, 했던 것, 시행착오 그리고 기억하고 싶은 것들을 기록합니다.

0개의 댓글