테크-인문학 사전 1화
프로그램의 결함을 의미하는 '버그'라는 말의 기원에 대해 우리가 알고 있는 이야기는 이렇습니다. 1947년 9월 9일, 하버드 대학교. 마크 II 컴퓨터가 오작동을 일으켰습니다. 엔지니어들이 원인을 추적한 끝에, 70번 릴레이(전기신호로 작동하는 전자석 스위치)에 끼어 있는 나방 한 마리를 발견했어요. 해군 제독이자 프로그래머였던 그레이스 호퍼는 이 나방을 핀셋으로 꺼내 운용 일지에 테이프로 붙이고 다음과 같이 적습니다.
First actual case of bug being found.
진짜 벌레가 발견된 최초의 사례.
그리하여 이후로도 '버그'는 기계적 결함을 넘어 소프트웨어의 논리적 오류를 일컫는 관용어로 자리잡았다는 거죠. 이 나방과 운용 일지는 지금도 스미소니언 박물관에 전시되어 있고, 대부분의 사람들이 이 이야기를 '버그'라는 말의 탄생 설화로 알고 있습니다.
그런데 이 이야기 자체에 '버그'가 있습니다. 사실 이 일지의 문구는 필적 등으로 미루어보아 호퍼가 직접 쓴 것이 아니라는 주장이 제기되어 왔어요. 스미소니언 측도 "이 일지는 아마 호퍼의 것이 아닐 것"이라고 밝히고 있고요. 그리고 무엇보다 흥미로운 부분은 "진짜(actual)"이라는 단어가 쓰였다는 것입니다. 이 형용사는 'bug'라는 표현이 그 나방이 발견되기 한참 전부터 이미 쓰이고 있었다는 사실을 말해줍니다. "진짜 벌레"가 나와서 놀라워하는 뉘앙스죠. 그러니까 이 일화는 '버그'의 탄생 스토리가 아닌 거예요.
그렇다면 원래 이 단어는 어디서 온 걸까요? 기록상 'bug'를 기계 결함의 의미로 쓴 가장 유명한 인물은 토머스 에디슨입니다. 1873년, 에디슨은 하나의 전선으로 네 개의 전보를 동시에 보내는 사중 전신기를 개발하고 있었어요. 회로의 전류 방향이 바뀔 때 가짜 신호가 발생하는 문제가 있었는데, 에디슨은 이 가짜 신호를 격리하는 장치를 만들어 "bug trap"(벌레 덫)이라 불렀습니다.
그는 1878년에는 웨스턴 유니온 사장 윌리엄 오턴에게 보낸 편지에서 이런 농담을 하기도 합니다. "당신 말이 어느 정도 맞았소. 내 장치에서 '버그'를 하나 찾았는데, 전화기 자체의 문제는 아니었소. 그 벌레의 학명은 '콜벨룸(callbellum)'이었소." callbellum은 실제 곤충 분류명이 아니라 에디슨이 'call'(전화)과 라틴어 'bellum'(전쟁)을 합쳐 만든 말이었습니다. '버그'를 잡아내는 고단한 과정을 전쟁에 빗댄 거죠.
정확히 해 두자면, 에디슨이 이 표현을 발명한 건 아닙니다. 버그는 19세기 중반 영미권 기술자들 사이에서 이미 통용되던 속어였어요. 기계 안에 벌레가 들어가면 오작동을 일으킨다는 경험에서 비롯된 비유인데, 실제로 초기 전기·기계 장치에 곤충이 들어가 문제를 일으키는 일이 왕왕 일어났다고 합니다. 전구의 필라멘트 주변으로 벌레가 날아들거나 릴레이 접점에 나방이 끼어들고, 의도치 않은 가짜 신호가 발생하는 등의 모든 기계적 결함이 이미 '버그'라는 은어로 불리고 있었죠.
그러니까 정리하면 이래요. 처음에는 진짜 벌레가 기계에 들어가는 문제가 있었고, 그로 인해 벌레가 기술적 결함을 뜻하는 은유로 추상화되었는데, 약 반세기가 지나 다시 "진짜 벌레"가 나타난 겁니다. 그러므로 1947년에 나방을 발견한 호퍼 팀의 엔지니어들에게 'bug'는 이미 '죽은 은유'였습니다. '책상 다리'라는 낱말에서 사람의 진짜 다리를 연상하지 않는 것처럼요. 벌레의 이미지는 오래전에 증발하고 그냥 "결함"이라는 뜻만 남아 있었죠. 호퍼의 팀이 그 나방을 일지에 붙이고 기록을 남긴 건, 이 언어적 우연이 얼마나 재미있는 사건인지 그들 스스로도 알았기 때문일 겁니다. 농담이 현실이 되어버린 순간을 기록해두고 싶었던 겁니다.
그런데 이후에 벌어진 일이 더 흥미롭습니다. 이 이야기가 전해지면서, 마치 'bug'라는 용어 자체가 이 나방 사건에서 유래한 것처럼 알려지기 시작한 거예요. 호퍼 본인도 이 이야기를 여러 강연에서 반복했고, 수십 년에 걸쳐 "최초의 컴퓨터 버그" 전설이 만들어졌습니다.
기술 문화에는 이런 기원 신화를 만들어내는 경향이 있어요. 복잡하고 점진적인 역사보다는, 하나의 드라마틱한 순간을 좋아합니다. 스티브 잡스의 차고, 마크 저커버그의 기숙사 방, 그리고 호퍼의 나방. 실제 역사는 언제나 더 지루하고 일관성 없이 흩어져 있지만, 신화는 하나의 장면으로 응축되어야 하니까요. 테이프로 붙인 나방 한 마리의 이미지는 너무 강력했고, 좋은 이야기가 정확한 역사를 이겼습니다.
'bug'에서 파생된 '디버그(debug)'라는 단어도 생각해볼 만합니다. 벌레를 잡는다(de-bug)는 이 표현은, 원래의 은유가 살아있을 때는 자연스러운 파생이었어요. 기계에서 벌레를 제거한다는 물리적 행위를 가리켰으니까요.
그런데 소프트웨어 시대로 넘어오면서 상황이 묘해집니다. 소프트웨어 버그는 물리적 실체가 아닙니다. 제거할 "벌레"가 없어요. 논리적 모순, 잘못된 참조, 예외처리 실패, 더 단순하게는 오타(!) 같은 것들이죠. 결국 사람의 실수임에도 불구하고 우리는 여전히 "벌레를 잡는다"고 말합니다. 이 표현은 소프트웨어의 결함을 외부에서 침입해 기계를 고장내는 이물질처럼 느끼게 만듭니다. 하지만 그런 건 없어요. 대부분의 경우 '버그'는 내재적 결함이자, 품질 관리의 실패입니다.
만약 '버그'라는 단어가 아니었다면, 예컨대 '실수(mistake)'나 '결점(flaw)' 같은 단어를 썼다면 어땠을까요? 그랬다면 소프트웨어 품질에 대한 문화적 태도, 즉 "소프트웨어에 버그는 불가피하다"는 인식이 조금은 다르게 자리잡았을지도 모릅니다. "버그가 있다"와 "내가 실수했다"는 같은 현상을 가리키지만, 거기서 환기되는 책임의 무게는 확연히 다르게 느껴져요. 실수는 인재(人災)이지만, 버그는 마치 전구에 날아드는 나방처럼 확률적으로 발생하는 자연 현상인 것입니다.
'bug'라는 단어 자체의 더 오래된 과거를 추적해보면 더 흥미로운 층위가 드러납니다. 오늘날 이 단어는 당연히 벌레를 떠올리게 하지만, 사실 벌레라는 뜻이 정착한 건 1620년대에 이르러서입니다. bug의 직계 조상인 중세 영어 bugge는 허깨비, 유령, 사람을 겁먹게 하는 존재를 뜻했습니다. 밤에 말을 놀라게 하는 정체불명의 것, 아이들을 겁주는 허깨비 정도의 의미였죠. 아이들을 납치하는 전설 속 괴물인 버그베어(bugbear) 역시 이 계보 위에 서 있고, 셰익스피어도 《겨울 이야기》에서 bug를 "공포의 대상"이라는 뜻으로 썼습니다.
그러니까 bug의 의미 이동은 이중으로 일어난 셈입니다. 첫 번째는 유령에서 벌레로. 보이지 않는 공포의 대상이 구체적인 작은 생물로 축소되었습니다. 두 번째는 벌레에서 결함으로. 구체적인 생물이 다시 추상적인 기술 용어로 변환되었어요. 흥미로운 건, 이 두 번의 의미 이동을 거친 끝에 'bug'가 도착한 자리가 출발점과 묘하게 닮아 있다는 점입니다. 소프트웨어 버그란 결국 어디서 나타날지 모르고, 왜 나타나는지 즉각적으로는 알 수 없으며, 시스템 안을 보이지 않게 배회하는 존재니까요. 중세의 bugge가 밤길에서 말을 놀라게 하던 것처럼, 오늘날의 bug는 배포 직전의 개발자를 놀라게 합니다.
어쩌면 기술자들이 이 단어를 선택한 데에는, 단순히 벌레가 기계에 들어간다는 경험만이 아니라, 결함이라는 것이 가진 유령 같은 속성이 은연중에 반영된 건 아닐까요. 원인을 알 수 없이 나타났다 사라지고, 재현하려 하면 모습을 감추는 그런 성질. 그리고 우리가 그 유령에게 '벌레'라는 이름을 붙인 건, 유령은 잡을 수 없지만 벌레는 잡을 수 있기 때문인지도 모릅니다. 릴레이에서 나방을 핀셋으로 집어내듯, 결함에도 반드시 물리적 원인이 있고, 그것을 찾아내면 해결할 수 있다는 믿음. 보이지 않는 것에 보이는 이름을 붙이는 것은 언제나 그것을 다룰 수 있게 만들려는 시도입니다.
그렇게 보면 1947년의 그 나방은, 죽은 은유가 되살아난 유머러스한 우연 이상의 것이었을 수도 있어요. 수십 년간 유령처럼 떠돌던 결함에, 드디어 벌레라는 몸이 주어진 순간. 엔지니어들이 그 나방을 일지에 붙이고 "진짜 벌레가 발견되었다"고 적었을 때, 거기에는 안도 같은 것이 섞여 있지 않았을까요. 보이지 않는 문제가, 마침내, 핀셋으로 집어 올릴 수 있는 것이 되었으니까요.
"테크-인문학 사전"은 테크 용어의 인문학적 어원을 추적하는 시리즈입니다. 우리가 매일 쓰는 기술 용어들이 신화, 철학, 문학, 역사에서 건너온 과정을 따라가며, 그 차용이 드러내는 의미의 변형과 긴장을 살펴봅니다.
Alexander Magoun & Paul Israel, "Did You Know? Edison Coined the Term 'Bug'", IEEE Spectrum (2013)
Thomas A. Edison Papers, Rutgers University, "Edison Invents the Technical 'Bug'"
Thomas A. Edison Papers, Rutgers University, "Quadruplex Telegraph"
Atlas Obscura, "Thomas Edison Was an Early Adopter of the Word 'Bug'"
Smithsonian National Museum of American History, "Log Book With Computer Bug"
Computer History Museum, "September 9: First Instance of Actual Computer Bug Being Found"
Computerworld, "Moth in the Machine: Debugging the Origins of 'Bug'"
William Shakespeare, The Winter's Tale, Act 3 Scene 2 — Folger Shakespeare Library