지난주: https://github.com/bhoult/correlation
20여 년 전, 친구들과 커피숍에 앉아 있었습니다. 대학을 갓 졸업하고 첫 '진짜' 직장을 얻었을 때였죠. 어떻게 하면 부자가 될 수 있을지 고민했습니다. 당시 저는 꽤 당연해 보이는 아이디어를 하나 가지고 있었는데, 주식 시장의 움직임을 예측할 확률을 조금이라도 높이는 간단한 방법이었습니다. 물론, 당시 지배적인 의견은 이미 여러 번 시도되었고 불가능하다고 증명되었다는 것이었습니다. 하지만 우리는 궁금했습니다. 만약 그게 정말 작동한다면, 왜 남들에게 알려주겠어? 그냥 조용히 자기들끼리 써서 부자가 되겠지. 그래서 시도해보지 않고는 절대 알 수 없을 거라 생각했습니다.
핵심 아이디어는 이랬습니다. 시장 상황에 따라 기업들이 연관되어 있다면, A 기업의 가치가 일정 기간 오르거나 내릴 때, 다른 기업들도 나중에 같은 움직임을 보이지 않을까? 예를 들어 RAM 부족 사태가 발생하면 분명 많은 기업에 영향을 미칠 겁니다. 하지만 대기업에 영향을 주기 전에 일부(아마도 소규모 기업들)에 먼저 영향을 주겠죠. 모든 기업 간의 수학적 상관관계를 계산하고, 정치나 날씨 패턴 같은 다른 조건까지 고려할 수 있다면, "A가 올랐으니 4개월 뒤 B도 오를 확률이 3% 있다" 같은 말을 할 수 있지 않을까 하는 거였죠.
물론, 주식 시장 전체의 모든 오프셋에 대해 상승과 하락을 측정하는 계산량은 1.5조 회 정도였습니다. 펜티엄 II 컴퓨터들로 가득 찬 방 하나를 돌려도 몇 년은 걸릴 테니, 알아내기 위한 투자치고는 꽤 컸죠.
우리 중 몇몇은 프로그래머였기에 2000년대 초반에 실제로 시작했습니다. 당시엔 꽤 어려웠고 다들 바빠서 시도들이 흐지부지됐죠. 하지만 컴퓨터는 빨라졌고 AI의 등장으로 프로그래밍은 훨씬 쉬워졌습니다. 약 1년 전, 저는 (Claude 4.0과 함께) 개념 증명을 만들어냈고, 최신 24코어 데스크톱의 Ruby 환경에서도 상관관계를 계산하는 데 15년이 걸린다는 걸 알게 됐습니다. 그래서 핵심 계산을 인라인 C로 바꿨더니, CPU를 풀가동하며 팬이 미친 듯이 도는 소리를 6개월 동안 들어야 한다는 걸 알게 됐죠. 컴퓨터로 다른 일도 해야 했기에 며칠 만에 포기했습니다.
지난주에 (Claude 5.5를 사용해) Rust로 다시 시도해보기로 했습니다. 이번에는 모든 코어를 풀가동했습니다. 모든 CPU, 모든 GPU, 심지어 왜 있는지 모를 데스크톱의 작은 NPU까지요. 이 총 17분 만에 끝나는 걸 보고 충격을 받았습니다. 그래서 17분을 기다렸죠.