c#,WPF를 공부하려고 하는데 공부 방법을 모르겠습니다 ㅠ

비전공자에 개발직군은 아닙니다.
독학으로 현재 javascript, 리액트를 초급수준으로 할 줄 압니다.
그런데 C#을 하려고 하는 이유는 C#으로 많은게 가능하다고 들어서에요.

일단 개인적으로 unity로 게임개발도 하고 앱개발도 하고 싶습니다.
그리고 현재 회사가 C# 머신비전 프로그램을 메인으로 개발하고 있어 회사에도 도움이 될 것 같습니다.
미적감각이 다른분들보다는 나아서 WPF 프론트엔드쪽을 돕고있는데 아무래도 지식이 없다보니… 구글링으로 복붙수준이네요.
WPF자체로는 적당히 검색해가면서 할 수 있지만 MVVM모델을 적용해보려고 하니 전혀 모르겠더라구요.
그래서 강의를 찾아보니 WPF, MVVM패턴 등에 대한 국내 강의자료는 전무하네요…
어떻게 시작을 해야할지 모르겠습니다 ㅠ

MSDN이나 영문자료를 듣는 방법뿐일까요?
(MSDN 보면 개념적으로 이해가 전혀 되지 않습니다 ㅠ)

1개의 좋아요

카테고리 변경해 드렸습니다.

예전에 비슷한 댓글을 쓴 적이 있어서 공유합니다.

MVVM의 개념에 대한 설명이나 설계 지향점 같은 것은 사실 영문까지 갈 것도 없이 한글로 된 게시물도 상당히 많습니다. 데이터 바인딩이나 커맨드 등 WPF에서 MVVM 패턴에 자주 사용되는 기능 역시 마찬가지입니다. 혹시 찾기 어려우시다면 링크에 나와있는 게시물을 순서대로 읽어보시는 것도 괜찮을 것 같네요.

게시물로 기초적인 지식을 쌓았다면 그 다음에는 우선 간단한 토이 프로젝트를 해보는 것은 어떨까요? 직접 만들다 보면 생각지도 못한 부분에서 막히는 부분이 튀어나오기도 하고, 그걸 해결하면서 경험이 쌓이기도 합니다. 한 번쯤 생각해 봤던 프로젝트가 있다면 그것을 MVVM 패턴을 이용해 구현해 보면 도움이 될 듯합니다.

WPF에서는 MVVM 패턴 뿐만 아니라 WPF라는 프레임워크에 대한 이해도 있어야 합니다. 글을 읽어 보니 아마 XAML 디자인도 업무 분야에 포함되는 것 같은데 이쪽은 사실 MVVM 패턴과는 관련이 적고 WPF와 XAML에 대한 공부를 하셔야 합니다.

그리고 하나 염두에 두셔야 하는 부분은 게임 개발이나 앱, 머신비전 등 다양한 도메인에 C#을 활용하려고 하시는 것 같은데, 언어가 같더라도 도메인마다 요구되는 부분은 판이하게 다를 수 있다는 점입니다.

가령 MVVM 패턴을 공부하려고 하시지만 게임 분야에서는 클라이언트 개발팀 등 데스크탑 앱을 개발할 만한 분야에서도 MVVM 패턴은 잘 활용하지 않는 것으로 알고 있습니다. 또한 c#을 이용한 앱 개발은 자마린이나 마우이, 우노 같은 크로스 플랫폼 쪽으로 가야 할 텐데 여기서는 C# 언어의 숙련도도 중요하지만 모바일 애플리케이션의 환경이나 생태계에 대한 이해나 UX 같은 부분도 중요한 고려사항이 되지 않을까 생각합니다.

5개의 좋아요

Microsoft Learn이 아주 잘 되어 있습니다.

C# 학습에 대한 코스는

WPF는

MVVM(Xamarin.Forms 코스이지만 이것을 참고할 수 있습니다)은

학습이 가능합니다.

4개의 좋아요

정성스러운 답변 너무 감사드립니다
써주신 글 참조하여 열심히 공부해보겠습니다

1개의 좋아요

마소 MSDN을 보다보니 설명이 짧아 이해가 되지 않았는데 좀더 진득히 해보겠습니다

1개의 좋아요

WPF에서 MVVM은 필수가 아니며 어떤 경우에는 MVVM을 사용시 오히려 기능 작동에 불필요한 코드만 늘어나서 MVVM을 사용하나 안하나 차이가 없거나 오히려 손해인 경우도 있습니다. 그러니 시중의 WPF 책 입문서 하나 구입하셔서 쭉 따라해보시는 것 만으로도 WPF 초기 학습은 충분합니다.

각종 패턴은 그 패턴이 왜 만들어졌는지를 이해하고 적재적소에 사용해야 의미가 있지, 그렇지 않은 경우에는 불필요한 장신구가 될 가능성이 있습니다. 예를 들면, 1인 개발자에 구현체가 딱 1개라서 인터페이스를 사용할 필요가 없는데 인터넷 포스팅 보고 각종 패턴 등을 적용하기 위해 인터페이스 남발해서 개발한다던지, 코드와 UI와의 결합성이 매우 높은 프로그램을 만드는데 MVVM Only로 개발한다던지 하는 것들은 오히려 시간낭비가 될 수 있습니다. 오히려, 클린 아키텍쳐에 쏟을 노력을 해당 도메인에 대한 공부에 투자하는 것이 더 나은 결과를 만들어낼 수도 있지요.

분야가 머신비전쪽이시라면 MVVM이 그다지 적합하지 않을 가능성도 좀 있어보입니다. UI와 결합도가 높거나 미디어를 제어하는 쪽은 풀 MVVM 보다는 적절한 데이터 바인딩과 커맨드 기능만 사용하는 것이 보다 구현하기 쉽고 유지보수에도 좋을 수 있습니다.

농담삼아 링크 하나 남겨봅니다.
코딩 초보 vs 고수.jpg

4개의 좋아요

kaki104 님의 Microsoft.Toolkit.Mvvm을 이용한 간단한 프레임워크 도 참고하시면 좋습니다. 최근 Prism Library 강좌도 게재되어 있습니다.

위 링크에도 WPF에 대한 기본개념이 잘 설명되어 있습니다.

2개의 좋아요

무조건 MVVM이 좋은것만은 아닌것 같군요…!! 감사합니다

MVVM에 관한 실전 예제는 아래 소스 참고 하시면 됩니다.

MahApps.Metro/src/MahApps.Metro.Samples at develop · MahApps/MahApps.Metro (github.com)