🛠️ 문제 상황
RetrospectListViewController를 통해 뷰가 생성되고 fetch 요청을 보내게 됩니다.
이때 iCloud 연동 기능이 켜져있는 경우에 CoreData를 store 하는 과정중에 fetch 요청을 보내게 되어 local CoreData 의 값만 fetch 해오게 됩니다.
이 경우 CloudKit 영구 저장소와 로컬 CoreData 저장소가 일치하면 문제가 없으나 iCloud 데이터와 달라지는 경우 문제가 발생합니다.


문제 상황
- 앱을 실행한다.
- Scene Delegate에서 CoreData Container를 생성한다.
- CloudKit 영구 저장소와 로컬 CoreData 사이의 동기화가 일어난다.
- 동기화가 끝나기 전, Fetch 요청을 보낸다.
- 로컬에 있는 CoreData 저장소의 값을 Fetch해온다.
- 동기화가 완료되었지만, 이미 패치가 진행되어 누락된 데이터가 발생한다.
💡 해결 과정
1. Notification 보내기
요약: iCloud와 동기화가 되면 NotificationCenter를 통해 동기화가 완료됨을 알림
- local과 iCloud 데이터 동기화
- iCloud 동기화 Notification을 보냄
- 회고 리스트 뷰 컨트롤러가 이를 관찰하다가 Notification을 감지
- 다시 coreDataManager.fetch를 진행