얼마전 C#과 WPF 공부를 시작하여 막 기초를 뗀 학생입니다.
제가 이해한 기초라 함은 XAML이 어떻게 구성되는지, code behind가 뭔지, 이벤트는 어떻게 연결하는지 등과 기본적인 컨트롤을 가지고 놀아보는 정도의 정말로 피상적인 개념들을 공부한 상태입니다.
개발에 있어 가장 좋은 공부법은 막힐 때 마다 필요한 것을 공부하는 top-down 방식이라 생각하여 이제부턴 제가 목표로 했던 앱을 만들며 직접 부딪혀보려합니다.
다만, (반년정도 안에) 최종적으로 이를 상업적인 앱으로 내놓는 것이 목표인 상황입니다. 이런 경우 MVVM 디자인 패턴까지 익히고 개발에 들어가는 것이 좋을까요? 그냥 개인적인 토이 프로젝트 였다면 고민 없이 막 개발 해봤을텐데, 저 혼자하는 것이 아닌 다른 분들(개발자는 아닙니다)과 협업하여 장기 서비스를 목표로 구상한 것이라 나중에 유지보수까지 생각을 하니 고민이 됩니다.
조금 더 시간이 걸리더라도 MVVM을 기반으로 하는 것이 맞을까요?
현업자분들의 고견을 들려주신다면 감사하겠습니다.
반년이라는 다소 타이트한 기간이 주어졌다면, 빠르게 릴리즈를 해보고 반응을 보겠다인거 같아보입니다. 새로 지식을 습득해서 적용하기보단 알고 있는 지식을 최대한 활용해서 구현을 목표로 하고 앱에 대한 반응이 좋다면 그 때 유지보수를 위한 투자를 하는게 맞다는 개인적인 생각입니다. (하지만 본인이 얼마나 하느냐에 따라 다르겠죠)
유지보수의 용이성을 가져간다는 것은 그만큼 설계에 공을 들인다는 것이고 그에 따라 학습과 패턴을 준수하기 위한 노력을 하기 때문에 개발 속도도 늦춰질 수밖에 없을거라 생각됩니다.
MVVM이 상당한 러닝 커브가 따르기 때문에 어려운 점이 있긴 하지만, CommunityToolkit 등을 이용해서 사용법을 익히고 난 후에는 확실한 장점이 생깁니다. 다만 충분히 집중해서 살펴보고 연구할 만한 여유가 있어야 추천을 드립니다.
그렇지 않고 다른 분들과 함께 MVVM을 사용할 수 있는 분위기 조성이 어려울 경우 코드 비하인드 방식으로 목적지에 빠르게 도착하는데 일단은 집중하시되, MVVM 기반의 아키텍처에 대한 내용을 팀 내에 전파할 수 있는 방법에 대해서 따로 분리해서 다룰 필요가 있지 않나 생각합니다.
참고로 Windows Forms (.NET 8.0 이상) 역시 최근에는 ICommand 같은 인터페이스를 직접 바인딩하는 기능이 추가되어, WPF 수준은 아니지만 Windows Forms와 WPF가 뷰 모델을 공유하는 시나리오도 가능해졌습니다.