개발

내가 C#을 하는 이유

워시기 2024. 11. 8. 12:30
반응형

회사가 장비 관련 회사이다 보니 C#을 선택하게 되었다.

기본적인 라이브러리가 C#으로 했을때 가장 편하게 작업이 되니 다른 선택을 할 수 가 없었다.

내가 스스로를 자학하면서 만드는 스타일도 아니고 편한길이 있다면 편한길로 가는게 좋기에..

 

처음에 Visual Studio 2015를 접하였는데 이때는 IDE의 유려함은 딱히 찾아 볼 수 는 없었지만

기존에 회사에서 트레이닝할때 접한 VB6보다는 엄청나게 좋아졌기에 맘에 들어 잘 쓸 수 있었다.

 

이후 Visual Studio 2017을 사용했을때 깔끔함은 정말로 마음에 들었다.

회사에서는 Visual Studio 2017을 사용하고 집에서는 Visual Studio 2022 Community를 사용한다.

이슈가 있으면 회사에도 Visual Studio 2022 사달라고 하고 Dotnet Framework에서 Dotnet core를 사용하기 싶다.

 

C#은 MS에서 자바의 성공을 보고 델파이 개발자사가 장비 관련 회사이다 보니 C#을 선택하게 되었다.

 

기본적인 라이브러리가 C#으로 했을때 가장 편하게 작업이 되니 다른 선택을 할 수 가 없었다.

 

내가 스스로를 자학하면서 만드는 스타일도 아니고 편한길이 있다면 편한길로 가는게 좋기에..

 

 

 

처음에 Visual Studio 2015를 접하였는데 이때는 IDE의 유려함은 딱히 찾아 볼 수 는 없었지만

 

기존에 회사에서 트레이닝할때 접한 VB6보다는 엄청나게 좋아졌기에 맘에 들어 잘 쓸 수 있었다.

 

 

 

이후 Visual Studio 2017을 사용했을때 깔끔함은 정말로 마음에 들었다.

 

회사에서는 Visual Studio 2017을 사용하고 집에서는 Visual Studio 2022 Community를 사용한다.

 

이슈가 있으면 회사에도 Visual Studio 2022 사달라고 하고 Dotnet Framework에서 Dotnet core를 사용하기 싶다.

 

 

 

C#은 MS에서 자바의 성공을 보고 델파이 창시자 엔더슨 헬즈버그를 데려와 만들게 되었다.

이분 보면 정말 대단한 분 같다. 터보 파스칼도 만들고 델파이도 만들고 C# 까지!!

난 하나도 하기 힘든데 허허

 

엔더슨 헤일즈버그


인상은 순둥순둥 해보이시는 엔지니어 같다.

이분 덕분에 내가 C# 을 하는구나.. 감사하다~

 

내가 예전에는 리처드 스톨만 같이 오픈소스 개발자분들을 존경하고 리누스 토발즈나 데니스 리치, C++ 창시자, JAVA창시자 정도만 알았는데 막상 C#은 MS에서 나오다 보니 창시자가 누구일까 생각을 못했었다가 나중에 오픈 소스 전환 소식을 듣고 그때 한번 찾아봤었다.

 

내가 특히 C#에 더 관심을 많이 두고 열심히 해볼려고 한것은 크로스 플랫폼을 지원하고 부터가 더 클것 같다.

 

나는 리눅스 시스템에서 작업도 하고 싶은데 주 업무가 윈도우 시스템에서 데스크탑 어플리케이션 작업이다 보니

할 만한 일이 없고 다양한 OS에서 하나의 코드로 하면 좋을텐데 생각해서 JAVA를 배워 AWT나 안드로이드를 배워봐야 겠다고 조금씩 공부를 하고 있었다. C++로 QT를 하면 좋을텐데 C++을 배워야 하는 목적이 약하다 보니 고생이 더 클것 같아서 망설여지게 되었다.

 

MS에서 Mono 플랫폼이 나오고 자마린이 나와서 이거닷~ 하고 시작을 해봤는데....

 

정말 힘들더라... xaml도 잘 모르겠고 플랫폼 관리는 너무 복잡한것 같고

 

이때 xaml에 관심을 가지기 시작을 했다.

 

HTML같은데 여기 말고 어디에 써야할지 모르겠더라..

 

이때 WPF도 같이 관심을 가지게 되었는데 나름 회사일에 치여 진득하게 진행을 못함 ㅜㅜ

 

열심히 윈폼하면서 리눅스에서도 윈폼이 돌아갔으면 하는 헛된 희망을 품었던것 같다.

 

이 시기에 정말 여기 저기 기웃겨렸던것 같다.

 

자바도 조금 공부하고 코틀린도 조금 공부하고 파이썬도 조금 공부하고

 

다 조금하다가 일에 치이고 원하는 결과가 딱 하고 나오기 힘들다는 것을 알게 되니 오래 공부도 안되고 금세 포기하고

 

그랬었던것 같다.

 

그러다가 구글에서 플러터가 나오는것을 보고 오~ 이거닷 하고 눈을 반짝이며 책도사고 강의도 듣고 그랬었다.

 

Skia 엔진이 정말 좋은것 같았다 수정하고 핫 릴로드 할때 바로 바로 바뀌는것이 정말 좋았었다.

 

그리고 크로스 플랫폼이 된다는 것이 배우고자 하는 제일 첫번째 목표였다.

 

강의를 보고 따라해서 그런지 내용 자체는 코틀린같이 막 어렵게 느껴지지는 않았다.

 

다만 클래스 구조를 만드는 것이 아직은 잘 모르겠고 파라미터에 파라미터를 넣어서 중괄호가 막 넘쳐나는 것이 

딱히 마음에 들지 않았다.

 

마침 회사에서 기존에 윈폼으로 작업한 내용을 태블릿에서 동작을 해야 해서 시간도 많이 주고, UI도 생각보다 단순해서

한번 도전을 했는데 UI는 어찌 어찌 하는데 코드 짜면서 에러가 대응이 안되서 검색하고 검색하고

이제 강의 듣고 만들려고 하다 보니 쉽지 않더라 그래도 시간이 많이 있어 공부하면서 쭉 나가면 하나 배우겠다 싶어

거북이처럼 진행을 하였는데

 

그 사이에 C#진영에서 MAUI가 출시가 되었다.

으잉? 이게 모지하고 한번 봤는데 예전에 자마린하면서 나름 조금이라도 공부해서 그런지

처음에 튜토리얼 보고 바로 접근이 가능하더라 

윈폼에서 만든 장비제어 클래스들도 활용이 되어서 UI한다고 xaml조금 낑낑거리면서 작업하고 나니

이후에는 나름 수월하였다.

그래서 이때 고민을 살짝하다가 1차 내용 보여주고 피드백이 왔는데 작업할양이 조금 더 늘어나고

새로운 기능이 요구되었다.

새로운 기능이 추가되거나 할때 생산성을 따지다 보니 MAUI로 갈아타야 겠다고 생각이 들었다.

 

장비를 추가할때는 윈폼에서 C#으로 작업을 하는데 이후 다시 플러터 플랫폼으로 변경할 생각하니 머리가 아파오더라

Dart언어가 생소하고 앞으로 이 언어로 밥벌이가 될까 생각이 드니 여기까지 잘 배웠다고 생각하고

남은 작업은 MAUI로 하게 되었고 

 

다행이 안드로이드 태블릿으로 제어하는 프로그램을 무사히 만들게 되었다.

 

MS에서는 스티브 발머 CEO에서 사티아 나델라 CEO로 변경되면서 많은 변화가 있었다.

 

이전에는 오픈소스를 암적인 존재라 칭하였는데 CEO 변경이후 오픈소스에 대해 180 변경된 정책이 나오게 된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

그 결과 닷넷 프레임워크에서 닷넷 코어로의 오랜기간의 전환이 이루어 지게 된다.

 

리눅스에서 C#이 돌아간다고 해서 간략하게 Hello World 찍어봤는데 떡하니 나오는 것을 보고

 

이제 C#만 해도 되겠구나 생각을 했다.

 

물론 하다 보니 다른 언어에 대한 필요성도 많이 느끼게 되고

 

일단 메인으로 C#을 잡고 나니 다른 언어 배울때도 더 편하게 공부했던것 같다.

 

그리고 서버쪽에도 관심을 가지고 있는데 Blazor라는 좋은게 나왔다.

 

백엔드는 원래 나름 한 축을 담당하는데 프론트에 대한 해답까지 나와서 C#을 통해서 다할 수 있다하니 

상당히 매력적이다.

 

여튼 내가 C#을 하는 이유는

1. 윈폼을 버릴 수 없다.

2. 다양한 분야에 활용이 가능하다. (Unity, 서버작업, 모바일)

3. Visual Studio가 정말 좋다.

4. 정적언어라서 좋다. (파이썬 같은 동적언어가 아직은 익숙하지 않아서..)

5. 데이타 타입이 명시적이라서 좋다.(Var는 잘 안쓰게 되는...)

 

메인 언어를 딱 선정하게 되니 마음이 한결 가벼워 지게 되었음

 

기존에는 C#을 메인으로 하고 있는데 메인으로 마음에 완전히 들지 않다보니 심적으로 불편한 점도 있었음.

 

C#이 앞으로 계속 좋아졌으면 한다.

 

우리나라에서 점유율이 좋은 편은 아닌데 많이 좋아져서 보다 많은 곳에 사용되었으면하는 마음이다.

 

 

 

반응형

'개발' 카테고리의 다른 글

윈폼에서 디자이너 로드 오류 해결방법  (0) 2024.11.12
C#으로 하는 GPIB 통신 -3-  (4) 2024.11.11
C#으로 하는 GPIB 통신 -2-  (11) 2024.11.10
C#으로 통신하는 GPIB 프로토콜  (5) 2024.11.09
GPIB 소개  (11) 2024.11.08