앱을 만들때는 Model 즉, 우리가 사용할 데이터가 무엇인지 먼저 파악하고 그 다음에 UI를 구성하는 것이 일을 효율적으로 할 수 있게한다.
보통 혼자 앱을 만들면 머리로만 기획을 한다. 하지만 회사에서 프론트엔드 개발자는 정해진 룰(어떤 데이터, 어떤 디자인으로 만들어라)에 의해서 앱을 만들기를 시작할 것이다.
이때 데이터의 원천은 Server에서 날라오는데 이 데이터 를 올바르게 받기 위해서는 이 데이터의 Type에 맞게 Model을 만들 수 밖에 없다. 그래야 해당 Type으로 가공을 할 수 있기 때문이다.
공장에 비유하자면 공장(서버)에서 똑같은 물건(데이터)만 찍어낼 수 있는 상태이다. 따라서 소비자(클라이언트)는 정해진 물건(데이터)의 형태로만 물건을 받을 수 있다.
이렇게 되면 좋은점을 물건(데이터) 내부에 무엇이 있는지 알 수 있다. 이렇게 되면 소비자(클라이언트)는 그 물건(데이터)에 무엇이 있는지 알게 되어 마음대로 가공을 할 수 있게된다.
Swift로 예를 들면 해당 데이터를 UILabel에 어떻게 보여줄지, 사용자가 Text를 클릭할 때 Text를 변경해서 서버가 준 pakage에 다시 전달하는 형식으로 가공을 할 수 있다.
코드로의 예시
class ViewController: UIViewController {
var data = [1, 2, 3]
//현재 이 코드는 Int라는 Data를 만들고 Int Array라는 Data 관리개체를 만든 것이다.
}
//메모를 예로들면
struct Memo { //Memo라는 타입을 만든 것
var title: String
var content: String
//Memo라는 주제로 묶인 데이터를 여러개를 관리할 수 있다.
}
다시 말하면 한 주제로 묶인 여러 데이터를 모두 관리하기 위해서 Model을 생성
Data manager라고 부르는 게 좋지만 ViewModel, Service라고 부른는게 좋다. ViewModel이라고해서 MVVM을 사용해야한는 것이 아니라 ViewModel은 보여주기위한 View의 Model일 뿐이다.