Hermit Under the Cliff

C# 예찬 - 정확히는 Visual Studio 찬양 본문

Test Automation - General

C# 예찬 - 정확히는 Visual Studio 찬양

AnonymousDeveloper 2022. 3. 14. 18:20

제가 C#을 처음 접한 것은

10여년전 쯤 이직과 함께 새로운 업무를 맡게 되면서 입니다.

그 전까지는 C# 코드들을 슬쩍 보면서

이거 완전 자바랑 비슷한데?

정도의 생각만을 가지고 있었죠.

 

10여년간의 시간동안 C#과 함께 하면서

(가끔 파이썬이나 코틀린, 러스트, 고 등으로 외도를 잠깐씩 하긴 했지만)

이제는 파이썬 같은 스크립트 언어로 작성을 할 것 까지

C#으로 커버를 할 때도 있을만큼 C#을 좋아합니다.

물론 제가 밥을 벌어먹고 사는 업무가

Windows 환경에서의 테스트 Tool 개발이다 보니

Windows의 UI를 가장 쉽고 빠르게 작성을 할 수 있는 언어가

C#이라서 더욱 좋아하는 점이 없진 않지만,

Windows UI를 제외하고 나서라도 C#은 훌륭한 개발언어입니다.

(물론 그 중 Visual Studio의 비중이 절반이 넘긴 한것 같습니다만)

 

 

가장 핫하디 핫한 언어인 파이썬과 비교해 보았을때,

C#의 장점은 아래와 같이 꼽을 수 있습니다.

 

0. Visual Studio

C#의 훌륭함을 논할때 무조건 0번으로 꼽는 부분이 비주얼 스튜디오 입니다.

이클립스, 안드로이드 스튜디오, VS Code, vim, notepad(?) 등

여러가지 IDE를 사용해 보았지만 VS 만큼 쉽고 편하고 강력한 툴은 단언코 없습니다.

무료로 제공되는 커뮤니티 버전도 깊게 들어가지 않는한 큰 제약도 없습니다.

또한 VS만 깔면 모든 환경 설정이 끝난다는 점도 꽤나 강력합니다.

다른 언어들 시작하려면 환경설정에만 한 세월이 걸리거든요.

 

1. WinForm

프로그램을 배울때 가장 큰 효용성을 느끼게 하려면

내가 돌아가는 코드를 직접 볼 때 입니다.

WinForm의 경우는 파워포인트 하는 식으로 UI Object를 배치만 하면

프로그램이 뚝딱 만들어 집니다.

어느정도 경력이 쌓이면 콘솔이 훨씬 더 편하긴 하지만

프로그램을 처음 배울 때 콘솔에서 하면

뭔가 만들어도 만든 것 같지 않은 프로그램이 되어버리죠.

 

2. nuget package manager

파이썬의 pip에 비길바는 못되긴 하지만 그래도 C#도 나름 꽤나 커다란 풀을 가지고 있습니다.

왠만한 건 다 있다고 보시면 됩니다.

물론 여려가지의 선택지가 있는 파이썬에 비해서 선택지가 좁은 경우가 많긴 하지만

그래도 있을만한 것은 다 있습니다.

게다가 virtual env 따윈 필요없이 VS Solution으로 reference가 관리되니

제 경우에는 이게 훨씬 더 편했습니다.

 

3. 가독성

이건 개인의 취향이긴 한데 c/c++과 java를 거쳐 C#까지 온 저는

가끔 파이썬의 인덴트가 너무 불편할 때가 있습니다.

에디터 설정을 잘못하여 4 spaces가 아닌 tab으로 해버려서

이걸 찾느라 한참 고생했던 경험도 있구요.

물론 기존 언어의 중괄호 ({ 와 })를 이용한 구문 구분도

코드가 복잡해지면 헷갈리는 건 마찬가지긴 하지만요...

 

4. 계속 발전하는 morden language

C#이 나온지는 꽤 되긴 했지만 그래도 모던 랭귀지에 속합니다.

그리고 버전업이 될 수록 왠만한 다른언어에서 지원하는 기능들이

거의 대부분 지원이 됩니다.

얼마전 업무에서 python코드를 C#으로 포팅을 했는데

런타임에 method를 동적으로 넣는 코드가 있어서

이걸 어떻게 C#에서 다뤄야 하나 라고 해서 찾아봤더니

Dynamic Object 라는 기능이 있더라구요.

이런식으로 여기선 되는데 C#에선 안돼? 하면서 찾아보면

왠만해서는 항상 해답이 있는 편 입니다.

 

 

물론 위에 열거했던 장점에 반하는 C#의 단점들도 여럿 있습니다.

특히나 플랫폼간 지원이라던지 (Mono나 Xmarin 이 있긴 하지만)

커뮤니티의 사이즈 등 파이썬과 비교해서 부족한 부분이 있는 언어지만

모든 불편함이 Visual Studio 하나로 상쇄된다니까요ㅎㅎㅎ

 

Comments