WPF, 너무 잘하려 하지 않아도 돼요

안녕하세요 :slight_smile:

WPF를 좋아하고, 또 언젠가 잘해보고 싶은 한 사람입니다.

요즘 포럼에 WPF 글이 많이 올라오는 걸 보며

혼자 괜히 반갑고, 또 설레기도 했어요.

하지만 한편으론,

“나도 해보고 싶은데…”

라는 마음이

“근데 이거 너무 어려워 보이는데…”

로 바뀌는 순간도 있을 것 같아

조금은 가볍게 시작할 수 있는 글을 남겨보려 합니다.

WPF, 꼭 그렇게 시작해야 할까?

WPF를 하려면

XAML을 해야 하고,

MVVM을 해야 하고,

ViewModel엔 비즈니스 로직이 있으면 안 되고,

Code-behind는 절대 안 되고,

…그래야 ‘제대로 하는 거’라고들 하죠.

물론 다 좋은 권장이에요.

그런데 이게 ‘소리 없는 압박’처럼 느껴질 때도 있습니다.

사실 처음부터 다 지킬 필요는 없다고 생각해요.

Code-behind 좀 써도 되고, ViewModel이 뭐 하는지 몰라도 괜찮고,

Binding이 안 돼서 헤매는 것도 다 WPF 입문자의 통과의례 같더라고요.

그래도 하나씩 알아가면서,

아 “MVVM이 이래서 좋구나”,

“XAML도 나름 재밌네”

하는 순간이 오면,

그땐 진짜 내가 만든 UI가 살아 있는 느낌이 나기 시작하거든요.

이 글은 그냥,

WPF 시작하려는 누군가에게

“너무 잘하려 하지 않아도 돼요”

라는 말을 해주고 싶어서 썼습니다.

처음은 가볍게,

하지만 오래 갈 수 있게.

같이 해요, WPF.

20개의 좋아요

고민 되면 바로 시작!!
해보면 압니다.

2개의 좋아요

공감합니다.

3년 정도 시간 들여서 WPF 익숙해진다고 하면,
즐거운 마음으로 접근하실 수 있습니다.

4개의 좋아요

저도 소규모 앱까지 MVVM으로 만드는건 굳이? 라고 생각 합니다.
MVVM이 유지보수 편하자고 하는건데. 소규모앱일 경우 그냥 만들고 그때 그때 필요한거 수정하는것이 더 빠르고 직관적이거든요.

물론 여유가 넘친다면 공부삼아서 또는 나중에 확장될 것을 대비해서 MVVM으로 만들수도 있지만… 그게 아니라면 굳이?

4개의 좋아요

맞습니다.

전 오히려
위에 언급 된 MVVM에 대한 걱정을 하기보단,

  • 어떻게 하면 이용자들, 사용자들한테 더 직관적으로 해석시켜줄수있을까? (사내 디자이너가 없을 경우)
  • 어떻게 하면 디자이너한테 칭찬받는 결과물을 내놓을 수 있을까? (사내 디자이너가 있을 경우)
  • 어떻게 하면 버그안나는 UI를 만들어낼까?

이 3개를 먼저 신경을 쓰고, 그 이후 서비스 데이터를 어떻게 가져올까?

그 이후 여유가 되니 MVVM이란 것을 도입해볼까?
생각을 했으면 합니다.

사용자 입장에서의 완료는 MVVM이 아니라 UI잖아요:slight_smile:

6개의 좋아요

최근 WPF 프로그램을 갑자기 만드는 일이 있었는데요.

처음에는 창 하나였다가 필요에 따라 만들다 보니 3개까지 늘었습니다.

근데 갑자기 1번 창에 노출되는 텍스트를 3번 창에서 사용해야 하는 순간이 생기더군요.

근데 습관처럼 MVVM으로 구성을 해두었고 VM은 DI로 주입하는 상황이라 아주 쉽게 해결됐습니다.

마술같은 순간이었죠 :rofl:

5개의 좋아요

앞으로 N개의 화면이 추가가 될거야

리드개발자도
연구소장도
대표도
심지어 의뢰한 클라이언트 조차도
예측 할 수 없는 범위의 문구…

5개의 좋아요

오 저군요 mvvm 공포증이 있습니다 ㅋㅋㅋㅋ

2개의 좋아요

화이팅…!

1개의 좋아요

예전부터 태그 같은 언어는 진짜 적응이 안되어 거들떠도 안봤는데 윈폼으로 개발할때 눈으로 보여주는 UI가 중요하다는걸 깨닫고 wpf를 사부작사부작 만지다 보니 mvvm을 알게되었고 바인딩을 알게되고 의존성을 알게되면서 현재 UI만 3번 갈아엎었는데 너무 편하게 작업하고 있습니다. 괜히 패턴패턴 하는게 아니더군요ㅎㅎ

3개의 좋아요

@Tokhi 님이 남기신 글 보니까
저도 처음 WPF 접했을 때가 떠올라서 살짝 적어봅니다.


저도 WinForms만 하다가 이직한 회사에서 처음으로 WPF를 접했는데,

“우리 회사는 WinForms 안 쓰고 WPF만 써요. 기존 프로젝트 하나 가져다가 필요한 부분만 수정해서 배포하면 됩니다”

이렇게 업무 지시를 받았던 기억이 나요.

그 회사에 남아 있던 코드들은 대부분 XAML로 화면을 구성하고,
비즈니스 로직은 뷰 비하인드에 몰아 넣은 방식이었어요.
서비스 클래스나 DB 접근은 나름 나뉘어 있었지만,
실제로는 버튼 이벤트 안에 조건문, 상태값 조작, 컨트롤 직접 접근 같은
WinForms 스타일의 코드가 자연스럽게 섞여 있었죠.

사실 이때 XAML 이 어려워 였지 WPF가 어렵다는 건 아니였던 거같아요.

그러다 옆자리 동료가 MVVM 이야기를 꺼냈고,
그걸 계기로 처음으로 구조적인 개발 방식에 대해 관심을 가지게 됐어요.
그리고 퇴사 직전에 회사 구석에 숨겨져 있던
유일한 MVVM 기반 프로젝트를 우연히 발견했죠.
그제서야 뭔가 제대로 된 걸 뒤늦게 마주한 느낌이었어요.

:thought_balloon: 지금 생각해보면

그때는 UI 커스터마이징이 어렵다고만 느꼈는데
사실 비즈니스 로직 자체는 복잡하지 않았어요.
단지 구조를 모르고 있었던 거고,
WPF를 WPF답게 쓰는 방법을 몰랐던 거였죠.

지금 돌아보면
그때 짰던 코드들을 보며 ‘왜 이렇게 했지?’ 싶은 것도 있지만,
당시에는 그게 최선이었다고 생각해요.
그래서 부끄럽기보단,
그 시절을 거쳐서 지금에 도달했다는 게 오히려 의미 있게 느껴져요.


이제는 잘 짠 코드보다
‘왜 그렇게 짤 수밖에 없었는가’를 이해하는 게 더 중요하다고 생각해요.

5개의 좋아요