제어 소프트웨어 엔지니어에 대한 생각.
다른 분야도 그렇겠지만 소프트웨어도 참 다양한 개발 분야가 있습니다.
최근 급격히 뜨고 있는 모바일 개발 분야를 비롯해 웹앱, 게임, 백엔드, 프론트엔드, 팩키지, 또 저같은 제어 등등해서 참 다양하게 많습니다.
그 중에서 혹시나 기계제어나 계측에 관심이 있는 분들을 위해 몇자 적어 보려 합니다.
1. 어떤 언어를 배우는게 좋을까?
일단 제어에 관심이 있는 분들이라면 저는 C계열의 언어를 공부하라고 제안을 드립니다. 물론 제어 분야에서도 다양한 언어(파스칼, Visual Basic 등)을 사용하기도 하지만 그래도 가장 많이 사용하는 언어는 C++ 언어가 아닐까 생각됩니다. 제 경우 기본적으로 C언어로 마이컴 펌웨어 개발과 핸드폰 UI 개발을 경험하고 이후 C++언어를 통해 제어 계측 쪽으로 분야를 옮긴 경우 입니다.
일단 기계 제어를 하기위해서는 각종 카드들의 드라이버나 통신을 통한 제어를 많이 하게 되는데 이것들을 제어하기위한 라이브러리 들이 기본적으로 C나 C++ 로 되어 있습니다.
요즘은 C# 도 많이 사용이 됩니다. 저도 얼마전부터는 C#으로 변경했는데 라이브러리 사용성 면에서나 화면 GUI 설계에 시간을 많이 절약할 수 있기 때문에 최근 급격히 사용이 늘어나지 않나 생각이 듭니다.
2. 기계에 대한 지식이 전혀 없는데 괜찮을까?
이쪽 분야가 제 생각에 소프트웨어 기술적으로만 본다면 난이도가 그다지 높은 분야는 아니라고 생각됩니다.
언어 하나를 잘 다룰줄 알고 절차적인 흐름에 대한 이해도만 있다면 누구나 어렵지 않게 접근 가능한 분야입니다. 물론 잡다한 지식이 필요할 때도 있습니다. 제어와 계측을 같이 해야하는 프로그램을 할 경우에는 소프트웨어 지식뿐 아니라 실제 계측 데이타나 생산되는 제품의 특성, 성질등의 이론적 지식도 필요할 때가 있기는 합니다.
제 경우는 광반도체 분야의 장비를 주로 개발하다보니 Laser Diode 의 물리적 특성이나 데이타 특성등도 알아야 문제가 발생했을 때 장비를 사용하는 업체 담당자와 이야기 하면서 문제를 해결할 수 있습니다.
하지만 그런것도 결국은 프로그램 하면서 자연적으로 다 배우게 됩니다.
3. 꼼꼼함은 생명이다.
소프트웨어 분야에서 조그마한 실수가 대형 사고를 칠 수 있는 분야가 금융 플랫폼 개발과 이 장비 개발 분야가 아닌가 생각이 듭니다. 물론 다른 분야에서도 조그마한 실수가 큰 사고를 낼 수 있겠지만 장비분야는 특히 심각합니다.
조그마한 작동 오류로 수억짜리 장비를 부셔버릴 수도 있고 생산라인에서 장비가 멈춰버리면 이건 그야말로 대형사고 입니다. 그러다 보니 제어 엔지니어는 장비를 실제 돌리면서 디버깅 하기전에 코드를 보며 수십번도 더 머리속에서 장비를 돌려보고 디버깅도 코드 한줄 한줄 스텝 스텝 디버깅을 합니다.
순간 방심하고 몇줄의 코드를 한번에 돌렸다간 순식간에 장비 날아가는 수가 있습니다.
함수 하나 잘못 실행하면 수천만원 짜리 로보트 팔 날라가는 수가 있습니다. ( 너무 겁을 줬나요??)
4, 그래도 재미는 있다.
정말 그래도 내가 짠 코드로 기계가 돌아가는 거 보고 있으면 정말 재미는 있습니다. 다른 분야 소프트웨어는 기껏해야 모니터 화면에 보여주는게 전부이겠지만 제어는 그야말로 기계가 움직이고 공장이 움직입니다.
내가 타이핑한 코드대로 무언가 움직인다는게 정말 때로는 짜릿하기도 하고 뿌듯함이 몰려 오면 힘들었던 순간이 눈녹듯이 녹습니다,
'Developer's Story' 카테고리의 다른 글
비주얼 스튜디오(Visual Studio) WinForm 에서 폼 디자이너가 나타나지 않을 때 (0) | 2025.03.20 |
---|---|
소프트웨어 개발에 AI(인공지능)의 활용 (0) | 2025.02.27 |