iOS UserDefaults 로그아웃 구현 및 데이터 관리

호씨·2024년 12월 18일
0

iOS UserDefaults 로그아웃 구현 및 데이터 관리 🔄

현재 로그인-회원가입-마이페이지간 기능구현 및 데이터 저장을 맡아서 개발을 완료한상태다.

1. UserDefaults 로그아웃 구현

로그아웃 시 사용자 정보는 유지하면서 로그인 상태만 변경하는 방법이다.

// UserDefaultsManager
class UserDefaultsManager {
    static let shared = UserDefaultsManager()
    
    // 로그아웃: 로그인 상태만 false로 변경
    func logout() {
        isLoggedIn = false
    }
}

2. UserPageView에서 사용자 정보 표시

사용자 페이지에서 저장된 이메일과 이름을 표시하는 방법이다.

private func setupUI() {
    view.backgroundColor = .white
    
    // 저장된 사용자 정보 표시
    if let savedEmail = UserDefaults.standard.string(forKey: "userEmail") {
        emailLabel.text = savedEmail
    }
    
    // 저장된 사용자 이름 표시
    if let savedName = UserDefaults.standard.string(forKey: "userName") {
        nameLabel.text = savedName
    } else {
        // 이름이 없을 경우 이메일의 @ 앞부분을 표시
        if let email = emailLabel.text {
            let username = email.components(separatedBy: "@")[0]
            nameLabel.text = username
        }
    }
}

3. UserDefaults 데이터 확인 방법 🔍

3.1 시뮬레이터에서 확인하기

  1. 시뮬레이터에서 앱 실행
  2. Terminal에서 다음 명령어 실행:
xcrun simctl get_app_container booted [앱의 bundle identifier] data/Library/Preferences
  1. 표시된 경로에서 .plist 파일 확인

3.2 실제 기기에서 확인하기

  1. Xcode 메뉴에서 Window > Devices and Simulators 선택
  2. 기기 선택
  3. 'Download Container' 버튼 클릭
  4. 저장된 .xcappdata 파일 구조:
    AppData/
    └── Library/
        └── Preferences/
            └── [bundle identifier].plist

3.3 Xcode Debugger 사용

  1. 코드에 브레이크포인트 설정
  2. Debug Navigator에서 확인
  3. LLDB 콘솔에서 확인:
po UserDefaults.standard

3.4 시뮬레이터 파일 시스템 직접 접근

  1. Finder에서 다음 경로로 이동:
~/Library/Developer/CoreSimulator/Devices/
  1. 경로 구조:
[앱 ID]/
└── data/
    └── Containers/
        └── Data/
            └── Application/
                └── Library/
                    └── Preferences/
                        └── [bundle identifier].plist

💡 Tips

  1. UserDefaults 데이터 디버깅 시 참고사항:

    • 시뮬레이터가 실행 중일 때만 데이터 접근 가능
    • 앱 삭제 시 UserDefaults 데이터도 함께 삭제됨
    • 실제 기기에서는 보안상 일부 제약 있음
  2. 데이터 관리 Best Practices:

    • 키 값은 상수로 관리
    • 민감한 정보는 저장하지 않기
    • 주기적으로 불필요한 데이터 정리

📝 정리

  • UserDefaults는 간단한 데이터 저장에 적합
  • 로그아웃 시 필요한 데이터만 선택적으로 삭제 가능
  • 다양한 방법으로 저장된 데이터 확인 가능
  • 디버깅 시 유용한 도구로 활용
profile
이것저것 많이 해보고싶은 사람

0개의 댓글