C# , xaml 개발을 주로 했는데 고민이 많습니다

XAML을 다루다보니 WPF과 C#을 사용한 어플리케이션 계열의 개발을 주로 한 9년? 10년차 개발자입니다.

XAML이다보니 업무 특성상 Xamarin도 좀 배우고 백엔드도 다루고 있는데 슬슬 채용 사이트를 보면 이대로 개발을 하기엔 조금 무리가 있지 않을까 생각이 들어 테크트리에 대한 고민이 많습니다.

이미 사장 된 SL, UWP, WP 등은 레퍼런스는 고사하고 책도 제대로 나오지 않아서 XAML을 이대로 끌고 가는 것은 아닌거 같고 그나마 있는 Xamarin이나 Blazor도 크게 다르진 않을거라 생각합니다.

그래도 자신 있는 WPF 역시 병원, 의료기기, MES나 제조, 키오스크 쪽으로는 수요가 있지만 오히려 연계 되는 OpenCV나 해당 산업에 맞는 이해도를 더 요하는 것 같아서 이직이 힘들거나 경력 인정에 어려움이 있는 것도 사실이구요 (물론 그 분야에서 한 7년 있었는데 그래서 그런지 사람 뽑기 힘든지라 연봉은 많이 줬습니다)

개인적으로 WPF에 대해선 주제 넘지만 충분히 알고 있다고 생각을 하고 있어서 .Net core는 가져가되 여기서 백엔드에 포커스를 더 두고 갈 것인지 아니면 XAML에 익숙해져버려서 배우지 않았던 웹 기술을 배울지 입니다.

사실 마음으로는 백엔드로 가는게 경력 연계가 있어 이직 할 때 오히려 도움이 되고 경력 대비 맡을 포지션이 이 쪽이라는 생각이 많이 듭니다.

그러나 아직 해보지 않아 배우고 싶은건 웹입니다. ASP.NET을 차라리 조금이라도 했었으면 이런 고민이 없었을텐데 주변 웹개발자들 얘길 들어보면 “굳이 왜 어려운 길을 가느냐” 라는 얘길 많이 들었습니다.
(하지만 Xamarin , Silverlight, WCF, UWP, WP7도 쉬운길은 아닌데 말이죠…)

백엔드가 아니라 웹을 선택한다면…ASP.NET이나 Blazor가 아닌 Javascript+TypeScript 후에 Grid, Css, Scss, Vue.js 를 배우고 .Net core 기반에서 개발해보는걸 생각 중인데 시간을 버리는 일일까요?

이제 XAML을 내려놓고 백엔드던… 프론트던 가고 싶습니다…

백이나 프론트 중에 어디가 현실적일까요. 사실 답은 없는거겠지만…

왠지 같은 고민을 겪어 보신 분이 계실지 몰라 여쭤봅니다.

//추가로… 혹시 웹 테크를 이렇게 탄다면 저렇게 타도 되나요? 아니면 까불지 말고 데브렉에서 ASP.NET, Blazor를 배우는게 맞을까요

5개의 좋아요

덧붙여서 글을 적자면 여태까지 협업툴 개발, PDF EPUB 문서변환 및 생성 이런 걸 했는데 마이너 하다보니 이직 할때 유사 업계나 R&D 성격의 회사에서 좋아는 해주시는데 사실 자리가 많지 않긴 하더라구요. 그래서 고민이 많은 것도 사실입니다. 문은 좁고 보상은 많지만 언제까지 할 지는 모르는

1개의 좋아요

경험이 많으신 업계 선배님이시라 후배 입장에서 할 수 있는 말이 없네요…

역시 .Net은 애증의 물건

2개의 좋아요

저도 비슷한 고민으로 2019년쯤에 이것저것 공부하긴 했었죠.
ASP.NET CORE, XAMARIN, BLAZOR, VUE.JS…
하지만, 안타깝게도 기업에서 원하는건 윈폼, WPF, ASP.NET Webform/MVC5정도입니다.
웹은 자바+스프링이 기본이고, 인력 수급도 쉬워서 asp.net이 끼어들기 힘들고,
데스크탑앱은 윈폼과 wpf로도 충분한데 파이는 지속적으로 작아지고 있고,
안드로이드는 Xamarin이 좋긴한데 C# 개발자가 없다보니 시장에서 기피하는 기술이고,
blazor도 혁신적이긴하나 C#이 발목는 잡고있는 형국이고…

취미가 아닌 취업을 목적으로하면 자바+스프링, react, vue.js, 안드로이드(코틀린), 스위프트가
대세라 생각하고 이 중에 하나를 선택하는게 좋지 않을까 싶네요.

2개의 좋아요

저의 개인적인 의견으로는,

  1. MS가 존속하는 한, Windows가 존재하는 한 희소성에 의한 구직 및 대가 관련해서 은퇴하실 때까지 문제는 없을 것이라고 생각합니다. (안정성을 고려하여 하셨던 것에서 다른 방향인 프론트앤드(Vue등) 쪽에 집중하게 된다면 경력 관리 측면에서 이것도 저것도 아닌 상태가 될 가능성이 큽니다.)

  2. 이와 별개로 앞으로 발전하는 기술을 습득하고자 하는 욕구라고 한다면, Windows App SDK 기반의 WinUI3(win32)를 추천합니다.
    저는 산업현장에서 UWP를 적용하기 힘들어 UWP에 거의 시간을 쏟지 못했습니다. 간단한 것은 Windows Forms로 개발했고 좀 더 디자인 적 요소가 필요한 경우는 WPF로 개발했는데요,
    WinUI3(win32)를 최근 접한 바로는 WinRT를 win32 어플리케이션으로 개발할 수 있고 WPF에 이미 경험이 있으시다면 XAML 코드 전개하는게 거의 같아서 컨트롤만 숙지하시면 바로 어플리케이션 개발하실 수 있습니다.

만약에 프론트앤드에 TypeScript나 Vue등의 프레임워크를 사용하고자 하는 욕구가 있으시다면, 개인적으로 시간을 들여서 개인 프로젝트에 적용해서 장기적으로 숙달하는것은 나쁘지 않다고 생각합니다. 하지만, .NET 을 집중하고자 하신다면, Blazor를 익히시는것도 나쁘지 않다고 생각합니다. Blazor Server는 산업현장에서 쓸만해요. 물론, 윗선에서 수용하느냐는 다른 문제인것 같지만요.

Blazor Webassembly의 경우 아마 .NET 6에 이르러서 완성도를 갖출것으로 보입니다.

개인적인 의견이니 참고만 부탁드립니다.

7개의 좋아요

저는 백앤드 프론트앤드 모두 개발을 하고 있습니다. 저의 분야는 비디오 프로세싱 및 방송관련 모니터링 개발입니다. 약 95%는 C# 그리고 5% 는 C/C++ 구성되어 있고 제품 특성상 365일 쉼틈 없이 돌아가는 제품입니다. 플랫폼은 윈도우즈 입니다. 저의 회사에서 클라이언트는 주로 HTML/WPF/Xamarin 으로 구성되었으나 지금은 HTML/WPF 만 사용하고 Xamarin 은 더이상 사용 안합니다. (이유는 HTML 로 대체가 가능하기 때문입니다.) HTML 은 이전에는 Angualr JS + TypeScript 였으나 지금은 Blazor (Server side) 로 약 70% 변경되었고 차후 100% 목표로 하고 있습니다. 이유는 기존의 코드를 바로 사용할 수 있기 때문입니다. TypeScript 경우에는 기존에 CS 코드와 코드 공유가 불가능하고 관리가 어렵기 때문입니다. 물론 코드제너레이터등을 이용할 수 있지만 한계가 있지요. 저도 WPF 는 초창기 부터 사용했습니다. 하지만 지금도 새로운 기술은 부단히 노력해서 습득할려고 합니다. 저의 개인적인 의견으로는 어느 한쪽을 선택하고 어느 한쪽을 버리는 선택을 하지 마시고 모두 다 가져 갈 수 있도록 노력 하시가 바랍니다. 참고로 저는 외국에 살고 있으며 .NET 은 개인적으로 앞으로 전망이 우수하다고 생각합니다.

6개의 좋아요

@SangHyeon.Kim
경험이라 해봐야 삽질뿐입니다 ㅠ 오히려 더 많이 알고 계실거에요. ㅠ 말씀대로 정말 애증의 물건입니다.
이 테크트리를 선택하기 전 돌아간다면 돌아갈 수 있을런지…

3개의 좋아요

@Procyon
네 맞습니다… 실제로 제가 찾아봐도 ASP.NET 웹폼이나 MVC5가 있긴한데 사실 이 마저도 좀 닷컴 시절때부터 있던 회사가 유지보수를 거듭하면서 운영 중인 비 개발사에서 개발자를 뽑는 경우에 이런 케이스가 있던데 (최근 보니까 진학사가 구인 중이던데 이런 케이스겠죠. 아닐려나…)

말씀하신대로 지금 딱 제 기분이 그렇습니다. Xamarin을 하자니 하는 곳도 없지만 항상 삽질하면서 하는게 불안하고 WPF을 하긴하지만 얘가 과연 오래 갈 수 있을가 고민이 들기도 하고

자바 만큼은 여태 개발자라는 이름 하에 코더로 활동하면서 자존심(많은 유혹이 있었습니다…ㅎㅎ)을 지키고 싶은지라 vue 나 모바일 쪽 네이티브 선택도 괜찮을 거 같네요.

2개의 좋아요

@dimohy 현실적인 답변 정말 감사합니다.

  1. 저 역시 닷넷 기술이 코어로 넘어오면서 굉장히 좋은 퍼포먼스를 내고 있다고 생각합니다. 망할 거란 생각은 없지만 개인적으로 개발 커뮤니티, 개발 풀에 대한 회의 감이 몇 년째 들기도 하고 많은 분들이 공감하시겠지만 종종 개발하다보면 웹 쪽 파트가 가끔 빌 때가 있습니다 (퇴사라던가 마이크로 단위의 작은 프로젝트가 필요한 경우)

그 경우에 규모가 크지 않은 이상 연차 대비 “혹시 vue나 react 해봤어요? 어려운건 아닌데 PM 겸 좀 맡아주실 수 있나요?? 아니면 asp.net 으로 해도 되요” 라고 물어보는 경우가 있는데 제가 딱 WPF, Xamarin 같은 XAML 이외에 벗어 나지 못하는 건 아닌가 하는 생각이 듭니다. 물론 스페셜리스트와 제너럴리스트를 구분하는건 좋지만 사실 저런 질문을 받고 나면 가끔 현타가 오긴 합니다. 현실인지 이상인지

  1. 아마 그런 이유에서 2번의 경우에 대한 생각은 이직보단 기술 습득의 욕구인 거 같습니다. 자연스럽게 저 역시도 WinUI를 접할 기회가 많았는데 아직 “딱 배우자!” 라고 생각하고 들어가진 않은 상태입니다. UWP도 처음에 그런 기분이었고 Silverlight나 Xamarin 출시 당시엔 MS 에반젤리스트 분들이 정말 멋있게 말씀해주셨지만 결과는 다들 아시는 상태가 되었으니까요. 아마 얘는 조금 농익을 때(?)가지 기다려볼까 합니다. 개인적으론실무에 적용하진 못했지만 Uno 기술도 재미 있었습니다.

답변 주셔서 너무 감사드리고 지금 딱 마지막으로 하고 있는 기술이 Blazor 입니다 ^^… 아직 hot Reload가 완벽치 않았던지라 Live Sharp을 구매해서 쓰고 있는데 웹을 잘 모르지만 lazor 파일들 조금만 구조 익혀보니 EF 붙여서 MudBlazor로 꾸미니 제법 괜찮더라구요. 회사에서도 딱히 지금 현재 웹 개발자가 없는 상태라 대시보드류를 제가 만들긴 했는데 이게 커머셜한 버전에 쓸 수 있을까? 에 대한 대답은 못 내렸습니다.

그래서 아마 .net core + typescript + vue.js 를 생각 했던 것 같은데 한번 더 고민해보겠습니다 ^^
감사합니다

4개의 좋아요

@David
제가 멋있어 하는 개발자 스타일에 어려운 기술을 하시고 있으시다니 한 편으로는 대단하시네요.
저도 Xamarin Forms를 그냥 짜는거보단 웹앱으로 가는게 맞다고 생각하고 있습니다. 변경도 쉽고…
저랑 WPF 시작 시기가 비스으읏…하시거나 더 선배님이실 것 같습니다.

저 역시도 생각하기로는 아마 Typescript나 다른 기술을 배운다면 닷넷과는 좀 멀어질 것 같긴합니다 다만 아직도 고민 중인 부분은 그렇다고 해서 쉬운 길을 선택했을 때 Blazor와 .Net Core로만 서비스를 구축하면 제 코드에 대한 백업을 하거나 신규 인력 채용 시에 어려움은 그대로이지 않을까? 입니다.

아무래도 한국이다보니 닷넷 기술을 주로 다룬다면 채용도 어렵지만 이직도 어려워서 이 부분이 사실입니다. 카카오워크라던가 티몬의 경우에 Xamarin이나 WPF 개발자를 채용하는 글을 작년과 몇년 전에 본 기억이 납니다만 이미 걷어냈거나 카카오톡 UWP 버전 구인처럼 소리소문 없이 사라질 자리라는 점에서 여전히 신규 기술이나 레퍼런스가 많지 않은 비선호 기술을 그대로 유지할 지에 대한 고민인 것 같습니다.

그래서 웹과 백엔드로 확장하려는 것이긴 한데 한번… Blazor에 대해 javascript와 css, scss 같은 개념은 그래도 연동 때문에 필수 인거 같고 Vue.js만 빼고 Blazor를 SPA 제작에 도입해도 될지 한번 고민해보겠습니다. 당장 일반 사용자들이 공개적으로 봐야 되는 상용 서비스 프로젝트를 좀 봐야 될 일이 있어서 좀 고민인데 참고해보겠습니다!

(왠지 절 아는 분들은 또 고민하더니 닷넷이냐고 할 거 같은데 쓰으으읍~ 어려운 부분입니다)

2개의 좋아요

@all 다듬어지지 않고 방황하는 닷넷 개발자에게 많은 의견 주셔서 정말 감사합니다.

4개의 좋아요

그나저나 카카오워크 생각나서 간만에 깔아봤는데 Webview2를 쓰는거보니 WPF 그대로 쓰나보네요.
Webview2 깔 때 스텔스로 깔지… (법적으로 문제가 되려나요)

3개의 좋아요

저랑 경력이나 테크트리가 많이 비슷하군요~
저도 honeyhead님이랑 비슷한 고민을 하고있긴한대 제 개인적으로는 아직은 .Net에 대한 미래가 좋다고 생각합니다.
앞으로 시장점유율도 높아질거 같고요.
해서 그다지 걱정은 하지 않고 있습니다.
C#이나 XAML이 Winform이나 WPF에 국한되지 않고 여기저기 다른언어와 연계되서 쓰이니 괜찮을거 같은 제 생각입니다.
비슷한 길을 걷고 있는거 같아서 화이팅하시라고 말씀드리고 싶네요~

2개의 좋아요

일단 나이가 어느정도이신지랑 결혼을 하셨고 자식이 있으신지?
를 알면 좀 더 도움이 될만한 답변이 달리지 않을까 생각 합니다만…

해외를 나가실 계획이 없으시고 나이가 30대에 자식은 없다는 가정하에는
모바일 또는 웹프론트 엔드 JS + Vue/React/…로 가는게 현실적으로 맞다고 봅니다.
이런 생각을 하는 이유는 현재 시스템들이 워낙 좋아지면서 예전에 웹으로는 못하거나 하더라도
매우 부족했던 것들이 전부 할만해졌다는것이죠.
이제 벡엔드에서 굳이 엄청난 처리를 할 필요가 없는 세상이 왔고 그건 점점 더 심해질겁니다.
거기에 더해서 국내 웹 개발은 이미 너무 심할정도로 JS로 가 있죠.

반대의 경우인 나이도 40대 중후반이고 자식도 있으시다면?
사실 이런질문 자체를 안하셨을 가능성이 높다고 보는데요. 이 경우엔 안정을 위해서 하던것을 하시는것이 맞지 싶네요.

4개의 좋아요

@Nobody ^^ 저랑 비슷한 코스이신 분을 만나니 반갑습니다. 저도 닷넷에 미래가 나쁘지는 않다고 생각은 합니다! 그래서 여태까지 붙잡고 있기도 하구요. 개인적으로는 WPF는 참 잘 쓰고 있는데 다른 XAML 기술에서 다른 XAML 기술쪽의 부진함(인력, 이직, 레퍼런스)이 조급함을 만드는 것 같습니다.

그래서… 지금 참 생각 중인건 Blazor를 하더라도 Javascript나 CSS 그리고 그 외 참고 기술을 알아야 되는건 맞는거 같아서 일단 거기서 좀 시작을 해보고 Blazor를 선 공부 그 후 vue로 넘어가볼까 합니다.

참 저랑 같은 고민이셨다면 채용 사이트에 WPF , c# 이런 식으로 검색해보고 많은 생각이 드셨을텐데 응원하겠습니다! 그리고 가끔 눈팅 하는 채널이지만 저도 많이 삽질(?)한 것들 공유하구요 ^^

3개의 좋아요

“채용 사이트에 WPF , c# 이런 식으로 검색해보고 많은 생각이 드셨을텐데” 이부분은 참 공감됩니다…
많이 없긴하죠… 그래도 최근들어 채용공고가 예전보다는 더 많아진거 같아서 좋아지고 있다고 생각듭니다. 우리나라에서 .Net개발자는 수요도 없지만 공급도 부족한 상황인거 같습니다 ^^
특히나 저는 현재는 프리랜서로 활동하고 있기때문에 채용공고를 자주 보는 편입니다

4개의 좋아요

@SeungJun_Lee 아 나이는 34입니다. 아직 미혼이고 자식도 없는 상태입니다.

내년 즈음에 결혼 할 계획인데 와이프 될 사람이 외국에서 오래 살다 와서 양가 부모님 모신 이후에는 해외로 가지 않을까 생각하고 있기도 하고 지금 딱 나이가 결정을 할 수 있는 마지노선이라 생각이라 고민인 것인데 여기서 많이 여쭤보고 하면서 살짝 웹쪽으로 마음을 굳히긴 했습니다.

그래서 blazor를 지금 하기엔… uwp silverlight winphone 악몽이 떠올라 JS + Html(grid) + tailwind 같은 css 류를 먼저 선행하고 blazor(취미) , vue(실무)를 진행 후 이후엔 xamarin을 하지 않고 웹앱으로 방향을 잡아볼까합니다.

당장 결과를 빨리 만들 수 있는건 blazor인건 맞는데 사실 그렇게 쉽게 개발기술을 익힐 생각이었다면 고민을 안했을거 같아서… 아직 젊다면 젊은 나이인데 웹으로 도전해보겠습니다!

감사합니다!

4개의 좋아요

@Nobody 맞습니다 ^^ 그래도 막 네카쿠배당토인가 얼토당토 같지 않은 개발자들의 천국엔 c# 개발자가 가기 힘들지만 그래도 대우나 인식이 좋아진 건 있어서 힘이 납니다.

진짜 실력자들의 전쟁터에서 사시는 모습이 멋지시네요. 저도 현 회사에서 야무지게 실력을 더 쌓고 한번 프리 세계 뛰어볼 때 까지 공부 좀 해야겠습니다 ^^

2개의 좋아요

아직 매우 젊으십니다.
결혼을 하신것 때문에 약간 부담스러우실순 있겠지만 아예 업종 변경까지도 가능하신 나이입니다.

하나의 예를 들자면 저희 회사에 C#으로 게임 개발을 하다가 들어온 친구가 있습니다.
사원으로 들어왔고 나이는 35입니다. 현재 회사에서 사용하는 언어는 JAVA, JS이고
백엔드 프론트엔드 들다 열심히 하고 있습니다.
아무래도 경력이 있다보니 실력이 일취월장하고 있습니다.

2개의 좋아요

c#과 관련된 것은 다 조금씩 하고 있습니다.
winform, wpf, blazor, 최근에 uno에 관심에 많이 가고 있습니다.
저는 웹을 하다 winform, wpf를 취급(?)하는 케이스입니다.
저는 그냥 프런트, 백엔드 구분없이 합니다. 작은 규모라 그럴지도 모릅니다.
현재 razorpages + webapi + tailwind css + vue 로 웹 작업중인게 있는데 이제껏 써온 조합에 비해 아주 마음에 듭니다.

2개의 좋아요