.NET L!VE 2023 Spring 후기

안녕하세요.

이번 .NET L!VE 2023 Spring에서 두 번째 세션인 CommunityToolkit.Mvvm 살펴보기 발표를 진행한 신동훈입니다.

저에게는 이번 .NET L!VE가 첫 컨퍼런스 참여였는데요. 이재웅 님께서 진행하시는 WPF 스터디 외에 개발자분들과의 교류 경험이 없었던 터라 긴장 반 설렘 반으로 참여했는데 제 나름대로는 좋은 경험도 얻고 굉장히 뜻깊은 시간이 되었습니다. (같은 .NET 개발자분들이어서 더 좋았던 것 같아요:blush:)

세션 발표자로서는 부족한 점이 많았던 것 같아서 많이 부끄럽기도 하고 아쉽기도 합니다. 제가 준비를 좀 더 잘 해왔다면 조금이라도 더 매끄럽게 진행할 수 있었을 것 같은데 송구스러울 뿐입니다.


발표 때 횡설수설하느라 CommunityToolkit.Mvvm 패키지의 매력을 오롯이 전하지는 못한 것 같습니다.

CommunityToolkit.Mvvm은 잘 구조화된 프레임워크를 제공하거나 UI 프레임워크(WPF, WinUI 3, MAUI 등)와 상호작용하는 매력적인 기능을 제공하지는 않습니다. 가령 흔히 DialogService로 명명되는 모달 표시 기능이라든지, Navigation 같은 기능은 포함되어 있지 않습니다.

그러나 MVVM 패턴을 적용한다면 반드시 구현이 필요한 필수 구성 요소를 간편하게 제공하며, 다양한 시나리오에서 부담없이 채택할 만한 MVVM 라이브러리입니다. 특정한 UI 프레임워크에 종속되지 않기 때문에 오히려 어느 UI 프레임워크에서든 동일하게 사용할 수 있으며, 다른 프레임워크 라이브러리를 사용하거나 반복 코드를 줄이기 위한 목적으로 일부에만 CommunityToolkit.Mvvm을 사용해도 될 만큼 유연합니다. 특성을 이용한 코드 생성 등 마이그레이션을 염두에 둔 부분도 있어서 CommunityToolkit.Mvvm 패키지를 사용하지 않고 개발된 기존 프로젝트에서 마이그레이션 하는 것도 부담이 덜합니다.

소스 생성기는 MVVM 패턴을 적용하기 위해 필요한 값 변경 알림이나 커맨드를 작성하는데 필요한 추가 코드의 작성을 줄이고 가독성과 유지보수성을 향상시키는데 도움이 될 수 있습니다. 많게는 10개에 달하는 특성이 덕지덕지 붙은 필드에 대한 거부감이 없다면요!

CommunityToolkit.Mvvm 패키지는 MVVM 패턴을 모르는 상황에서 최선의 결과물을 만들어 주지는 않지만, 이미 일정 수준 이상의 MVVM 패턴 이해도가 뒷받침된다면 극한의 편리함과 유연성을 얻을 수 있는 라이브러리라고 생각합니다.

CommunityToolkit.Mvvm 패키지의 기능에 대한 자세한 설명은 MSDN이나 제가 예전에 작성한 Slog를 참고해 주세요.


발표 때 이용하려다 시간 관계상 일부만 짚고 넘어간 샘플 프로젝트의 소스 코드는 위 레포지토리에서 확인하실 수 있습니다. 패키지에 포함된 기능의 이해를 돕기 위해 폼만 대충 구현되어 있는 게 많기 때문에 프로젝트의 전체적인 완성도 보다는 각각의 객체에서 CommunityToolkit.Mvvm의 기능이 어떤 식으로 활용되고 있는지를 위주로 봐주시면 좋을 것 같아요.


행사 준비해 주신 호스트 분들을 비롯한 닷넷데브 운영진 분들과, 좋은 내용을 전해 주신 발표자 분들께 감사드립니다. 제 부족한 발표를 들어 주신 참여자 분들께도 감사하다는 말씀 꼭 드리고 싶습니다.

앞으로도 .NET 개발자 간 교류의 장이 더욱 활성화되면 좋겠네요:blush:

8개의 좋아요

발표 잘 봤습니다!! :slight_smile:

다음에 또 뵈어요!

5개의 좋아요

발표 잘 봤습니다!
기존에 그냥 쓰던것만 써야지 하던 제 모습을 다시 한번 되돌아본 계기가 되었습니다.
감사합니다!

3개의 좋아요

초집중해서 들었어요!!
Slog에도 자세하게 포스팅 되어 있습니다.

3개의 좋아요