안녕하세요?
자꾸 귀찮게 질문 드려 죄송합니다만... todo앱에서 또 질문이 있습니다 ㅠㅠ
아래 Todo 어레이를 JSON 파일로 저장하는 코드 및 save func 코드에 대한 질문입니다.
/// 현재 Todo 배열 상태를 JSON 파일로 저장
@discardableResult private static func saveToJSONFile() -> Bool {
do {
let data: Data = try JSONEncoder().encode(self.all)
try data.write(to: self.todosPathURL, options: Data.WritingOptions.atomicWrite)
return true
} catch {
print(error.localizedDescription)
}
return false
}
Todo를 추가/수정하거나 삭제할 때 FileManager의 url path에 todos.jason 파일을 만들고 파일 유무를 확인한 다음에 그 파일에 json으로 인코딩 후 write를 하고,
Todo를 추가/수정/삭제할 때마다 매번 임시 파일에 잠깐 썼다가 기존 todos.json을 파일 통째로 다시 덮어 쓰는 것(파일에 이어쓰기가 아닌)으로 이해했는데 맞을까요?
혹시 제가 이해한 게 맞다면 실제 상용 앱에서는 Todo 데이터의 수정(Create, Update, Delete)이 발생할 때마다 파일 전체 덮어쓰기 및 그 disk I/O 지연으로 인해 앱 성능이나 기기 수명에 영향이 없을지,
영향이 있다면 그와 같은 이유로 앱 스토어 심사에서 등록이 거부되지는 않을까 궁금합니다.
추후 확장성 고려 시 빈번하게 데이터 추가/수정/삭제가 일어나면 FileManager를 더 공부해서 기존 todos.json 파일을 이어쓰게 하는 게 좋을까요?(iOS에서 지원하는지는 모르겠습니다만)
아니면 CoreData 같은 것을 쓰는 게 좋을까요?(배우기 어렵다던데… ㅠ)
감사합니다.