혼자 만들어 보고 싶은 앱이 생겨서 개발을 할려고 이것저것 머리 속으로 계속 그려보다가 DB처리에 대해 깊게 생각을 하게 되었다.
앱에서는 기기 자체 로컬에 데이터를 저장할 수도 있고 서버에 있는 걸 가져와서 할 수도 있으니까 데이터 저장에 대해서 생각을 해볼 필요가 있겠다고 생각이 들었다.
내가 기초적으로 알고 있는 건 앱에 기본 설정. 예를 들어 다크 모드라던지 언어설정 같은 비교적 단순한 데이터들은 로컬 자체에서 가지고 있는 것이었다.
본격적으로 데이터를 어디에 저장할 지 살펴보자면
아무래도 안드로이드 로컬적으로 깊게 보안에 대해서 알고 있지 않은 이상 서버에 저장하는 것이 보안적으로 나을 것이다.
이런 의미에서 사용자의 계정 정보나 중요한 비즈니스 데이터 같은 부분은 로컬보단 서버에 저장하는 것이 더 좋을 것이다.
로컬이 아닌 서버쪽에 DB를 저장하게 된다면 아무래도 중요하게 저장해야하는 데이터에 무결성이 보장되고 중복 또한 발생하지 않을 것이다.

앱에서 반복적으로 사용해야하는 데이터라면 수시로 서버와 통신을 하여 값을 가져오긴 곤란할 것이다. 이런 경우 로컬에 캐시 데이터를 저장하면 네트워크적 비용을 절감하고 속도 또한 서버와 계속 통신하는 것보다 좋을 것이다.
안드로이드 환경에서는 사용자가 3G,4G를 사용하거나 와이파이를 이용해서 네트워크 통신을 한다. 하지만 사용자, 환경에 따라 네트워크 환경이 제한되는 경우도 있다. 데이터를 다 사용했는데 주변에 와이파이가 없다거나 하는 상황에서도 사용이 되야하는 앱에 경우에는 이런 것을 고려해야할 것이다.
즉, 오프라인 모드에서도 접근이 필요한 앱에서는 이러한 점을 고려해 필요한 데이터를 로컬에 저장해햐안다.