Skip to content

CoreData

S004_강현준 edited this page Nov 29, 2021 · 2 revisions

CoreData

왜 사용했나요?

  • OwnMyWay 서비스는 네트워크 통신을 필요로 하지 않는 서비스이므로 CoreData의 Persistence를 이용하여 사용자가 여행한 장소, 여행중 남긴 글을 저장합니다.
  • iOS Persistence로 사용 가능한 방법으로는 UserDefault, SQLite, CoreData, Realm이 존재했지만 여기서 저희는 CoreData를 사용하기로 결정하였습니다.
    • Apple 자체 라이브러리로, 신뢰성이 높습니다.
    • Realm의 경우 성능 상에서 CoreData를 앞서지만, Third-Party 라이브러리이기에 안정성 이슈와 앱의 크기가 커질 가능성을 고려했습니다.
    • Realm과 동일하게 Object 관점으로 데이터를 저장하기 때문에 추후 Realm으로 전환이 간편한 편입니다.


CoreData

어떻게 적용했나요?

  • CoreData를 통해 인스턴스를 생성, 조회, 수정, 삭제하는 기능을 담당하는 Repository를 생성하여 비즈니스로직이 CoreData에 접근이 필요한 경우 해당 Repository를 주입받아 사용하는 형태로 구성하였습니다. UsecaseRepository의 상세를 접근하는 것이 아닌 protocol을 통한 추상타입을 주입받아 추후에 CoreData가 아닌 저장소를 사용한다 하더라도 유연하게 확장할 수 있는 구조를 채택하였습니다.
  • Travel-Landmark&Record 형태로 Relation을 연결하여 데이터를 관리하였고 Entity간의 One-To-Many Relation을 적용할 때 Delete Cascade 옵션을 적용하여 메모리 누수를 미연에 방지하고 삭제를 간편하게 처리할 수 있었습니다.

수인분당선

규칙

프로젝트

기술 특장점

데일리 스크럼

1주차
2주차
3주차
4주차
5주차
6주차

회고

회의록

1주차
2주차
3주차
4주차
5주차
6주차

멘토링

기술 공유

트러블슈팅

더보기

데모 영상

Clone this wiki locally