역사상 가장 비싼 소프트웨어 버그
요약
본 기사는 역사상 가장 큰 소프트웨어 버그 사례로 Knight Capital의 2012년 시스템 오류 사건을 다룹니다. 이 사고로 인해 회사는 단시간에 막대한 손실을 입고 파산했습니다. 이는 금융 시장에서 기술적 결함이 얼마나 치명적인 결과를 초래할 수 있는지 보여줍니다.
핵심 포인트
- Knight Capital은 2012년 시스템 오류로 4억 4천만 달러를 잃었습니다.
- 금융 거래는 빠르고 복잡한 오더 라우팅 시스템에 의존합니다.
- 소프트웨어 버그가 금융 시장의 큰 손실을 야기할 수 있음을 보여줍니다.
요즘은 매주 보안 사고가 발생하고 있어 몇 년 전만 해도 주류 언론의 헤드라인을 장식했을 만한 사건들이 벌어지고 있는 것 같습니다. 최근 큰 사건들로는 JavaScript 생태계에 트로이 목마를 심은 북한 해커들, 벤치마크 답변을 얻기 위해 중범죄를 저지른 OpenAI 모델, 그리고 Anthropic이 새벽 4시에 NPM 소스맵을 통해 Claude 코드를 실수로 오픈소스로 공개했던 사건 등이 있습니다. 하지만 때로는 AI 이전에도 소프트웨어는 항상 덕트테이프로, 그리고 오픈소스 유지보수자들의 빈곤함으로 겨우 지탱되어 왔다는 사실을 기억할 필요가 있습니다.
그리고 이것보다 더 좋은 예시는 14년 전 이달에 한 회사가 '유기적인 인간의 지적 장애'로 스스로에게 입힌 피해입니다. 어느 무작위 수요일, 약 45분 만에 미국 전체 주식 거래량의 10%를 담당했던 Knight Capital이 4억 4천만 달러를 잃었고, 4개월 후에는 부품처럼 팔려나갔습니다. 오늘 영상에서는 역사상 가장 비싼 소프트웨어 버그가 무엇을 야기했는지 살펴보고, 이 기묘한 트릭 하나로 어떻게 1분 만에 1,000만 달러를 잃을 수 있는지 알아보겠습니다.
지금은 2026년 8월 27일이며, 여러분은 The Code Report를 시청하고 계십니다. 2012년에 저희들 대부분이 주유소 지붕 위에서 마야 종말을 기다리고 있을 때, Knight Capital은 매일 200억 달러의 거래를 처리하며 월스트리트 최고의 시장 조성자(market maker)로 조용히 운영되고 있었습니다. 몇 년 전 GameStop-Robinhood 사태를 기억하신다면, Knight Capital은 당시의 시타델과 같았습니다. 여러분이나 저 같은 '에이프(ape)'가 E*TRADE 같은 증권사에서 주식을 매수할 때, 그 증권사가 실제로 거래를 실행하는 것은 아니었습니다.
대신 그들은 종종 Knight에게 이 업무를 넘겼고, Knight는 주문을 처리하고 스프레드(spread) 차익을 챙겨갔습니다. 핵심에는 SMARS라는 시스템이 있었는데, 이는 대규모 주문을 받아 더 좋은 가격으로 시장 전반에 걸쳐 작은 주문들로 잘게 나누어 채우는 오더 라우터(order router)였습니다. 이 시스템은 빠르고 신뢰성이 높았으며, 무엇보다 10년 넘게 돈을 벌어다 주었습니다. 그러다가 2012년 여름, 뉴욕 증권거래소(New York Stock Exchange)는 Knight 같은 회사들이 실제 거래소에 도달하기도 전에 소매 주문(retail orders)을 모두 가로채는 것을 지긋지긋해했습니다.
그래서 그들은 리테일 유동성 프로그램(retail liquidity program)이라는 것을 만들었는데, 이는 본질적으로 약간 더 나은 가격으로 주문들을 되찾아 오기 위해 Knight의 비즈니스 모델과 유사한 자체 버전이었습니다. SEC는 6월에 이를 승인했고 8월 1일을 시행일로 정했습니다. 그리고 아이러니하게도 Knight가 거래소의 가장 큰 고객사 중 하나였기 때문에, 그들은 이것을 구현할 수밖에 없었습니다. 그래서 그들이 그렇게 하기 시작한 것입니다. 그리고 열심히 일하는 블루칼라 미국인들의 생계에 책임이 있는 어떤 대형 금융 기관처럼, 그들은 위엄과 우아함으로 이를 수행했습니다.
농담입니다. 그들은 가능한 가장 게으른 방식으로 그것을 했습니다. 당시 SMRS 코드베이스 깊은 곳에는 2003년 이후로 사용되지 않았지만 삭제되지는 않은 오래된 기능 플래그(feature flag)가 있었습니다. 이 플래그를 작동시키면 Power Peg이라는 테스트 함수가 실행되었는데, 이는 Knight가 주식 가격이 어떻게 반응하는지 지켜볼 수 있도록 여러 매수 주문들을 실행했습니다. 그리고 전체 목적 자체가 가격을 움직이는 것이었기 때문에, 좋은 거래를 하는지에 대한 걱정 없이 현재 시장 가격에 공격적으로 매수하도록 설계되었습니다.
하지만 2012년 엔지니어들이 새로운 소매 유동성 프로그램(retail liquidity program)을 가동해야 했을 때, 기능 플래그(feature flag)를 새로 만드는 대신 기존의 Power Peg 코드를 재사용하고 그 뒤에 숨겨진 로직만 교체했습니다. 만약 이 코드가 단일 서버에서만 실행되었거나, 팀에 DevOps 인력이 있었거나, 아니면 그 간섭하는 아이들과 개가 없었다면 문제없이 넘어갔을 겁니다. 하지만 저는 그 세 가지 모두 사실이 아니었다고 가정합니다. 당시 그들의 배포 전략은 포니 익스프레스(Pony Express)에서 영감을 받았는데, 며칠에 걸쳐 코드를 수동으로 여덟 대의 서버에 복사하는 방식이었습니다.
불행하게도, 소매 유동성 변경을 배포하는 과정에서 그들은 컴퓨터 과학에서 가장 어려운 문제 두 가지 중 하나와 부딪혔습니다. 그리고 여덟 대의 서버 중 일곱 대만 업데이트를 받았습니다. 그러자 2012년 8월 1일, Knight가 기능 플래그(feature flag)를 전환했을 때, 일곱 대의 서버는 주문을 올바르게 처리했지만, 나머지 여덟 번째 서버는 9년간의 휴면 상태였던 Power Peg을 깨웠습니다. 그리고 그 코드는 고점에서 매수하고 저점에서 매도하는 DJ 전략으로 작동하기 시작했습니다. Knight는 즉시 뭔가 이상하다는 것을 알아차렸지만, 상상할 수 있듯이, 그런 상황에 처한 사람은 스스로 빠져나올 좋은 방법을 찾기 어렵습니다.
결국 그들은 패닉에 빠졌고, 문제가 새로운 코드 때문이라고 가정하며 일곱 대의 정상 서버를 롤백(rollback)했고, 이는 결국 여덟 대 모두가 Power Peg으로 돌아갔다는 의미였습니다. 솔직히 말해서, 그것은 시장이 그들에게 했던 행동을 설명하기에 적절한 이름처럼 느껴집니다. 문제를 파악하고 기능 플래그를 다시 전환하는 데 걸린 45분 동안, 그들은 154개 종목에 걸쳐 4백만 건의 거래를 실행했고, 이제는 무려 7백만 달러 규모의 포지션을 소유하게 되었습니다. 심지어 아무 이유 없이 3달러에서 14달러로 오른 Wizard Software Corporation이라는 이름의 임의 주식까지 있었습니다.
먼지가 가라앉자 Knight는 4억 4천만 달러 이상 손실을 입었고 주가는 2일 만에 75%나 하락했습니다. 하지만 4개월 후, 경쟁사 Getco가 이를 인수했고 2017년에는 Virtu라는 또 다른 금융 서비스 회사가 남은 부분을 흡수했습니다. 그래도 좋은 소식은 우리가 소프트웨어 산업에서 확실히 교훈을 얻었고 이후로는 아무 일도 나쁜 일이 일어나지 않았다는 것입니다. 그리고 이것이 오늘 영상의 스폰서인 HyperAgent에 대해 알아야 하는 이유입니다. 인기 있는 오픈소스 상태 라이브러리를 유지하는 것은 대부분 서머타임(daylight savings)에 대한 수천 개의 GitHub 이슈로 인해 허덕이는 세 명의 사람들에게 달려 있습니다.
그래서 저와 공동 관리자들은 이 프로젝트를 살리기 위해 에이전트 팀을 고용했습니다. 새로운 이슈가 접수되면, 한 에이전트가 이를 라벨링하고 버그를 재현한 다음, 수정 사항을 찾아내고 초안 풀 리퀘스트(draft pull request)를 여는 다른 에이전트에게 넘겨줍니다. 이들은 제가 잠든 모든 시간대에 걸쳐 24시간 내내 일하며, 실제로 병합(merge)을 승인해야 할 때만 사람에게 알림을 보냅니다. 모든 관리자가 동일한 에이전트를 공유하기 때문에, 프로젝트 작동 방식을 한 번 가르치면 누구도 두 번 가르칠 필요가 없습니다. 게다가 deep seek와 최고의 오픈 웨이트 모델 지원 덕분에, 심지어 당신의 오픈소스 프로젝트를 유지하는 AI조차도 오픈 소스로 남을 수 있습니다.
그러니 아래 링크에서 사용해보고 무료 크레딧을 받아보세요. 이것으로 코드 리포트(code report)를 마칩니다. 시청해주셔서 감사합니다. 다음 영상에서 뵙겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 YouTube Fireship (개발 트렌드)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기