오늘날 우리는 컴퓨터 프로그램에 오류가 생길 때 ‘버그가 났다’고 말합니다. 하지만 저는 문득 이런 의문이 들었습니다. 당최 왜 멀쩡한 기계의 오류를 징그러운 벌레, bug라는 명칭으로 부르게 된 것일까요? 단순히 기분 나쁘고 성가신 존재라는 이유일까요? 아니면 우리가 모르는 어떤 실체적인 진실이 숨어 있는 것일까요? 저의 호기심을 따라 이 용어의 기원을 거슬러 올라가 보니 거기엔 정말로 실제 벌레 한 마리가 테이프에 붙은 채 우리를 기다리고 있었습니다.
그 현장은 1947년 9월 9일 미국 하버드 대학교의 전산실이었습니다. 당시 운영팀은 컴퓨터(하버드 마크 II)를 가동하던 중 원인을 알 수 없는 시스템 오류에 직면했습니다. 기계의 내부를 샅샅이 뒤지던 그들은 마침내 70번 패널의 릴레이 사이에 끼어 있는 나방 한 마리를 발견하게 됩니다. 이 나방이 기계의 물리적 접촉을 방해하며 오동작을 일으켰던 것이지요. 하버드 마크 II는 전자기계식 컴퓨터이기 때문에 나방으로 인한 물리적 비접촉이 컴퓨터 오류를 발생시켰습니다.
당시 운영팀은 이 황당한 사건을 기록하기 위해 기계에서 떼어낸 나방을 운영 일지에 테이프로 붙여 남겼습니다. 그리고 그 옆에 ‘버그가 발견된 최초의 실제 사례(First actual case of bug being found)’라는 메모를 덧붙였는데, 이것이 바로 컴퓨팅 역사에서 버그와 디버깅이라는 용어가 공식적으로 박제된 순간입니다.
컴퓨터 과학의 선구자인 그레이스 호퍼가 이 사건을 자주 소개하면서 디버깅, 즉 벌레를 잡는다는 표현이 시스템의 결함을 찾아 수정한다는 의미로 굳어지게 되었습니다. 버그라는 단어 자체가 이 사건에서 처음 쓰인 것은 아닙니다. 이미 19세기부터 공학이나 전기 분야에서는 기계적인 결함을 뜻하는 속어로 버그라는 말을 사용했습니다. 1878년 토머스 에디슨이 언급하기도 했답니다. 1947년의 그 나방 사건이 이 용어를 컴퓨터 역사의 상징적인 장면으로 만들어버린 것이죠.
1947년의 버그가 물리적인 나방이었다면, 오늘날의 버그는 수천만 줄의 복잡한 코드 사이에 숨어 우리를 괴롭히는 무형의 유령과 같습니다. 이제 세상은 또 한 번의 변곡점을 지나는 중입니다. 그동안 컴퓨터 속의 소프트웨어 형태로 존재하던 인공지능이 이제는 아틀라스와 같은 금속의 몸을 얻어 물리 세계로 걸어 나오고 있습니다. 피지컬 AI의 시대가 도래했습니다. 점점 현실과 디지털 세계의 경계가 모호해지는 느낌은 저만 드는 것일까요?