Insight & Philosophy 2

[Insight] 개발의 절반은 '디버깅'이다

개발자로서 연차가 쌓이면서 바뀌는 습관이 하나 있습니다. 예전에는 "어떻게 하면 이 기능을 빨리 구현할까?"를 고민했다면, 이제는 "이 기능이 멈췄을 때, 어떻게 하면 빨리 원인을 찾을 수 있을까?"를 먼저 고민한다는 점입니다.특히 하드웨어를 제어하는 장비 개발 분야에서, 코드가 '도는 것'은 시작에 불과합니다. 진짜 싸움은 현장에서 예기치 않은 이유로 '멈췄을 때' 시작됩니다. 오늘은 제가 프로젝트를 진행하며 뼈저리게 느낀 '디버깅을 위한 개발 철학'과, 새로 합류하는 팀원들에게 꼭 해주는 이야기를 나누려 합니다. 1. 미래의 나를 구하는 '방어적 코딩' 우리는 종종 'Happy Path(모든 조건이 완벽한 상황)'만을 가정하고 코드를 짭니다. "센서는 당연히 켜져 있겠지", "통신 케이블은 연결되어 ..

[Insight] 장비 제어 소프트웨어 개발자란?

장비 제어 소프트웨어 개발자, 기계의 언어를 설계하는 사람저는 자동화 장비를 만드는 일을 합니다.그중에서도 장비 제어 소프트웨어(Equipment Control Software) 개발이 제 역할입니다.쉽게 말하면,"기계가 언제 움직이고, 어디로 가며, 어떤 순서로 동작해야 하는가"를소프트웨어로 설계하고 구현하는 일입니다.1. 기계가 움직이기까지장비 제어 소프트웨어는 단순히 모터를 돌리고 IO를 제어하는 수준이 아닙니다.하나의 장비가 움직이기 위해서는 수십, 때로는 수백 개의 센서와 액추에이터가순서와 조건에 맞춰 정확히 연동되어야 합니다.이걸 가능하게 하는 게 바로 제어 로직(Sequence Logic)입니다.예를 들어,실린더가 먼저 내려와야 하고,그 신호가 감지되면 모터가 이동하고,위치가 안정되면 카메라..