일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 코딩봇
- mysql4
- 테스트자동화
- 효용감
- automation
- ChatGPT
- Ollo
- c#
- arduino
- NocoDB
- CM-50
- 올로
- 업로드모드
- Dynamixel
- 로보티즈
- QA
- 테스트 자동화
- TP4056
- 절벽아래은둔자
- 무명의개발자
- chromedriver
- Robotis
- 엠블록
- MBLOCK
- 아두이노코딩봇
- 크롬드라이버
- 다이나믹셀
- 아두이노
- hutc
- testautomation
- Today
- Total
Hermit Under the Cliff
C# 예찬 - 정확히는 Visual Studio 찬양 본문
제가 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 하나로 상쇄된다니까요ㅎㅎㅎ
'Test Automation - General' 카테고리의 다른 글
해치지 않아요 (0) | 2023.02.20 |
---|---|
SW Engineer로 QA 역할을 하는 것의 장점 (0) | 2023.02.02 |
BDD를 QA 테스트에 적용하기 (0) | 2022.11.10 |
테스트 자동화 - 작은 것에서 부터 시작하기 (0) | 2022.01.24 |
서론 : 테스트 자동화, 효용감을 느끼게 하기 (0) | 2022.01.21 |