월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨아키텍처 패턴 with iOS - GUI Architecture Patterns(이론)
MVVM in iOS - 리액티브 프로그래밍, 자동바인딩과 수동바인딩에서 질문이있습니다
안녕하세요강사님WPF에서는 자동바인딩이 제공되기때문에 MVVM을 사용하는데있어서 이점이있다고 말씀을해주셨고 iOS에서는 자동바인딩을 시스템레벨에서 제공해주지않기때문에 그런점에서 iOS의 MVVM패턴은 등장배경에서의 이유로 쓰이고있는지 고민해봐야한다고 말씀을 해주셨는데 여기서 궁금한점이 combine의 published는 uikit에서도 사용이가능하고 이는 combine이라는 도구를 시스템레벨에서 제공해주기때문에 combine의 등장으로 자동바인딩이 iOS에서도 제공된다고 할수있는게 아닌가라는 생각이들었습니다결국 $를 통해 binding변수로 만들어주면 해당 published변수의 변화에따라 view가 업데이트되니까 이런점에서는 uikit도 시스템레벨에서 자동바인딩을 지원한다라고 말할수있는게아닌가라는 생각이들었습니다 혹시 이부분에대해서 강사님의 생각이 궁금합니다!
- 해결됨아키텍처 패턴 with iOS - GUI Architecture Patterns(이론)
MVC의 본질에 대한 질문
안녕하세요! MVC의 본질에 대한 강의를 듣다가 문득 궁금증이 생겨서 글을 남깁니다. 강의자님께서 유저의 멘탈모델과 컴퓨터 모델을 일치시키는 것이 MVC의 본질이라고 하셨습니다. 또한, 유저의 멘탈모델이라는 것이 사용자가 애플리케이션을 사용하면서 "내부적으로 이렇게 되있을 것이다." 라고 생각하는 것이라고 설명해주셨습니다. 첫 번째 궁금증은 유저의 멘탈모델과 컴퓨터 모델을 일치시킨다는 것은 곧 '유저가 애플리케이션의 인터페이스만 봐도 어떤 일이 발생할지, 어떻게 동작될지 대충 예상이 될 정도로 애플리케이션을 유저 친화적으로 만든다'라고 해석해도 될까요? 두 번째 궁금증은 만약, 위의 저의 해석이 맞다면, "프레젠테이션 계층과 유저의 멘탈모델, 즉 내부 구현 계층이 분리되면 유저 친화적인 애플리케이션을 개발할 수 있다."로 귀결될 수 있는데, 사실 프레젠테이션 계층과 모델 계층의 분리는 어디까지나 개발자를 위한 분리인 줄 알았는데, 사용자를 위한 분리였다는 의미로 해석되어 상당히 혼란스럽니다... 좋은 강의 제공해주셔서 감사합니다! 좋은 답변 기대할께요~
- 해결됨아키텍처 패턴 with iOS - GUI Architecture Patterns(이론)
MVVM 템플릿2 관련
강의를 여러번 다시 들으니 MVVM에 대해 조금 더 이해하게 된것 같습니다.다만 강의를 여러번 다시 들었는데도 응용하기가 조금 어려워서 질문드립니다.PostViewController와 PostViewModel 처럼 뷰컨트롤러나 하위뷰 들도 그저 내용만 표시하는것이라면 강의내용을 따라서 잘 응용하고있습니다.하지만 하위 뷰들에서 input과 output이 추가된다면 어떻게 응용해야할지 잘 모르겠습니다.예를 들어 예제의 PostTableViewCell 에서는 titleLabel과 detailsLabel 밖에 없지만 PostTableViewCell에 textFeild와 같은 input이 추가되고 셀에서 입력한것이 상위뷰인 PostViewController에 표시된다고 했을 때제가 생각했을 때는 PostTableViewCell에서 상위뷰로 데이터를 전달하려면 PostViewModel을 알아야할것 같은데 제가 생각하기엔 이렇게 하는 방법밖에 없는것 같은데final class PostsViewModel: ViewModelType { ... let postTableViewCellInput = PublishSubject<String>() ... } final class PostTableViewCell: UITableViewCell { ... @IBOutlet weak var textField: UITextField func bind(_ viewModel: PostsViewModel) { viewModel.postTableViewCellInput .bind(to: textField.rx.text) .disposed(by: disposeBag) } }이렇게 코드를 짜면 PostTableViewCell이 상위 뷰모델을 받고 PostsViewModel도 하위 뷰의 데이터를 직접 전달받기 때문에 올바른 방법이 아닌것 같아 PostItemViewModel에 Input Output을 받는것으로 수정해보려 했지만 PostItemViewModel의 Intput output을 어떻게 설정해야 PostViewModel에서 하위뷰에서 입력한 데이터를 상위뷰에서 사용할 수 있을지 감이 안잡혀서 질문드립니다
- 해결됨아키텍처 패턴 with iOS - GUI Architecture Patterns(이론)
강의자료같은게 따로 있나요 ??
ppt와 같은 파일 없는것 같아 질문드립니다.
- 해결됨아키텍처 패턴 with iOS - GUI Architecture Patterns(이론)
제가 이해한게 맞는지 궁금합니다.
솔직히,, MVC나 MVP나 MVVM이나 머가 그렇게 다른지 잘 이해가 안가긴합니다..모델과 뷰를 분리하고 이를 컨트롤하는 영역을 어떻게 처리하면 좋을까 하는데서 조금씩 차이가 있어서 구분하려는게 목적인 걸까요. 뷰모델이라 한다해도 처리해야할 복잡성이 올라가면 결국 복잡해지는 건 똑같아 보입니다.. 그럼에도 불구하고 UIKit을 사용할 때 NVVM을 쓸라고 하는건 테스트가 용이하다는 이유랑, 그냥 옵저버 패턴 쓰고 싶어서인 것 같습니다. Combine이 나온 것도 뭔가 너네가 옵저버 방식 좋아하는 것 같으니까 만들었어 같은 느낌인 것 같고,, SwiftUI를 공부하면서 보니까 자연스럽게 Combine 쓰게되고 쓰다보니 자연스레 아래처럼 구조가 분리되는 것 같은데 이게 NVVM이 맞는 걸까요?뷰(들어오는 데이터 대로 그려지는 뷰 구조체 모음)모델(타입 or 인터페이스 모음)로직(뷰의 로직 처리 함수모음)스토어(상태 데이터모음)
- 해결됨아키텍처 패턴 with iOS - GUI Architecture Patterns(이론)
질문 드려요!
안녕하세요 강의를 보다 헷갈리는 부분이 있어서 질문드립니다. 😅강의 중 Massive View Controller? 라는 챕터에서 강사님이 설명해주신 UIViewController의 책임을 제외한 네트워크통신 로직 또는 로컬데이터 저장하는 로직등에 관한 코드등을 임의로 Controller에 추가하면 비대해질 수 있다고 하셨는데 두 가지 예시는 데이터를 처리하는 로직이라고 생각이 듭니다. PDS의 사상으로 나누면 도메인으로 생각하는 것이 맞을까요?🤔 CocoaMVC에서 해당 로직 등에 관한 정확한 제시가 없는 부분이 개발환경에 따른 영향이 아닌 CocoaMVC아키텍처 패턴에서 문제로 봐야될까요? 🤔 CocoaMVC에서 해당 로직 등은 그럼 어디에 담당하는 것이 맞는지? 고민이 됩니다. 따라서 CocoaMVC에서 다른 아키텍처패턴등이 파생된 것이라고 볼 수 있을까요?
- 해결됨아키텍처 패턴 with iOS - GUI Architecture Patterns(이론)
질문 올립니다
안녕하세요 강사님 질문이 있어 문의 드립니다.데이터 바인딩 관련인데요. 데이터 바인딩이 모델을 view에 바인딩 함으로써, 모델이 변경될시 뷰에 업데이트 해주는 개념으로 알고 있는데 이게 맞을까요?강사님 사진에 바인딩 방향이 제가 알고 있던 데이터 바인딩 방향이 달라서 약간 혼돈이 오고 있는 상황입니다(반대로 되어야 되지 않나 생각하고 있습니다)아니면 데이터 바인딩 이라는게 방향과 상관없이 그냥 바인드 되어 있을시 한쪽이 변경되면 한쪽이 변화되는 개념을 말하는 걸까요?추가로) 아래 와같은 코드를 구성하고 있는데요 Rxcocoa를 이용하여 input을 받아 viewModel 스트림에 넣어주고viewModel 스트림에 변화가 생길시 view에서 output을 구독하게끔 바인드 처리 1번을 통해서 view가 변경되면 model(스트림)이 변경되고2번을 통해서 변경된 모델을 통한 view 갱신이 일어나고 있는데요.이럴경우 양방향 데이터 바인딩이라 하는게 맞는 건가요?감사합니다.