[android] SharedPreferences란?

2025. 5. 20. 17:09·개발 | 프로젝트/Android

애플리케이션 제작 중 로그인 유무를 저장하기 위해 SharedPreferences을 사용하였습니다. 필요한 데이터를 앱에 저장하는 것이라고만 알고 있지만 정확한 개념이 궁금하여 찾아보았습니다.

 

공식 안드로이드 개발자 문서를 참고하였습니다.

 

SharedPreferences로 단순 데이터 저장하기  |  App data and files  |  Android Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. SharedPreferences로 단순 데이터 저장하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 저장하려는 키-

developer.android.com

 

SharedPreferences란?

SharedPreferences는 안드로이드에서 간단한 데이터를 저장할 수 있도록 제공하는 저장소입니다. 내부적으로는 key-value 쌍으로 데이터를 저장하며, 앱 설정값이나 사용자 정보와 같은 간단한 환경설정 데이터를 저장할 때 자주 사용됩니다.

 

일반적으로 개발 시 데이터를 저장할 때 데이터베이스를 사용하지만 간단한 데이터를 간편하게 저장하기 위해 사용하는 것입니다.

 

다음 메서드 중 하나를 호출하여 새로운 공유 환경설정 파일을 생성하거나 기존 파일에 액세스할 수 있습니다.

  • getSharedPreferences(): 이름으로 식별되는 공유 환경설정 파일이 여러 개 필요한 경우 이 메서드를 사용합니다. 이름은 첫 번째 매개변수로 지정할 수 있습니다. 앱의 모든 Context에서 이 메서드를 호출할 수 있습니다.
  • getPreferences(): 활동에 공유 환경설정 파일을 하나만 사용해야 하는 경우 Activity에서 이 메서드를 사용합니다. 이 메서드는 활동에 속한 기본 공유 환경설정 파일을 검색하기 때문에 이름을 제공할 필요가 없습니다.

 

로그인 상태 저장 예시

SharedPreferences pref = getSharedPreferences("UserPref", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putBoolean("isLoggedIn", true); // 로그인 상태 저장
editor.apply(); // 또는 editor.commit();

 

여기서 apply()는 비동기 저장이고, commit()은 동기 저장입니다.

 

앱 실행 시 로그인 상태 확인

SharedPreferences pref = getSharedPreferences("UserPref", MODE_PRIVATE);
boolean isLoggedIn = pref.getBoolean("isLoggedIn", false); // 기본값은 false

if (isLoggedIn) {
    // 자동 로그인 처리
} else {
    // 로그인 화면으로 이동
}

 

SharedPreferences의 저장 위치 

SharedPreferences는 내부 저장소의 data/data/패키지명/shared_prefs/ 디렉토리에 .xml 파일 형태로 저장됩니다.

'개발 | 프로젝트 > Android' 카테고리의 다른 글

[Android] Room이란?  (0) 2025.06.03
[android-RN] gradle 에러 , gradlew clean 시 에러 Error: Unable to deserialize cloned data  (0) 2025.05.16
[Error] 리액트 네이티브 안드로이드 가상 디바이스 연결 오류 No apps connected. sending "reload" to all react native apps failed. make sure your app is running in the simulator or on a phone connected via usb.  (0) 2025.04.16
[android] 레이아웃 (LinearLayout / FrameLayout / RelativeLayout)  (0) 2024.07.17
'개발 | 프로젝트/Android' 카테고리의 다른 글
  • [Android] Room이란?
  • [android-RN] gradle 에러 , gradlew clean 시 에러 Error: Unable to deserialize cloned data
  • [Error] 리액트 네이티브 안드로이드 가상 디바이스 연결 오류 No apps connected. sending "reload" to all react native apps failed. make sure your app is running in the simulator or on a phone connected via usb.
  • [android] 레이아웃 (LinearLayout / FrameLayout / RelativeLayout)
seulll
seulll
개인 공부 / 정리 블로그입니다 https://github.com/seul1009
  • seulll
    seulll
    seulll
  • 전체
    오늘
    어제
    • 분류 전체보기 (340) N
      • 코딩테스트 (232) N
        • programmers (python) (156)
        • 백준 (python) (74) N
      • 자료구조 | 알고리즘 (14)
      • 개발 | 프로젝트 (43)
        • Python (4)
        • Java | Spring (7)
        • Android (5)
        • Unity (3)
        • API (4)
      • CS (15)
        • Network (5)
        • SQL (2)
        • OS (4)
      • 데이터 분석 (14)
      • 기타 (13)
  • 블로그 메뉴

    • 홈
    • 태그
    • 글쓰기
    • 설정
  • 링크

    • GitHub
  • 인기 글

  • 태그

    Greedy
    박스플롯
    asterisk
    티스토리챌린지
    카카오맵
    백엔드
    Boxplot
    2 x n 타일링
    바다코끼리
    train_test_split
    solving environment
    Python
    대입 표현식
    파이썬
    웹크롤링
    야근 지수
    오블완
    데이터분석
    백엔드 개발자 역량
    kakao map api
    API
    프렌즈4블록
    그리디 알고리즘
    프로그래머스
    confusion matrix
    카카오맵 api
    백엔드 개발자
    오차행렬
    모델 성능 평가
    코딩테스트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
seulll
[android] SharedPreferences란?
상단으로

티스토리툴바