[iOS/꾸준 회고] UseCase 배워두길 잘했다
·
iOS/개념 & 개발
서론제 프로젝트에서는 대부분의 UseCase가 Repository와 ViewModel을 단순히 연결해 주는 역할만 하고 있었습니다. 예를 들면 다음과 같은 코드였죠.struct FetchBooksUseCase { func execute() async -> Something { await repository.fetchBooks() }}이런 구조 때문에 저는 종종 "과연 이 상황에 UseCase가 정말 필요할까?" 하는 의문을 가졌습니다. 하지만 최근 UseCase를 정의한 것이 매우 적절했다고 느낀 경험이 있었습니다.물론 이것이 엄청난 발견이나 깨달음은 아니었습니다. 다만, 인터넷에서 자주 언급되는 "UseCase를 사용해야 하는 이유"를 직접 체감하고 경험했다는 점에서 작은 감동을..
[Swift] Enum을 이용한 ViewModel Action 정의
·
Swift/개념 & 응용
ViewModelAction의 필요성 MVVM 패턴에서 ViewModel은 비즈니스 로직을 정의합니다. ViewController에서는 ViewModel 객체를 통해 비즈니스 로직을 수행하는 메서드를 호출하죠. 이때, ViewModel에서 수행하는 액션들을 Enum으로 묶으면, ViewController가 ViewModel의 개별적인 메서드들을 직접 호출하는 것보다 명확하고 안전하게 메서드를 호출할 수 있습니다. 또한 개별 메서드를 private 접근제어자로 설정이 가능하여 캡슐화도 엄격해집니다. 그럼 이제 방법을 알아보도록 합시다. Enum ViewModelActions 정의 ViewModel의 Action들을 묶은 Enum을 정의합시다. enum ViewModelActions { case save(I..
[디자인패턴] MVVM with iOS
·
CS/디자인패턴
MVVM 패턴은 MVC와 마찬가지로 자주 사용되는 디자인 패턴입니다. (MVC 포스팅은 여기에서 볼 수 있습니다.) UIViewController의 View와 Controller가 분리되기 어렵다는 단점을 극복하기 위해 사용되는 디자인 패턴이기도 합니다. 또한, SwiftUI에서는 MVVM을 기반으로 동작합니다. 이렇듯 MVVM은 iOS 개발에서 자주 사용되는 디자인 패턴입니다. 오늘은 MVVM 패턴에 대해 알아보고 RxSwift, Combine을 사용하지 않는 간단한 MVVM 구현을 해보도록 하겠습니다. MVVM MVVM 패턴은 마이크로소프트 개발자에 의해 발명되었고 2005년에 발표되었다고 하네요. 최근에 나왔다고 생각했는데 저는 이걸 17년이나 지나서 공부하고 있습니다... ㅎ; 아무튼, MVVM은..
유정주
'MVVM' 태그의 글 목록