
...ViewModel.swift viewModel 에서는 input 과 output 을 작성합니다 input 에서는 User Action 등 입력 데이터를 output 에서는 처리한 Data 로 결과 데이터를 화면에 뿌려줍니다 init() 초기화 함수에서는 viewModel 에서 동작할 변수를 초기화하는 기능을 수행합니다 import Foundation import Combine final class FrameworkListViewModel { init(items: [AppleFramework], selectedItem: AppleFramework? = nil) { self.items = CurrentValueSubject(items) self.selectedItem = CurrentValueSubje..

왜 MVVM이 생겼나? 기존 MVC 패턴의 문제 View 와 View Controller 는 View 와 Controller 레이어로 나누어 설명하지만 실제로 구현 시, 거의 분리되지 않습니다 따라서, 위 그림과 같이 표현되는게 좀 더 현실모습을 잘 담고 있습니다 이러다 보니, View Controller 에 많은 로직들이 존재하게 됩니다 프레젠테이션 로직 비즈니스 로직 데이터 접근 로직 등등.. 결국에 Massive ViewController 라는 불명예 스러운 용어가 붙었습니다 위와 같은 이슈로 발생하는 문제 View Controller 가 너무 많은 책임을 지고 있음 모델(데이터)를 직접 접근하면서 수정하다보니, 버그에 취약하게 됨 유지보수가 어려움 (변경과 수정에 어려움이 많아짐) 기존 문제들의 ..