[swift]UserDefaults

Jeff·2024년 12월 3일
3

# UserDefaults

iOS 앱에서 데이터를 영구적으로 보관하기 위한 방식에는 여러가지가 있다. 그 중 한가지는 UserDefaults 이다.
UserDefaults는 앱이 실행되는 동안에 key-value 형태로 데이터를 저장하는 사용자의 기본 데이터베이스에 대한 인터페이스이다.
앱이 종료되더라도 사라지지 않고, 영구적으로 저장이 된다. 하지만 앱이 완전히 삭제가 된다면 데이터 또한 같이 사라진다.

  • 간단히 말하면

    • 디스크에 데이터를 저장할 수 있게 돕는 도구이다.
    • CoreData 보다 사용성이 간단하다.
    • key-value를 이용해 값을 저장한다.
    • Singleton 객체, 앱 전체에서 하나의 인스턴스로 사용된다.
    • 대량의 데이터를 담는데는 CoreData가, 비교적 단순한 데이터를 담는 데에는 UserDefaults가 적절하다.
    • 자동 로그인 여부, 아이디 저장, 환경설정에서 설정하는 설정 데이터 값(사용자가 선호하는 측정 단위나 미디어 재생 속도 등) 같은 단일 데이터 등을 UserDefaults로 담아서 보관하기도 한다.

    # CRUD란?

그럼 간단하게 CRUD에 대해 알아보고 사용해보자.

  • 일반적인 개발론에서 CRUD 라는 용어는 자주 사용하고 뜻은 다음과 같다.

    • Create = 데이터 생성
    • Read = 데이터 읽기
    • Update = 데이터 업데이트 (쓰기)
    • Delete = 데이터 삭제
  • 전화번호 앱에서 일어나는 CRUD 를 예시로 본다면

    • C = 새로운 전화번호를 등록한다.
    • R = 저장된 전화번호 데이터를 조회한다.
    • U = 저장된 전화번호를 수정한다.
    • D = 전화번호를 삭제한다.

# Create & Read

  • 위와 같이 UserDefaults.standard.set() 메서드를 통해서 데이터를 저장할 수 있다. (Create)
  • 또한 UserDefaults.standard.string(forKey: "")을 통해 데이터의 저장된 값을 읽어올 수 있다. (Read)
    • Read는 타입에 맞는 메서드를 사용해야한다.
    • String 타입 : UserDefaults.standard.String(forKey: "")
    • bool 타입 : UserDefaults.standard.bool(forKey: "")
    • Int 타입 : UserDefaults.standard.integer(forKey: "")
  • forkey에는 앞서 Create하면서 선언한 forkey값을 사용해주면 된다.

# Update & Delete

  • 위와 같이 UserDefaults.standard.set() 메서드를 통해서 데이터를 수정할 수 있다. (Update)
    • Update는 Create와 사용법이 동일하며 데이터 위에 덮어씌운다는 느낌이다.
  • UserDefaults.standard.removeObject(forKey: "") 메서드를 통해서 데이터를 삭제할 수 있다. (Delete)
    • forkey에는 앞서 선언한 forkey값을 사용해주면 된다.
profile
기본에 충실한 개발자가 목표!

1개의 댓글

comment-user-thumbnail
2024년 12월 4일

가운데 .standard는 무슨 역할일까요.. 받아오는 역할인가?

답글 달기