iOS

iOS :: SQLite와 Realm 장단점

상어(shark) 2019. 7. 15. 02:02


안녕하세요! 상어입니다.

진짜 오랜만에 블로그를 하는 것 같네요.. 하하핳

네.....ㅠㅠ


앞으로는 가벼운 글로도 많이 올게용!!


그리하여 첫 가벼운? 글은


SQLite와 Realm 장단점이에용XD

제가 내부DB 선택할 때 고민했던 칭구들인데 이글 보시면서 정리가 조금 되셨으면 좋겠어요!!



SQLite

장점

  • 쉽다
  • 간편하다
  • iOS에 이미 내포되어 있어서 굳이 라이브러리를 사용하지 않아도 된다.
       

단점

  • 성능 쏘쏘(단점인가..?)
  • write 경우 테이블이 아닌 DB를 lock 걸음 -> 성능이 안좋아짐
  • Date Time 같은 필드가 존재하지 않음


write 경우 테이블이 아닌 DB를 lock 걸음 -- 부분이 이해가 안되실까봐!!

예를 들어서 school이란 DB가 있고, 그 내부에 student, teacher 등의 table이 있는데

write의 경우, A에서 student table에 접근하면 student table이 아닌 school DB에 lock이 걸려

다른곳에서 DB자체의 접근이 불가능해집니다.




Realm

장점

  • 성능이 좋음(매우!!) -> 코드는 공개되어 있지 않음..
  • Android, iOS DB 공유 가능
  • Realm Studio가 있음 -> 실시간 변경이 눈으로 바로바로 확인 가능   


단점

  • 바이너리 용량이 늘어남
  • main thread 이용하고 있는데 다른 thread 접근하면 에러남. 그래서 사용할 때 스레드 지정해줘야 함
  • 다양한 쿼리를 지원하지 않음
  • iOS8부터 지원가능


이렇게 장단점을 알아봤는데, 상황에 따라 알맞은 것을 사용하면 될 것 같아욤!
무조건 Realm이 좋은거 아냐???? 라고 생각하실 수 있지만
만약, 용량을 신경써야 하는 어플이거나, 성능을 굳이 신경안써도 될 정도로 간단하게 할거라면 Realm보단 SQLite를 사용하는게 더 알맞을 것 같아욥ㅎㅎ



안뇽!