[SwiftUI] @FetchRequest / @FetchedResults

호랭이·2022년 9월 20일
0

🍎 SwiftUI

목록 보기
6/6

SwiftUI에서는 별도로 CoreData 로직을 구현하지 않아도 CoreData에 쉽게 접근할 수 있다!
삽질을 통해 얻게 된 뼈아픈 경험...

FetchRequest

말 그대로 데이터를 불러오는 요청이라고 보면 될 것 같다.
따라서 Entity와 정렬 기준인 sort descriptors의 값이 필요하다.
기본 사용은 아래와 같다.

@FetchRequest(entity: Entity.entity(), sortDescriptors: []) var Entity: FetchedResults<Entity>

FetchedResults

위의 코드에서와 같이 CoreData의 데이터가 sortDescriptors의 조건대로 정렬되어서 나온 데이터이다.
변수로 지정하여 사용할 수 있다.
사용예는 아래와 같다.

ForEach(Entity) { food in
Text(Entity.name ?? "")
}

내 생각

CoreData를 패치해오고, 정렬하고, 뷰에 뿌려주는 일련의 과정없이
뷰에서 바로 CoreData에 접근해서 사용하는 것은 분명 정말 편리하다!
CoreData의 Attributes와 데이터 구조가 간단할 때는 유용하게 사용할 수 있을 것 같다.
하지만
1. 데이터를 가공하는 로직이 복잡하거나
2. 여러 case에 대한 테스트가 필요할 때
에도 간결하게 사용할 수 있을지는 의문이다...!

1번의 경우에는 뷰에서 데이터 가공이 불가피할테고,
2번의 경우에는 UITest 단위에서 테스트를 진행해야하는걸까? 그러면 그걸 UITest라고 할 수 있나?🧐 라는 의문점이 든다.

간단한 구조의 앱을 만들 때는 굳이 MVVM을 사용할 필요성도 없어질 것 같다는 생각을 했다.
혹은 MVVM구조를 가져가면서 뷰모델에서 FetchRequest를 쓰는건...?
가능할지 모르겠지만, 진행중인 프로젝트에서 여러가지 시도를 해보고 장단점을 차차 알아가보도록 하겠다!!!🤓

profile
삐약

0개의 댓글