23.09.04 16:33 작성
·
525
·
수정됨
0
안녕하세요. 추가해주신 MVVM 강의 정말 잘 듣고 있어요. 그런데, 해당 디자인 패턴에서 Manager에 관련해 궁금한 점이 생겨 질문 글을 남깁니다.
매니저 클래스는 Model과 ViewModel 중 어디에 속하는 객체인가요? 아니면 앱 전체를 동작시키기 위한 로직의 한 부분으로만 바라봐야 하나요?
그저 누구든지 로직의 한 축을 이루도록 도와주는 객체라고 보는게 맞을까요? 뷰 모델도 (어느 정도) 로직을 담당하고, 매니저 클래스도 로직을 담당한다고 생각하니 경계가 모호하다는 생각을 들어 이렇게 질문을 남기게 되었습니다.
답변 1
1
2023. 09. 04. 16:46
안녕하세요 건우님!
네네 일반적으로 매니저 클래스는 Model과 ViewModel에 속하지 않는,
그 외 별개적으로 존재하는 로직의 한부분으로 보시는 것이 맞습니다.
네트워크 통신을 담당하기도 하고, 말씀하신대로 위치 정보에 관련된 로직만 담당하기도 하고,
또 때로는 (보통) 데이터 layer라고 많이들 표현하는데,
앱의 전체에서 쓰이는 데이터 배열같은 것을 총괄하는 로직이나..
예를 들어, 투두앱에서 데이터 베이스에 저장하고 꺼내쓰는(코어데이터) 로직을 관리하는..
보통 그런 매니저들이 있을 수 있습니다.
이런 로직들은 어떤 하나의 뷰에 속해 있다기 보다는
앱 전체를 아울러서 총괄하는 데 관련된 로직이기 때문에,
또 ViewModel과는 따로 분리시켜서 층(layer)을 만드는 것이 일반적이라고 보시면
될 것 같습니다.
그래서, 일반적으로 로직(logic)이라는 것도 다 ViewModel 에 내장시키는 것이 아니라
비즈니스 로직인지, 기타 다른.. (예를 들어 화면하고만 관련된) 로직인지 등으로
나눠서 구현한다고 보시면 될 것 같습니다.
결국 아키텍처라는 건,
유지 보수/ 관리를 편하게 하기 위해 최대한 층을 잘 나누어서 관리하는 다는 개념이라는 것만
잘 아시면 될 것 같아요!
감사합니다. :)
2023. 09. 04. 17:04
간단한 프로젝트에서는 파일 갯수가 많아져서 불편해 보이지만,
실무에서 수만줄의 코드가 있다면... 어떨까요?
아니, 수십만줄의 코드가 잘 분리되어 있다면.. 파일이 분리되어 있는 것에 따른
장점도 있겠죠...!
MVVM은.. 일반적으로 (1) 테스트가능한 코드가 작성가능하고 (2) 뷰와 로직이 분리되어 있기 때문에 뷰의 디자인이 완전히 바뀌어도 로직에 대한 유지보수가 편한점 등의 장점이 있습니다.. ^^
2023. 09. 04. 16:56
답변 정말 감사드립니다. 예전부터 정말 궁금했거든요.
또 하나 드는 의문점이 MVVM 디자인 패턴은 MVC 디자인 패턴과 비교해서 (하나의 계층이 더 생기므로) 파일의 개수가 많아진다는 (단)점이 눈에 보이는데, 그럼에도 불구하고 유지보수가 편리해진다는 이점이 더 커서 MVVM 패턴이 대중적인 패턴으로 채택된 건가요?