JS개발자가 느끼는 닷넷이 어려운 이유

  1. 1분에 한 번씩 못 보던 문법 나옴
  2. 1분에 한 번씩 못 보던 자료형 나옴(ex. IList, Models…)
  3. 1분에 한 번씩 이 변수가 어디에서 왔는지 모르겠음(의존성 주입 뭐시기…)
  4. 함수 드럽게 많음. 드럽게 많은데 이유가 각각 있어서 이거 다 찾아보고 코드 짜야함

익숙해지면 쉽다는데 익숙해지는게 어려움
한국어 강좌 많이 없어서 MSDN에 응애하고 의존해야함. MSDN에 의존성 주입되어버림;;
많이 안 짜보면 내가 뭐 하고 있는지 모름

잘 짜는 사람 코드 보면 겁나 간단함
LINQ멋있는데 뭘 어떻게 한 건지 로직 이해 못함

1주일 공부해보고 실력 늘기까지 시간이 오래걸릴거 같음

6개의 좋아요

말씀하신 것을 거꾸로 뒤집으면 저도 똑같이 어렵습니다.

그래서 C#만 9년한 제가 JS를 아직도 못하는거 아닌가 싶습니다.

6개의 좋아요

C#, 닷넷은 MS의 성향을 잘 보여주고 있죠
길게 말하면 또 신고 먹을 것 같아서 이만 줄입니다.

익숙해져도 쉽지 않습니다. 익숙해질만하면 확 바뀝니다. 하다못해 지금 .Net classic , core, .net 버전별로 상이한것이 많습니다.
Java쪽은 뭐 스프링을 10년째 기본적으로 같은 방식인것 같긴 한데 이쪽은 한 2년에 한번씩 확 바뀌고 매달 뭐가 나오는것 같아요

2개의 좋아요

욕 나옴…
자바나 할걸

뭐 이리 매달 바뀌는것 같은지
적응 할만 하면 또 공부 해야 하고…
적응 할만 하면 또 공부 해야 하고…
적응 할만 하면 또 공부 해야 하고…
적응 할만 하면 또 공부 해야 하고…

2개의 좋아요

저는 .net core 2.1 부터 해서 그런가, 닷넷 타입이라고 불리는 기본(?) 자료형은 거의 변화가 없다고 생각하고 있는데… 제가 아직 다 몰라서 그런건가요?

닷넷 문서는 사실 좀 그렇긴 합니다.
지은이가 Rick Anderson 이면, 뒤로 가기 누르곤 했습니다. ^^
(최근에는 좀 유해진 경향이 있긴 하더군요)

2개의 좋아요

모든 언어가 비슷하지 않을까요? 다 차치하고, 익숙해지는게 어려운거 같아요.
공식문서를 보면 MS만큼 잘되어 있는게 없는거 같긴한데 저한테는 MS 문서가 …머랄까…늪같습니다. 허우적 허우적…
치고 빠져나오는 걸 잘해야 할 거 같은데, 다른데로 너무 잘빠져서 처음 보고자 했던 건 까맣게 잊어버립니다.

한글번역은 자주 어순이 이상한게 많아서, 이해가 아닌 어순맞추기로 빠지기도 합니다. ㅎㅎㅎ

가끔 예전 개발방식과 개선된 방식의 코드를 비교해 주는 걸 보면 와…엄청 좋아졌네 하는것도 많았습니다. 그게 좋은거 같습니다.

애기는 금방금방 크자나요. 이제 군대갈 나이정도 되었으니 좀더 성숙해 지겠죠.

5개의 좋아요

일단 자바나 자바스크립트 쪽은 새로운 것의 적용을 잘 안 하는 것이지 안 나오는 게 아니죠.
물론 언어 자체가 그리 많이 바뀌지 않는 것은 맞습니다.
다만 프레임웍이나 기타 외부적인건 확확 바뀌고 있죠.

이제 C#, .Net을 보면요. 새로운 것이 많이 나오는게 분명한 사실입니다만…
꼭 써야 하는 것은 아니죠.
실제 과거에 만든것들 빌드 해보면 프레임웍만 교체하는것으로 대부분 빌드가 됩니다.
드믈게 안되는것들이 있는데. 라이브러리 가 바뀐 것이고 그것도
네임스페이스만 바꾸면 거의 빌드 됩니다.

제가 생각하기에는 그냥 새로운것을 빨리 적용하는것을 좋아하는 사람이 닷넷쪽에 많은 것 뿐이지
뭐 엄청 차이나는건 없다 입니다.

4개의 좋아요

옹… 그냥 dynamic language vs statically typed language 의 차이 아닐까요?

어느 한 쪽에 익숙해져 있다면 당연히 완전히 결이 다른 한 쪽은 어려울 수밖에 없을 거 같아요.

그래서 저도 여기에 한 표… 쿨럭 -ㅁ-;;;

5개의 좋아요

전 요새 닷넷하다가 다른 기술로 웹 개발하는데 오히려 재미있습니다.

이게 돼??
이게 돼??
이게 돼??
이게 돼??
어?? 이게 왜 돼?

이거저거 다 같이 해보니 재미있네요. 이걸 왜 지금 해봤을까

4개의 좋아요

다른 기술이 뭘까요? 궁금합니다.
따라쟁이에 팔랑귀라서 ㅎㅎㅎ

1개의 좋아요

전 요새 react, blazor를 하고 있습니다… php(라이믹스)두요… 전 개발자들이 해놓은 기술들이 총체적 난국이네요 :slight_smile:

이거 회사를 잘못들어온 건 아닌지.

속상한 건 웹 개발자가 아니긴한데 어찌어찌 또 돌아간다는게 슬픕니다…

.net maui할 때가 좋았는데… 모바일 작업할 틈을 안주네요.

2개의 좋아요

저도 요즘 blazor 위주로 작업하고 있는데 재밌어요 ㅎㅎㅎㅎ

데이터분석이나 머신러닝 공부하면서 파이썬 해보면 이게 이렇게 간단하게? 싶은 것도 있고 이게 안됨? 이런 것도 있고 참 재밌습니다 ㅎㅎ

1개의 좋아요

저도 여기에 동의합니다. 실제로 젯브레인에서 조사한 결과에도 C#, 닷넷 개발군은 새로운 버전을 빠르게 도입한다는 결과도 있었구요 ㅎㅎ

2개의 좋아요

좋은 토론이 오고 가는 것 같습니다. 그런데 원래 주제로 돌아와서, 왜 닷넷이 어려울까? 하는 이야기를 해보면 좋을 것 같습니다.

최신 버전의 문법을 따라해야 한다는 "강박"이 생기면, 말씀하신 1분에 한 번씩 못보던 문법이 나오고, 못보던 자료형이 나오는 일이 생기는 것 같습니다. 개인적으로 C#으로 의미있게 적정선을 지키며 프로그래밍할 수 있는 마지노선은 C# 5.0까지라고 생각합니다. 그 이후의 모든 문법은 사실 모르더라도 큰 지장이 없고요.

의존성 주입 (Dependency Injection)이나 제어 역전 (IoC; Inversion of Control)은 확실히 자바스크립트에서는 생소한 개념이 맞습니다. 그런데 이 개념은 닷넷의 전유물은 아니고, 자바나 다른 개체 지향 언어들 모두가 제공하는 비슷한 패러다임이라 이것이 닷넷을 특별히 어렵게 만드는 이유가 되는지는 잘 모르겠습니다.

함수의 갯수나 클래스의 갯수가 많은 것은 닷넷은 오히려 약과라고 생각합니다. 많이들 사용하시는 자바나 스칼라의 경우는 어떤지 혹시 비교해보셨을까요? ㅎㅎ

프로그래밍 언어의 역사가 깊어질수록 복잡도가 늘어나는 것은 필연적인 문제인 것 같습니다. 그래서 자바의 경우처럼 오리지널 자바는 그대로 두되 새로운 언어 (코틀린, 스칼라 등)가 계속 추가되는 경우도 자주 볼 수 있는데, 새로운 언어를 기존 언어나 시스템 위에 추가하는 것도 장단점이 있고, 이 나름대로 새로운 복잡성이 더해지는 면도 있다고 생각합니다. 아, 자바스크립트의 경우에도 비슷한 일이 있었죠! 지금은 바닐라 자바스크립트보다 타입스크립트가 더 많이 쓰이는데, 타입스크립트도 C# 못지 않게 언어 발전 속도가 빠른 것으로 알고 있습니다. 이 부분에 대해서는 어떻게 생각하시는지 궁금하고요.

조만간 닷넷에서도 이런 복잡함을 밀어낼 새로운 패러다임이 등장할 때가 곧 오지 않을까? 하는 상상을 해봅니다. 닷넷도 어느새 20년이 넘긴 했습니다. ㅎㅎ

6개의 좋아요

여러가지 이유로 C#과 닷넷이 보통 세트로 묶여서 이야기되는 경우가 많긴 한데,
C#이라는 언어 자체는 정적 타입 언어 중에서 제일 다루기 편한 언어라고 생각합니다.
C# 버전이 올라가면서 다른 언어에 있는 기능이나 요소들을 진보적으로 차용하는 경우도 많고, 그게 대체로 코드를 간결하고 안전하게 쓸 수 있게 해주는 것 같습니다.
다만 다른 분들께서 먼저 말씀하셨듯이 핵심적인 언어 사양들은 C# 5.0 정도까지만 공부해도 충분한 편이라 생각합니다. 그 이후에 추가된 사양들은 상황에 따라 필요하면 쓰면 그만 안쓰면 그만인 문법적 요소들이 많다고 생각합니다.

그리고 의존성 주입 같은 경우엔 C#보단 닷넷에서 적극적으로 차용하고 있는 개념이라고 보는게 좋을 것 같습니다. 그리고 이것 역시 알고보면 다른 언어의 프레임워크에서도 이미 적용하고 있는 개념입니다.

아마 동적 타입 언어군(Javascript, Python 등)을 주로 쓰는 분야와 정적 타입 언어군(C#, Java 등)을 주로 쓰는 분야 간의 설계철학이나 개발철학이 다른 것도 한 몫하지 않나 싶습니다. 프로그래밍이라는 같은 분야 안에 속해있지만 언어 철학에 따라 그 위에서 개발되는 프레임워크나 프로그램들도 구현 방향이 상이하니까요.

5개의 좋아요

공감합니다. 의존성 주입은 매커니즘이라 자바스크립트 개발에도 NestJS 와 DI를 적극 지원해서 자바스크립트 개발자라기 보단 성향차이인 것 같습니다. 의존성 분리 전략에 대한 개인적인 견해로 봐야할 듯합니다. :slight_smile:

typescript, nextjs 를 주로 쓰던 프론트엔드 개발자로 일하다가 .NET 풀스택으로 전향해서 새로운 많은 것들이 꽤 많지만 체계적이고 합리적인 요소들이 더  많아서 긍정적인 부분이 더 많은 것 같습니다.

가끔 MSDoc에 의존적인 제 모습이 보일 때 걱정스럽긴하지만 ㅎㅎ

4개의 좋아요

고맙습니다. 그런데 불현듯 궁금해지는게 있습니다.

문서를 보고 개발에 활용하는게 그런 사람 탓을 하거나, 비난받거나, 부끄러워해야 하거나, 혹은 실력이 없거나 모자람을 증명하는 일일까요?

원글도 그렇고, 달아주신 피드백에서도 그런 코드가 읽히는데 이게 왜 문제가 되는지 의아합니다. :thinking:

2개의 좋아요

닷넷 파다보면 그런 느낌이 들기는 해요, 오래 운영된 온라인게임같다고 해야하나
기존시스템 다알고있는 고인물기준으로 컨텐츠가 계속 확장되니까 새로 입문하기 힘들만한게, 구글링 잘못해서 레거시에 표류해버리거나, 일단 모르는건 다 넘기고 운좋게 최신문서로 점핑해도 간결하게 싸그리 추상화된 결과물을 보고 정작 그래서 뭐가 어떻게 굴러가는건지 여전히 이해할수 없거나…
제가 후자에 속하는편인데, 뭐 그래도 일단 믿고 쓰니까 암튼 잘 굴러가고있습니다.

4개의 좋아요