Daily iOS
SwiftUI

SwiftUI 코드 결함 찾기

SwiftUI 라이브 코딩 리뷰입니다. 아래 피드 화면 코드에서 결함을 최대한 많이 찾아 각각 왜 문제인지, 어떻게 고칠지 말해 주세요.

struct FeedView: View {
    @ObservedObject var vm = FeedViewModel()
    @State var items: [Post] = []
    var body: some View {
        List {
            ForEach(0..<items.count) { i in
                PostRow(post: items[i])
                    .onAppear { if i == items.count - 1 { Task { await vm.loadMore() } } }
            }
        }
        .onAppear { Task { items = await vm.fetch() } }
    }
}
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

(1) @ObservedObject로 뷰가 직접 생성 → 재평가마다 리셋, @State+@Observable로. (2) ForEach(0..<count)는 정적 범위라 개수 변화 시 크래시·미갱신, Identifiable ForEach로. (3) 상태가 vm과 @State에 이중 저장. (4) onAppear의 비구조화 Task는 취소 안 됨, .task로. (5) 마지막 셀 onAppear 페이징은 중복 호출 방지 없음.

받은 질문 공유