Xamarin.iOS 앱의 데이터 스토리지 소개

데이터베이스를 사용하는 경우

모바일 디바이스의 스토리지 및 처리 기능이 증가하고 있지만 휴대폰과 태블릿은 여전히 데스크톱 및 노트북에 비해 뒤쳐져 있습니다. 이러한 이유로 데이터베이스가 항상 올바른 대답이라고 가정하는 대신 앱에 대한 데이터 스토리지 아키텍처를 계획하는 데 다소 시간이 소요됩니다. 다음과 같이 다양한 요구 사항에 맞는 다양한 옵션이 있습니다.

  • 기본 설정 – iOS는 간단한 키-값 데이터 쌍을 저장하기 위한 기본 제공 메커니즘을 제공합니다. 간단한 사용자 설정 또는 작은 데이터 조각(예: 개인 설정 정보)을 저장하는 경우 플랫폼의 기본 기능을 사용하여 이러한 유형의 정보를 저장합니다. iOS의 경우 여러 디바이스를 사용하는 사용자의 백업 및 동기화를 위해 이 데이터에 대해 iCloud 동기화를 활용할 수도 있습니다.
  • 텍스트 파일 – 다운로드한 콘텐츠의 사용자 입력 또는 캐시(예: HTML)은 파일 시스템에 직접 저장할 수 있습니다. 적절한 파일 명명 규칙을 사용하여 파일을 구성하고 데이터를 찾을 수 있습니다.
  • 직렬화된 데이터 파일 – 개체는 파일 시스템에서 XML 또는 JSON으로 유지할 수 있습니다. .NET Framework에는 개체를 쉽게 직렬화하고 직렬화 해제할 수 있는 라이브러리가 포함되어 있습니다. 적절한 이름을 사용하여 데이터 파일을 구성합니다.
  • 데이터베이스 – SQLite 데이터베이스 엔진은 iOS에서 사용할 수 있으며 쿼리, 정렬 또는 기타 조작에 필요한 구조적 데이터를 저장하는 데 유용합니다. 데이터베이스 스토리지는 많은 속성이 있는 데이터 목록에 적합합니다.
  • 이미지 파일 – 모바일 디바이스의 데이터베이스에 이진 데이터를 저장할 수 있지만 파일 시스템에 직접 저장하는 것이 좋습니다. 필요한 경우 데이터베이스에 파일 이름을 저장하여 이미지를 다른 데이터와 연결할 수 있습니다. 큰 이미지 또는 많은 이미지를 처리할 때 더 이상 모든 사용자의 스토리지 공간을 사용하지 않아도 되는 파일을 삭제하는 캐싱 전략을 계획하는 것이 좋습니다.

데이터베이스가 앱에 적합한 스토리지 메커니즘인 경우 이 문서의 다시 기본 문서에서는 Xamarin 플랫폼에서 SQLite를 사용하는 방법을 설명합니다.

데이터베이스 사용의 장점

모바일 앱에서 SQL 데이터베이스를 사용하는 경우 다음과 같은 여러 가지 이점이 있습니다.

  • SQL 데이터베이스를 사용하면 구조화된 데이터를 효율적으로 스토리지할 수 있습니다.
  • 복잡한 쿼리를 사용하여 특정 데이터를 추출할 수 있습니다.
  • 쿼리 결과를 정렬할 수 있습니다.
  • 쿼리 결과를 집계할 수 있습니다.
  • 기존 데이터베이스 기술을 가진 개발자는 지식을 활용하여 데이터베이스 및 데이터 액세스 코드를 디자인할 수 있습니다.
  • 연결된 애플리케이션의 서버 구성 요소에서 데이터 모델을 모바일 애플리케이션에서 다시 사용할 수 있습니다(전체 또는 부분적으로).

SQLite 데이터베이스 엔진

SQLite는 Apple이 모바일 플랫폼에 채택한 오픈 소스 데이터베이스 엔진입니다. SQLite 데이터베이스 엔진은 iOS에 기본 제공되므로 개발자가 활용할 추가 작업이 없습니다. SQLite는 다음과 같은 이유로 플랫폼 간 모바일 개발에 적합합니다.

  • 데이터베이스 엔진은 작고 빠르며 쉽게 이식할 수 있습니다.
  • 데이터베이스는 모바일 디바이스에서 쉽게 관리할 수 있는 단일 파일에 저장됩니다.
  • 파일 형식은 32비트 또는 64비트, 대형 또는 little-endian 시스템 등 여러 플랫폼에서 쉽게 사용할 수 있습니다.
  • 대부분의 SQL92 표준을 구현합니다.

SQLite는 작고 빠르도록 설계되었기 때문에 사용 시 몇 가지 주의 사항이 있습니다.

  • 일부 OUTER 조인 구문은 지원되지 않습니다.
  • RENAME 및 ADDCOLUMN 테이블만 지원됩니다. 스키마에 대한 다른 수정은 수행할 수 없습니다.
  • 보기는 읽기 전용입니다.

SQLite.org 웹 사이트에서 SQLite에 대해 자세히 알아볼 수 있습니다. 그러나 Xamarin과 함께 SQLite를 사용하는 데 필요한 모든 정보는 이 문서 및 관련 샘플에 포함되어 있습니다. SQLite 데이터베이스 엔진은 모든 버전의 iOS에 기본 제공됩니다. 이 챕터에서는 다루지 않지만 Windows 전화 및 Windows 애플리케이션에서도 SQLite를 사용할 수 있습니다.

Windows 및 Windows Phone

SQLite는 Windows 플랫폼에서도 사용할 수 있지만 해당 플랫폼은 이 문서에서 다루지 않습니다. Tasky 사례 연구에서 자세히 알아보고 Tim Heuer의 블로그를 검토하세요.