데이터 저장 방식
iOS에서 앱의 데이터를 저장하는 방식은 여러가지가 있다.
오늘은 종류에 대해서만 적어보고 나머지는 자세히 다뤄보겠다.
UserDefaults
- UserDefault는 간단한 값(key-value pairs)을 저장하기 위한 인터페이스이다.
- 일반적으로 앱의 설정, 사용자 기본 설정 및 작은 데이터를 저장하는 데 사용된다.
- 사용자가 앱을 삭제하거나 업데이트할 때 삭제되지 않는다는 점이 특징이다.
- 주로 간단한 설정 값, 사용자 기본 설정 및 앱 상태를 저장하는 데 사용된다.
KeyChain
- KeyChain은 보안 정보(예: 사용자의 로그인 자격 증명, 토큰 등)를 안전하게 저장하는 데 사용된다.
- 데이터는 암호화되어 저장되어 외부로부터 보호된다.
- 사용자가 앱을 삭제해도 KeyChain에 저장된 정보는 유지된다.
- 주로 사용자의 인증 정보나 민감한 데이터를 저장하는 데 사용된다.
FileManager
- FileManager를 사용하여 파일 시스템에 직접 파일을 작성하고 읽을 수 있다.
- 주로 텍스트 파일, 이미지, 비디오 등과 같은 큰 데이터나 구조화되지 않은 데이터를 저장하는 데 사용된다.
- 데이터의 저장 및 검색이 유연하며, 파일 시스템에 직접 액세스할 수 있다.
- 앱의 문서 및 사용자가 생성한 콘텐츠를 저장하는 데 사용된다.
SQLite
- SQLite는 관계형 데이터베이스로서 데이터를 테이블에 저장하고 검색할 수 있다.
- 작은 크기의 데이터베이스를 앱 내에 생성하여 복잡한 데이터를 구조화하고 관리하는 데 사용된다.
- 대규모 데이터베이스나 복잡한 쿼리가 필요하지 않은 경우에도 효율적으로 사용될 수 있다.
- 데이터베이스에 대한 직접적인 SQL 쿼리를 사용하여 데이터를 조작할 수 있다.
CoreData
- CoreData는 객체 그래프를 관리하고 데이터를 영구적으로 저장하는 데 사용된다.
- 객체 그래프를 사용하여 데이터를 추상화하고 관리하여 개발자가 데이터를 객체로 다룰 수 있도록 도와준다.
- 복잡한 데이터 모델을 관리하고 데이터를 검색, 정렬 및 관리하는 데 사용된다.
- SQLite를 내부적으로 사용하여 데이터를 저장하며, 더 높은 수준의 추상화를 제공하여 개발자가 데이터베이스와 직접 상호 작용하지 않아도 된다.
이러한 저장 방식들은 각각의 특성에 따하 적합한 용도가 있으며, 앱의 요구사항과 데이터의 특성에 따라 적절한 방식을 선택해야 한다.