Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩
SwiftUI/SwiftUI(examples)

모델? 뷰모델?

by Toughie 2023. 5. 13.

프로젝트를 진행하다가 모델과 뷰모델에 대한 경계가 애매한 느낌이 들어서
모델과 뷰모델에 대해 매우 간단하게 요약해보는 시간.

struct Singer {
	var bestSongName: String
	var memberCounts: Int
}


class SingerStore: ObservableObejct {
	@Published var singerList: [Singer] = []
}


SwiftUI에서 모델(Model)은 애플리케이션에서 사용되는 데이터와 해당 데이터를 처리하는 논리를 캡슐화하는 객체.
모델은 일반적으로 데이터를 유지 관리하고, 데이터를 검색하고, 수정하고, 삭제하는 작업을 처리한다.
모델은 앱의 다른 부분과 독립적으로 작동하며, 뷰나 컨트롤러에 대한 정보를 가지고 있지 않는다.


예시에서, struct Singer는 모델. 이 구조체는 노래 제목과 멤버 수를 나타내는 데이터를 캡슐화함.

반면에 class SingerStore는 뷰 모델(ViewModel)이다.
뷰 모델은 애플리케이션의 특정 뷰에 대한 데이터 처리 로직을 담당.
뷰 모델은 일반적으로 뷰에서 표시할 데이터를 유지 관리하고, 데이터를 가공하거나 필터링하거나 정렬하는 작업을 처리한다.
뷰 모델은 뷰의 특정 부분과 관련된 정보를 가지고 있으며, 뷰와 모델 사이의 중개자 역할을 수행.


class SingerStore은
가수 목록을 나타내는 데이터를 캡슐화하고,
이 데이터를 수정하고 삭제하는 논리 등을 처리할 수 있다.
이 클래스는 뷰에서 사용되며, 뷰에 대한 정보를 가지고 있음.