본문 바로가기

개발 이야기

개발 언어를 분류하는 방법 & 자신의 진로 매칭

728x90

개발 언어를 분류하는 방법이 다양하지만, 메모리 관리의 관점에서:
1. C/C++/Rust 등의 메모리 관리를 직접 하는 unmanaged 언어들이 있고
2. JS, Java, Go, C# 등등의 메모리 관리를 런타임이나 vm이 해주는 managed언어들이 있습니다.

개인적으로 생각하기에, 처음 어느 쪽 언어를 선택 하느냐에 따라 엔지니어링 쪽 개발을 하게 되느냐 IT 쪽 개발을 하게 되느냐로 갈린다고 생각 합니다. 말하자면 향후 진로가 결정 된다는 뜻이죠.

C/C++는 대체로 실시간 장치 개발용으로 쓰이는 경향이 있습니다. 펌웨어나 커널에 가깝고 기계쪽과 궁합이 좋죠.

만약 앱을 하고자 하신다면 Swift, Kotlin, Dart, JS, C# 중에 하나를 쓰셔야 합니다. 또는 랩뷰와 MIS 연동을 목표로 하신다면 C#이 좋습니다.

일전에도 드린 얘기지만, 기계 관련 회사에서 테스트를 많이 하시고 랩뷰를 쓰신다면, 저는 C와 C#을 반반씩 상황에 따라 섞어 쓰시면 어떠실까 싶습니다. C로는 실시간 장치 (펌웨어, Compact RIO, 아두이노) 개발을 하시고, C#/랩뷰(DLL+Compact DAQ)와 백엔드(dotnet core)를 이용해서 데이터 관리와 IT쪽 연동을 하시면 좋을 것 같습니다. 이렇게 접근하시면 현재 업무의 연장이기 때문에 공부하실 시간과 동기를 가지시는 데도 좋고, 경력 관리에도 도움이 되실거라 생각 합니다.

결론적으로 드리고자 하는 얘기는, 이제라도 개발 쪽으로 도전하신다면 자신이 가진 기존 지식과 상황을 잘 활용하셔서 전략적으로 접근 하시는게 좋겠다... 는 겁니다. 물론 제 짧은 식견으로 드리는 댓글이니 걸러 들으시면 좋겠습니다.

 

아두이노나 eval 보드에 펌웨어나 RTOS 넣고 USB/ethernet으로 통신해서 데스크탑 앱(C#/WPF 또는 JS/일렉트론)으로 제어 하는 것은 워낙에 공장이나 실험실에서 많이 쓰니까요. 암튼 꾸준히 하셔서 좋은 성과 있으시면 좋겠습니다.

728x90