로보틱스가 더 나은 소프트웨어 엔지니어를 만드는 이유

HKDI에서 오랫동안 로보틱스를 가르친 경험은 소프트웨어를 보는 관점을 바꿨다. 모션 플래닝이 알려준 시스템 설계 이야기.


제약이 만드는 규율

로보틱스는 제약 안에서 생각하도록 강제합니다. 서보 모터에는 한계가 있고, 센서에는 노이즈가 있으며, 실시간 루프에는 마감 시간이 있습니다. 이것들은 핑계가 아니라 설계 공간 그 자체입니다.

소프트웨어에서는 종종 대충 넘어갈 수 있습니다. 메모리를 더 주거나 서버를 더 띄우거나 예외를 잡아버리면 된다고 생각하기 쉽습니다. 로보틱스는 그런 태도를 쉽게 용서하지 않습니다.

HKDI에서 가르치며 배운 점

홍콩 디자인 인스티튜트에서 강의하던 시절, 추상적인 소프트웨어 개념에 막히던 학생들이 물리 시스템과 연결되는 순간 갑자기 이해하는 장면을 자주 봤습니다. 상태 머신 오류 때문에 로봇 팔이 실패하는 모습을 보면 상태라는 개념이 훨씬 현실적으로 다가옵니다.

코딩에 적용하기

지금 저는 소프트웨어를 설계할 때 다음을 묻습니다.

  • 마감 시간: 이게 느리면 무슨 일이 일어나는가
  • 상태: 이 순간 시스템은 어떤 모습인가
  • 실패 모드: 문제가 나면 어떤 식으로 망가지는가

이 질문들은 로보틱스에서 자연스럽게 나왔고, 결국 더 나은 소프트웨어를 만들게 해줍니다.