버그라는 단어는 어디서 왔을까 — 최초의 컴퓨터 버그 이야기
프로그램이 이상하게 동작할 때 우리는 흔히 “버그가 있다"라고 말합니다. 코드를 짜는 사람이든 아니든, 이 단어는 이제 누구나 쓰는 일상어가 됐습니다. 그런데 하필 왜 벌레를 뜻하는 ‘bug’가 소프트웨어 오류를 가리키게 됐을까요.
여기에는 진짜 나방 한 마리가 등장하는 유명한 이야기가 있습니다. 그리고 그 이야기에는 많은 사람이 모르는 반전도 숨어 있습니다. 오늘은 이 짧고 재미있는 어원 이야기를 따라가 보겠습니다.
1947년, 컴퓨터 안에서 나방이 발견되다 #
1947년 9월 9일, 미국 하버드 대학에는 Mark II라는 거대한 컴퓨터가 있었습니다. 지금 우리가 쓰는 컴퓨터와는 전혀 다른 물건이었습니다. 방 하나를 가득 채울 만큼 컸고, 수많은 전자기 릴레이가 딸깍거리며 계산을 수행하는 기계였습니다.
그런데 그날 기계가 이상하게 동작했습니다. 원인을 찾던 기술자들은 70번 릴레이(relay #70, Panel F)에서 뜻밖의 물건을 발견했습니다. 진짜 나방 한 마리가 접점 사이에 끼어 있었던 것입니다. 전기 신호가 오가야 할 곳에 곤충이 끼어 있었으니 기계가 제대로 작동할 리 없었습니다.
로그북에 테이프로 붙은 나방 #
여기서 이 일화가 전설이 된 이유가 나옵니다. 기술자들은 그 나방을 떼어낸 뒤 그냥 버리지 않았습니다. 작업 일지인 로그북에 나방을 테이프로 붙여두고 이렇게 적었습니다.
“First actual case of bug being found.” (실제 벌레가 발견된 최초의 사례)
이 짧은 메모에는 농담이 담겨 있습니다. 기술자들은 이미 기계의 결함을 ‘bug’라고 부르고 있었습니다. 그런데 이번에는 비유가 아니라 말 그대로 진짜 벌레가 나왔으니, “이번엔 진짜로 bug를 찾았다"라며 위트를 부린 것입니다.
이 로그북은 지금도 미국 스미스소니언 박물관에 보관돼 있습니다. 나방이 붙은 그 페이지 그대로 말입니다. 컴퓨터 역사에서 가장 유명한 곤충이라고 할 만합니다.
그레이스 호퍼는 어떻게 등장할까 #
이 이야기에는 거의 항상 그레이스 호퍼(Grace Hopper)라는 이름이 따라붙습니다. 호퍼는 초기 컴퓨터 역사에서 손꼽히는 인물입니다. 훗날 미 해군 제독에 오른 수학자이자 프로그래머였고, Mark II 작업에 참여한 팀의 일원이었습니다.
다만 한 가지 짚고 넘어가야 할 부분이 있습니다. 흔히 “호퍼가 나방을 발견했다"라고 알려져 있지만, 이는 정확한 사실로 보기 어렵습니다. 로그북을 작성한 사람이 호퍼 본인이었다는 근거는 분명하지 않습니다. 그보다는 호퍼와 Mark II 팀 전체가 이 일화를 즐겨 이야기하면서 ‘bug’와 ‘debug’라는 표현을 널리 퍼뜨렸다고 보는 편이 맞습니다.
그러니 호퍼는 이 단어를 만든 사람이라기보다, 이 이야기를 유명하게 만든 전도사에 가깝습니다.
사실 ‘bug’는 그 전부터 있었습니다 #
이제 이 글의 진짜 재미 포인트입니다. 많은 사람이 “1947년 나방 사건에서 버그라는 말이 생겼다"라고 알고 있지만, 이는 사실이 아닙니다.
‘bug’를 기계나 장치의 결함이라는 뜻으로 쓴 용례는 그보다 한참 전부터 있었습니다. 발명가 토머스 에디슨이 대표적입니다. 그는 1870년대에 이미 발명 과정에서 생기는 자잘한 결함과 고장을 ‘bug’라고 불렀습니다. 1878년에 쓴 한 편지에서는 자신의 장치에서 ‘bug’를 찾았다는 표현을 농담 섞어 쓰기도 했습니다.
다시 말해 나방 사건이 일어난 1947년에는 이미 수십 년 동안 엔지니어들이 결함을 ‘bug’라고 불러온 셈입니다. 로그북의 “실제 벌레가 발견된 최초의 사례"라는 메모가 농담으로 읽히는 이유도 여기에 있습니다. 평소에 비유로만 쓰던 단어가 이번엔 진짜 곤충으로 나타났으니까요.
그러니 정확히 말하면, 나방 사건은 ‘bug’라는 단어를 만든 사건이 아닙니다. 이미 있던 표현을 컴퓨터의 역사에 상징적으로 각인시킨 일화입니다. 단어의 탄생이 아니라, 단어가 컴퓨터 세계로 건너온 순간을 보여주는 장면인 셈입니다.
‘debug’라는 말도 여기서 굳어졌습니다 #
오류를 잡는 작업을 우리는 ‘디버깅(debugging)‘이라고 부릅니다. ‘de-‘는 무언가를 제거한다는 뜻이니, ‘debug’는 글자 그대로 벌레를 잡아낸다는 의미가 됩니다.
릴레이에서 나방을 떼어낸 그 행동이야말로 가장 문자 그대로의 디버깅이었던 셈입니다. ‘bug’가 컴퓨터 분야에서 자리를 잡으면서 ‘debug’라는 짝꿍 단어도 자연스럽게 굳어졌고, 오늘날까지 모든 개발자의 일상어로 쓰이고 있습니다.
컴퓨터 역사의 초창기 인물들과 그들이 남긴 문화가 궁금하다면 해커란 무엇인가 글도 함께 읽어보시길 권합니다. 단어 하나에도 사람들의 이야기가 담겨 있다는 점은 그 글에서도 마찬가지입니다.
마무리 #
정리하면 이렇습니다. ‘bug’라는 단어는 1947년 나방 사건에서 태어난 것이 아니라, 그보다 수십 년 전부터 엔지니어들이 결함을 부르던 표현이었습니다. 다만 하버드 Mark II에서 진짜 나방이 발견되고 그 나방이 로그북에 테이프로 붙으면서, 이 단어는 컴퓨터 역사에 잊을 수 없는 상징으로 남게 됐습니다.
오늘 버그를 만나 한숨이 나온다면, 70년 전 릴레이 사이에 끼어 있던 나방 한 마리를 떠올려 보시기 바랍니다. 적어도 여러분의 버그는 떼어낼 핀셋이 필요하지는 않을 테니까요.