누구도 컴퓨터 버그에 관해서 얘기하는 것을 좋아하지 않아요. 그래서 이번 학습은 매우 짧습니다. 제가 여러분께 부탁 드리는 것은 단지 읽어만 보세요. 여러분이 버그있는 프로그램을 작성하지는 않습니다.
컴퓨터 용어 버그(Bug)의 어원은 하버드 대학 마크 II 컴퓨터 내부에서 나방이 발견된 실제 사건에 기원하는데, 분명히 나방이 컴퓨터가 멈추게 하는 원인을 제공했습니다. 컴퓨터 프로그래밍의 컴파일러 언어 개념을 발명한 저명한 컴퓨터 과학자이자 수학자이며 해군 장교인 Grace Murray Hopper 가 이끄는 팀에서 발견되었습니다. Grace Hopper 박사는 종국에는 미 해국 소장까지 진급했습니다.
이 나방(Moth)은 하퍼의 기록지에 테이프되어 보관되었다. 흥미롭게도 기록지에는 다음과 같은 메모가 적혀있습니다. “버그가 발견된 첫 실제 사례(First actual case of bug being found.)”
사실, 기술적인 맥락에서 버그라는 단어는 옥스퍼드 영어 사전에는 토마스 에디슨에 기인한다고 적혀있습니다. 옥스퍼드 영어 사전에 따르면, 1889년 3월 11일 Pall Mall Gazette 판에는 다음과 같은 텍스트가 적혀있습니다.
제가 듣기로는 에디슨씨가 측음기에 ‘버그’가 발견되어 두 밤을 샜습니다. 버그는 풀기 어려운 문제를 해결하는 표현으로 어떤 가상의 벌레가 은밀하게 내부로 들어가서 모든 문제를 일으키는 것입니다.
원 “버그”는 실제로 벌레일지 모르지만, 사실 가상으로 보입니다. 불행하게도, 컴퓨터 버그는 가상이지는 않습니다.
컴퓨터 전문용어인 버그는 프로그램이 예기치 않은 방식으로 작동하는 오류입니다. 컴퓨터 프로그램을 작성한다면, 모든 사람이 그렇듯이 조만간 버그를 가질 것입니다. 좋은 프로그래머는 버그를 제거하고, 프로그램이 예기치 않게 작동한다는 것을 알자마자 프로그램을 수정합니다.
러플(RUR-PLE)은 버그를 잘 찾도록 설계되었습니다.
지금 충분한 것보다 많을 수 있습니다. 나중에 버그를 찾고, 고치는 다른 요령을 보여줄 것입니다.