작성
·
80
·
수정됨
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에 저장해두고, 네트워크 연결이 없어도 기존에 저장한 데이터를 사용하여 앱을 실행할 수 있습니다. 추가적으로, 어떤 앱에서는 기존에 캐싱된 정보로 오프라인 환경에서도 작동할 수 있도록 설계되어 있을 수 있습니다.
위 정보가 도움이 되셨길 바랍니다. 추가 질문이 있으시면 언제든 문의하세요! 좋은 하루 되세요. 😊