[프로그래밍] 이름을 짓는 고충 – 2009 토요타 자동차 결함의 원인
많은 프로그래머들은 코딩을 할 때 객체와 변수의 이름을 짓는 논리 외적인 문제로 힘들어 한다. 논리적인 문제는 똑똑하면 빨리 처리할 수 있지만 물리적인 문제를 해결하는 데에는 시간이 걸리게 마련이다. 프로그램을 만들다 보면 많은 객체와 변수들을 만들어야 하는데 나도 새로운 객체 선언을 하면서 멍하니 모니터만 보며 무념무상에 빠지는 경우들이 많다. 수준 낮은 프로그래머들은 순간의 고뇌에서 빨리 벗어나려고 단순하게 이름 뒤에 숫자를 붙여 가며 일을 하기도 한다. 이런 나쁜 습관은 커다란 재앙을 불러올 수도 있다.
2009년 토요타의 차들에서 제멋대로 가속이 되는 문제가 발견되었다. 이 문제의 원인을 찾고 피해 보상을 결정하고 합의하는 데에는 5년 정도의 시간 걸려서 2014년에 보고서가 나왔다. 세상의 모든 일이 그렇듯이 커다란 문제가 한두 가지의 원인들로만 일어나지는 않는다. 이 사건도 다양한 측면에서 분석되었는데 그 가운데 소프트웨어 결함도 있었다.
토요타는 덴소라는 자동차 부품 회사에 etcsElectronic Throttle Control System 전자 연료 투입 제어 장치의 소프트웨어 개발을 하청 주었다. 미국의 nasaNational Aeronautics and Space Administration 국립항공우주국은 이 문제를 분석하여 보고서를 만들었다. 여기에 보면 전역 변수들을 11,000개 넘게 썼다는 것과 sts_flag1과 같이 숫자로 끝나는 변수들이 빈번하게 사용되었다는 사실이 기록되어 있다. 항간에는 낮은 임금을 받는 중국의 프로그래머들이 하청을 받아 일을 해서 그랬다는 소문이 돌았지만 덴소가 개발을 했다는 거 외에는 확인되지 않는다.