인프런 커뮤니티 질문&답변
RN 질문좀 받아주실 수 있나요?
작성
·
84
·
수정됨
0
궁금한게 생겨 질문합니다..
제가 쓰는 캘린더 앱은 네트워크 연결을 끊고 들어가도 데이터에 접근이 가능합니다.. 끈 상태로 편집도 가능하고요, aysnc-storage 캐시를 쓰고 있는거겠죠?
그럼
AsyncStorage에 모든 데이터를 저장한다면, 왜 전역 상태 관리가 추가로 필요한가요? AsyncStorage가 비동기라서 느리다고 하는데, 전역 상태 변수를 바꿔서 UI를 빠르게 업데이트하고 useEffect로 AsyncStorage에 저장하는 방식인가요?
Refresh/Access 토큰 방식으로 인증을 관리할 때, access 토큰을 발급받으려면 서버 통신이 필요한데, 오프라인에서도 앱 접속이 되는 이유가 궁금합니다.
리프레쉬는 저장되어있겠지만
access는 state에 저장해둔다고 알고 있는데 그럼 앱 껐을 때 사라지고 로그인할 때 발급되는거 아닌가요? 이게 네트워크 연결 없이 되는 이유가 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. infosysSYS님.
질문해주신 사항에 대해 답변 드리겠습니다.
AsyncStorage에 모든 데이터를 저장하면서도 전역 상태 관리가 필요한 이유:
AsyncStorage는 모바일 기기에 데이터를 비동기로 저장할 수 있는 방법이지만, 저장 및 불러오는 과정이 느릴 수 있습니다. 따라서 UI를 보다 빠르게 업데이트하기 위해서는 상태 관리 라이브러리 (Redux, MobX 등)를 활용하여 애플리케이션의 상태를 관리하고, 필요한 순간에useEffect등을 통해 AsyncStorage에 데이터를 저장하거나 불러오는 것이 효과적입니다. 이를 통해 사용자 경험을 향상시킬 수 있습니다.오프라인에서 앱 접근이 가능한 이유:
Refresh/Access 토큰 방식에서 access 토큰은 일반적으로 짧은 수명이지만, 오프라인 사용이 가능한 이유는 Refresh 토큰이 기기에 안전하게 저장되어 있기 때문입니다. 이 경우, 앱은 첫 실행 시 발급받은 접근 권한을 앱의 상태 또는 AsyncStorage에 저장해두고, 네트워크 연결이 없어도 기존에 저장한 데이터를 사용하여 앱을 실행할 수 있습니다. 추가적으로, 어떤 앱에서는 기존에 캐싱된 정보로 오프라인 환경에서도 작동할 수 있도록 설계되어 있을 수 있습니다.
위 정보가 도움이 되셨길 바랍니다. 추가 질문이 있으시면 언제든 문의하세요! 좋은 하루 되세요. 😊




