CHAPTER
14
버그란 무엇인가?
뭐, 대부분의 프로그래머는 아는 이야기다. 아주 옛날에는 실제로 벌레가 컴퓨터 안에 들어가서 문제를 일으키는 바람에 이를 누군가 잡아야 하던 시절이 있었다. (사실 엔지니어들은 그 이전부터 문제를 ‘버그bug’라고 불렀지만, 그래도 재미있는 이야기가 아닌가?)
하지만 우리가 말하는 ‘버그’란 정확히 무슨 뜻일까?
버그를 구성하는 정확한 정의는 다음과 같다.
1. 프로그램이 프로그래머의 의도에 따라 움직이지 않는다.
2. 프로그래머의 의도가 사용자의 평범하고 합리적인 기대를 충족시키지 않는다.
그래서 프로그램이 프로그래머가 의도한 작업을 하고 있는 한 프로그램이 제대로 작동한다고 보는 게 일반적이다. 때로 프로그래머가 의도한 작업이 사용자의 기대를 크게 벗어나서 문제를 일으킬 때는 버그라고 본다.