본문 바로가기

코딩의 유익함/스위프트(Swift)

Swift(스위프트) - 저장소 종류 (SQLite, Core Data, Realm)

Swift 저장소

Swift를 가지고 iOS App를 만들면서 저장소가 필요할 때 구축하는 DB의 역할을 하는 것들의 종류에는 무엇이 있는지 살펴보고 그 특징을 알아보도록 하겠습니다. 자신이 구축하려고 하는 App 특성에 따라 선택하여 설치하시면 되겠지요.

 

1.  SQLite

1.1 앞의 SQL을 보면서 눈치채셨겠지만 우리에게 익숙한 데이터베이스 엔진입니다. IT 관련 학과를 나오신 분들은 Database Query가 낯익고 익숙 하실텐데요, 아마도 이질감 없이 사용할 수 있는 것이 장점이 될 것 같습니다.

 

1.2 오픈소스로 이루어져 있기 때문에, 이미 전 세계적으로 많은 사람들이 사용하고 있습니다. 서버를 따로 구축할 필요가 없이 내부적으로 사용하며, 특히 Swift에는 특별한 설치 없이 바로 사용할 수 있는 장점이 있습니다.

 

1.3 C 언어로 작성되어 있기 때문에 매우 가벼운 것이 특징이며, 전체 데이터베이스를 디스크 파일 1개에 저장하고, 설정 자체가 매우 간편하기 때문에 관리하기가 수월합니다.

 

1.4 여러 가지 OS에서 사용하실 계획이시라면 SQLite는 좋은 선택이 될 수 있습니다.  OS X, iOS, Android, Linux, Windows와 같이 다양한 운영체제에서 사용되기 때문에 한 번만 익혀두면 계속 사용할 수 있습니다.

 

1.5 안전성을 추구하는 Swift와 어울리게도, 수 많은 프로세스와 스레드의 접근으로부터 안전하여 골치를 덜어주는 것이 장점입니다.

 

 

2.  Core Data

2.1 Core Data는 Database의 기능을 위한 저장소는 아닙니다. 실제로는 객체 그래프를 관리하기 위한 Framework이기 때문에 여러 가지 일을 할 수 있는 녀석이지만, 많은 기능 중 하나인 저장소의 역할도 하고 있습니다.

 

1.2 SQLite와 같이 테이블을 가지고 운영하지 않고 객체를 생성해서 데이터를 운용합니다. 그래서(?) SQLite 보다 더 많은 저장공간과 메모리를 필요로 하지만 더욱 빠르게 데이터를 가져온다고 합니다.

 

3.  Realm

3.1 SQLite와 같이 오픈소스이며, 모바일에 최적화된 라이브러리 입니다. 그렇기 때문인지, 위에서 설명한 SQLite, Core Data 보다 속도가 빠르고 성능면에서 더 우수하다고 합니다.

 

3.2 많은 작업들을 처리하기 위해 코드가 많이 필요 하지 않으며, 메인 스레드에서 데이터의 읽기, 쓰기 작업을 모두 할 수 있기 때문에 보다 편리하다고 합니다. 

 

3.3 대용량의 데이터에 대해 무료로 사용할 수 있으며, 용량의 적고 큼에 상관없이 속도와 성능이 유지된다고 합니다.

 

 

이상 공부한 내용을 정리해보았습니다. 사용하시는 App 용도나, 기존에 가진 지식을 활용할 수 있는 저장소를 선택하시면 될 듯합니다.