-
Notifications
You must be signed in to change notification settings - Fork 6
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를 주입받아 사용하는 형태로 구성하였습니다.Usecase는Repository의 상세를 접근하는 것이 아닌protocol을 통한 추상타입을 주입받아 추후에 CoreData가 아닌 저장소를 사용한다 하더라도 유연하게 확장할 수 있는 구조를 채택하였습니다. -
Travel-Landmark&Record형태로 Relation을 연결하여 데이터를 관리하였고 Entity간의 One-To-Many Relation을 적용할 때Delete Cascade옵션을 적용하여 메모리 누수를 미연에 방지하고 삭제를 간편하게 처리할 수 있었습니다.
|
|
|
|
|
|---|---|---|---|
| @mandeuk26 | @kimwj9792 | @hj56775 | @bestowing |
2주차
3주차
4주차
5주차
6주차
더보기
- CollectionView + Diffable & Compositional 사용 이유
- App Target iOS13+ 인 이유
- Storyboard를 채택한 이유
- 뒤로가기 버튼에 특정 액션을 넣으면 Swipe back이 되지 않는 문제
- 메모리 누수 발생 문제
- 맵뷰가 주기적으로 리프레쉬되는 문제
- UserLocation 화면을 빠져나와도 업데이트 해야하는 문제
- Compositional Layout의 estimated가 정상 동작하지 않는 문제
- Keyboard에 의해 TextField가 가려지는 문제
- 사용자가 권한을 거절했을때 생길 수 있는 문제
- 이미지를 불러올때 프레임 드랍이 발생하는 문제
- PHPicker를 이용해 이미지를 보여줄 때 이미지를 순서대로 표시하지 못하는 문제
- 관광명소 검색화면에서 빠르게 스크롤 시 적합한 관광명소 이미지를 보여주지 못하는 문제
- 무한스크롤 캘린더 구현과 VoiceOver 적용시 문제