안드로이드 SharedPreferences의 성능, 보안상 이슈가 있을까요

조회수 6167회

안녕하세요 오랜만에 들르네요.

다름이 아니라 안드로이드에서 SharedPreferences 관련해서 질문을 드리려고 합니다.

사용법에 대해서 질문을 드리려는건 아니구요

보통 클래스간에 변수에 저장된 값을 공유할 때 셋터/겟터를 이용해서 하곤 했는데,

앱내부에 저장이 되는 SharedPreferences에 저장을 해두면 여기저기 클래스에서 값을

가져오기가 편하더군요. 예를 들면 로그인 이후 서버에 접속할 때,

사용되는 키값들이나 임시적으로 저장해서 앱에서 사용할 값들을 SharedPreferences 로

사용을 하고 있습니다.

물론 로그아웃이나 앱이 종료될 때 이 값은 다시 널로 초기화 시켜주고 있구요.

제가 궁금한 것은 SharedPreferences 를 사용하는 변수가 많아지면,

퍼포먼스적으로 안좋다거나 보안상 좋지 않다던가 하는 것이 있는지 궁금합니다.

낮은 길어졌으나 아직은 날씨가 꽤 춥더군요.

개발자분들 건강관리 잘하시구요. 긴 질문 읽어 주셔서 감사합니다.

1 답변

  • SharedPreferences가 내부적으로 XML 파일에 저장을 합니다만 모든 정보를 메모리에 Cache하는 방식으로 동작하기 때문에 성능에 대한 고민이 필요할 만큼 비용이 크지 않습니다. 값을 저장할 때도 Async하게 파일에 쓸 수있는 API를 제공하고 있는데요. 이 부분은 아래 링크를 참고하세요.

    보안의 경우는 SharesPreferences이기 때문에 더 취약한 부분은 없습니다. 데이터베이스인 Sqlite와 동일한 보안 수준이라고 보면 무리가 없을 것 같고요. (사실 어떻게든 열어볼려면 열어볼 수는 있습니다.)

    SharesPreferences 파일에 저장할 때 Key/Value를 암호화하는 방식으로 처리할 수 있는 라이브러리가 있습니다. 필요하다면 이런걸 고려해 볼 수 있을 것 같습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)