분리를 결심한 계기 현재 프로젝트에서 ViewModel은 Container View(페이지 단위)와 1:1로 사용하고 있었습니다. 그런데 한 컨테이너뷰에 기능이 많아질 때, 뷰는 컴포넌트를 분리해가며 크기를 유지시킬 수 있었는데, 뷰모델은 계속해서 커지는 문제가 발생했습니다. 현재 Combine을 이용해서 작업하고 있는데 뷰모델이 관리하는 상태가 너무 많아져 어떤 변수가 어디에 쓰이는지 구분하기가 헷갈려졌고, 바인드 코드 또한 관리하기가 어려워졌습니다. 이에 여러 방법을 생각해보다 뷰모델을 분리하기로 결심했습니다. 문제의 뷰모델 import Foundation import Combine class SignupViewModel: ObservableObject { // MARK: - Dependency le..
시작하기에 앞서 제가 MVC, MVP, MVVM... 등등 어플리케이션 구조화를 위한 여러 디자인 패턴들을 학습하면서 나름대로 정리한 부분을 공유해보고자 합니다. 따라서 이 글에서 말하는 내용들이 정확한 사실이라기보단 제 나름대로 이해해보려 했던 노력으로 봐주시면 감사하겠습니다. 본 포스팅은 iOS를 기준으로 작성하였고 React를 조금 곁들였습니다. 하지만 그 외 플랫폼, 도메인에서도 어느정도는 이해하실 수 있을 내용입니다! 또한 앱, 웹 프론트 등을 합쳐 클라이언트라고 지칭하겠습니다. 1. MVC의 정의와 역사 MVC 등장 배경 MVC는 아주 오래된 패턴입니다. 1970년에 만들어져, 1980년대 쯤 보편화되었다고 하네요. 이때, 이 구조를 고안하게된 이유는 Small Talk으로 데스크탑앱을 만들기..
- Total
- Today
- Yesterday
- 노션
- 비동기/동기
- healthkit
- TestCode
- programmers
- MVVM
- 소프트웨어마에스트로
- SwiftUI
- combine
- Architecture Pattern
- SWM
- DocC
- Flux
- reactive programming
- Swift Concurrency
- 프로그래머스
- coordinator pattern
- Flutter
- 아키텍쳐 패턴
- RX
- Bloking/Non-bloking
- notion
- MVC
- design pattern
- GetX
- 리액티브 프로그래밍
- swift
- MVI
- 코디네이터 패턴
- ios
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |