임베디드 장애는 재현부터 해야 한다
Table of Contents
임베디드 장애는 재현부터 해야 한다
차량에서 문제가 생기면 이런 말을 자주 듣는다.
“한 번 발생했는데 지금은 안 납니다.”
개발자 입장에서는 반갑지 않은 문장이다. 안 나는 문제를 고치기는 어렵다. 일단 유령부터 불러와야 한다.
재현이 안 되면 먼저 환경을 고정한다. 소프트웨어 버전, 입력 조건, 온도, 전원 상태, 통신 상황을 확인한다. 그 다음 장애 모양을 나눈다. 크래시인지, 멈춤인지, 잘못된 값인지, 단순히 느려진 것인지에 따라 볼 곳이 달라진다.
바로 코드를 고치는 것도 흔한 실수다. 원인을 모른 채 한 줄을 바꾸면 문제가 사라질 수도 있다. 대신 다른 곳으로 이사 갔을 가능성도 있다. 버그가 퇴사한 게 아니라 자리를 옮긴 것이다.
그래서 순서는 단순하다.
- 같은 조건에서 다시 발생시키기
- 로그·레지스터·트레이스 중 필요한 관측 지점 정하기
- 한 번에 하나만 바꾸기
- 같은 조건에서 다시 확인하기
좋은 디버깅은 코드를 빨리 고치는 일이 아니다. 원인을 다른 사람이 다시 확인할 수 있게 만드는 일이다.
“고쳤습니다”보다 더 좋은 말은 가끔 이것이다.
“같은 조건에서 다시 발생합니다.”
© 2026 다섯시사십분
•
Theme Moonwalk