What I learned

[WIL] Mon Feb 27 : MVVM 패턴, @discardableResult, protocol ...

Gwer 2023. 2. 28. 10:16
반응형

MVVM 패턴

 

MVVM 패턴은 여러 디자인 패턴 중 하나입니다.

Model, ViewModel, View로 분리되어 있는 구조를 가지고 있고 비즈니스로직과 View사이에 ViewModel이 있어서 서로를 소통할 수 있게 만들어 줍니다.

그리고 실질적으로는 iOS에서 View의 영역에서 View뿐만 아니라 ViewController까지 View라고 취급하게 되는데, 이러한 ViewController와 ViewModel은 서로 바인딩되어 각자의 영역에서 데이터의 변화 혹은 이벤트가 발생하면 서로에게 영향을 주게됩니다.

 

@discardableResult

이 property wrapper는 해당 함수의 결과(리턴)이 실행 후 사용될 수도 있고 아닐 수도 있다는 역할을 부여합니다.

 

Protocol

protocol은 어떤 구조의 약속이라고 볼 수 있습니다.

어떠한 protocol을 정의하고 해당 protocol을 채용한다면, 정의되어 있던 내용(함수, 변수)를 이행해야합니다.

 

💭 느낀점 

지금까지 SwiftUI를 기준하여 MVVM패턴을 알았었는데, UIkit을 기준으로 하니 뭔가 구조가 달라보였다.

아직 UIkit에 완전히 익숙하진 않지만, Model이나 ViewModel의 개념과 역할은 동일해서 이해하기 좋았지만 Binding부분은 상당히 다르게 구현되는 것 같아 좀 더 면밀히 살펴봐야겠다.

@discardableResult라는 property wrapper도 스탠포드 강의 때 나왔었지만 그때는 잘 이해하지 못하고 넘어갔었는데 역시 다시보니 이해가 되기 시작했다. 실제로 내가 코드에서 구현하고 사용할 때까진 좀 더 시간이 걸릴 것 같지만 다른 코드에서 보게된다면 충분히 이해할 수 있다.

protocol은 배우면서 정말 고생했던 개념인데, 실제로 활용하는 것을 보니 좀더 이해가 되기 시작했다.

사실 SwiftUI에서는 가장 처음 프로젝트를 생성하면 볼 수 있는데, 내가 활용하기에는 참 쉽지않은 것 같다.

위의 내용들 뿐만아니라 지금까지 배워왔던 것들을 좀더 정리해보는 시간을 가지는 것도 좋을 것 같다.

반응형