마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

앱에서 발생한 정보를 저장하는 방법

0 추천
안녕하세요. 앱을 개발해온 적 없는 1인입니다.

앱을 사용하면서 발생하는 상태변경이나 일시적으로 단말에 정보를 저장하는 것은 이해했습니다.

그러면 이렇게 발생한 정보를 궁극적으로 디비서버에 저장해야 할 텐데 그때 사용하는 방법이 rest호출인 것인지 궁금하군요,

다른 방법이 있는지도 궁금합니다.

또 저장 주기 같은 게 있는지 아니면 필요할 때마다 저장하는 것인지도 궁금합니다.
부웅 (160 포인트) 님이 2021년 4월 14일 질문

1개의 답변

+1 추천
 
채택된 답변
네, Rest API를 그 용도로 많이 사용합니다. 서버와 클라이언트 간에 통신을 할 때, 서버와 클라이언트가 지속적으로 연결된 상태가 아닌 해당 API의 호출시만 연결이 유지되는 이른바 statless(상태없음?)의 상태로 통신을 합니다. 물론 통신시에 서로에 대해 알 수 있도록 서버로부터 인증을 받은 후 헤더에 서버에서 발행한 토큰(eg. JWT)같은 것을 넘겨주는게 일반적입니다.

저장주기는 클라이언트가 필요한 시점에 Rest API를 호출하시면 됩니다. 다만 클라이언트의 인증이 필요할 경우는 클라이언트가 로그인 과정을 통해 서버로부터 Access Token이란 걸 받아서, 이걸 다음 통신시 부터 사용하면 됩니다. 그리고 Access Token은 요즘은 보통  JWT 란걸 사용하구요, 여기에는 유효기간이란게 존재하기 때문에, 유효기간이 지나서 들어오는 요청은 서버에서 거부하셔야 합니다. 만약 클라이언트가 Access Token을 지속적으로 사용하기 원하면 Refresh Token이란 걸 인증시에 발행해줄 수 있구요, 클라이언트에서는 Refresh Token을 이용해서 새로운 Token 을 서버로부터 발급받은 후에 계속 통신을 수행할 수 있습니다. 서버 클라이언트 인증 방식으로 많이 사용되는 표준적인 방식은 OAuth2로 불리는 방법입니다. 구글, 페이스북 등등 우리가 아는 아주 많은 회사들이 이 방법을 채용하고 있습니다.

안드로이드에서는 보통 Retrofit또는 Retrofit + OkHttp 를 Rest API 라이브러로 많이 사용하고, 통신 포맷은 대부분은 JSON을 사용하며, Gson이나 Moshi를 주로 사용합니다. Retrofit + Gson 조합만으로도 많은 코드없이 Rest API를 쉽게 핸들링할 수 있어요.
spark (226,420 포인트) 님이 2021년 4월 14일 답변
부웅님이 2021년 4월 14일 채택됨
...