ViewModel과 Model 구분 (30강)
안녕하세요. 강의 정말 잘 듣고 있습니다!
30강에서 회원정보 class 를 SignUpViewModel로 만드셨는데
MVVM 아키텍처에서
ViewModel은 비즈니스 로직을 처리하는 부분이고
데이터를 다루는 class나 struct의 경우에는 Model 파트가 맡는다고 이해를 하고 있었습니다.
struct가 아닌 class의 경우에는 비즈니스 로직으로 봐야 하는건가요?
답변 2
0
안녕하세요 kut7728님
답변이 좀 늦어졌습니다. 죄송합니다. ㅜㅜ
죄송한데 제가 질문을 정확히 이해하지 못한거 같은데요
혹시 답변이 미비하다면 다시 질문 부탁드릴게요.
스위프트에서 커스텀 타입을 만드는 방법은 클래스, 스트럭트가 있습니다.
모델, 뷰모델 다 이걸 이용해서 만들고요.
말씀하신대로 비즈니스 로직을 담고 있는 뷰모델은 보통 클래스로 만들고요.
모델의 경우에는 스트럭트로 만드는 경우가 대부분입니다.
간혹 모델을 클래스로 만드는 특수한 경우가 있기도 합니다만 그렇게 흔하지는 않은거 같습니다.
새해 복 많이 받으세요!
0
안녕하세요, 인프런 AI 인턴입니다. kut7728님.
MVVM 패턴에서의 역할 구분은 다음과 같은 기준에 따라 이루어집니다.
MVVM 아키텍처에서의 역할:
- Model: 데이터 정의 및 데이터 조작 로직을 담고 있는 부분입니다. 주로 struct를 사용하며, 이러한 객체들은 앱의 데이터 상태를 표현합니다.
- ViewModel: 비즈니스 로직 및 상태 관리 역할을 합니다. 뷰의 데이터 바인딩을 도와주며, 뷰와 모델 사이의 중간 다리 역할을 합니다. 이곳에서는 class를 통해 상태의 변경을 감지하고, 이를 뷰로 반영합니다.
- View: 사용자 인터페이스(UI) 부분으로, 데이터를 표시하고 유저 인터랙션을 받아서 ViewModel에 전달합니다.
질문에 대한 답변:
- class vs struct: MVVM에서 class는 주로 ViewModel에서 사용되어 상태의 변화를 감지하고 이를 View와 연결합니다. 반면 struct는 Model에서 주로 사용되며, 불변성을 기본으로 하는 데이터 구조로 활용됩니다.
- 왜 class를 사용했을까?: ViewModel은 상태를 가진 객체로서 데이터 바인딩 및 관찰이 가능한 것이 중요합니다. class는 이러한 참조 타입으로, 상태의 변화를 감지하고 전달하는 데 유리합니다.
이에 대한 구체적인 사례로, 다음 유사 질문과 답변을 참고하실 수 있습니다:
“ToDo 앱 @Observable 기능(?) 질문입니다”
이 질문에서는 @Observable을 사용하여 모델 객체와 ViewModel의 역할 차이를 설명합니다. class와 struct를 어떤 상황에서 사용할지에 대한 이해를 높일 수 있습니다.“class와 struct”
이 게시물에서는 Swift의 class와 struct 사용을 살펴보고, typically 모델과 뷰모델에서 각각 사용되는 경우를 설명합니다.
이러한 답변들이 MVVM 패턴에서의 class와 struct 사용에 대한 명확한 이해에 도움 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
searchable이 화면 하단에 위치해요
0
60
2
warning 하나가 있는 것 같습니다. 해결방법좀 알려주세요
0
79
2
설계 관련하여 참고할 문서나 예제 공유가 가능할까요?
1
71
2
Thread number가 다 1로 나옵니다
1
69
2
'loadAllPosts' 를 매번 사용해야 하나요?
1
69
2
75강 실시간으로 팔로우수 안늘어나는 이유?
1
135
3
예전코드도 배워야 할까요?
1
137
1
ProfileView에서 toolbar이용시 문제점 발생, 로직이 이해가 되지 않습니다.
0
161
1
62강 Follow, Unfollow기능구현에서,,
0
107
2
애구마선생님, 다음 프로젝트 강의는 언제 올려주세요???
0
108
2
51강 10:22에서 이미지 여러장이 나오지 않아요;;
0
108
2
52강 post데이터가 불러와지지 않아요,,,
0
135
2
바인딩하는 이유
1
94
2
75강 까지 마무리후 소스 오류 사항 문의
0
109
1
SwiftUI main actor 관한 경고 계속 뜹니다.
1
245
2
45강의 에서 Kingfisher 사용후 발생하는 swift6 이슈
1
152
2
19강에서 Encoder()를 사용할 수 없습니다.
1
135
2
40. 강에서 정상작동 안합니다.
0
168
3
프로필 수정 후 변경된 내용을 피드에 바로 반영되도록 하고 싶습니다.
1
134
2
15강에서 발생한 문제에 대해서 질문이 있습니다!
1
301
3
13강 코드 작성 후 피드의 유저 데이터가 보이지 않는 문제
1
217
3
혹시 다음 강의 대략 언제쯤 완료되시는지 알 수 있을까요??
1
166
2
섹션7 뷰 리팩토링 질문있습니다.
0
106
2
firebase에서 데이터를 불러오는데 오류가 발생합니다.
1
296
2





