-
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
옵션을 적용하여 메모리 누수를 미연에 방지하고 삭제를 간편하게 처리할 수 있었습니다.
S004_강현준 | S012_김우재 | S033_유한준 | S047_이청수 |
---|---|---|---|
@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 적용시 문제