
냉전이 한창이던 시절, 미 공군의 B-52 폭격기는 레이더에 걸리지 않고 수천 킬로미터를 날아가야 했어요. GPS가 없던 시대라 어떻게 경로를 찾았을까요? 바로 밤하늘의 별을 보고 자기 위치를 계산하는 '천측 항법(stellar navigation)'이었습니다. 비행기 꼭대기에 망원경이 달려 있어서, 정해진 별을 추적하면서 그 각도로 자신의 위도와 경도를 계산했거든요.
재밌는 건, 이 모든 계산이 디지털 컴퓨터가 아니라 순수한 기계장치로 이뤄졌다는 거예요. 블로거 Ken Shirriff가 최근 B-52 별 추적기 안에 들어 있던 '전기기계식 각도 컴퓨터(electromechanical angle computer)'를 뜯어서 분석한 글을 올렸는데, 그 정교함이 어마어마합니다.
전기와 기어가 만나 삼각함수를 푼다
이 각도 컴퓨터의 핵심은 '싱크로(synchro)'와 '리졸버(resolver)'라는 부품이에요. 이게 뭐냐면, 회전하는 축의 각도를 전기 신호로 바꿔주는 장치인데, 쉽게 말하면 각도를 사인·코사인 값으로 출력해주는 아날로그 변환기입니다. 지금 우리가 소프트웨어로 Math.sin(x) 한 줄 쓰면 끝나는 그 계산을, 당시에는 코일과 회전 자석으로 구현한 거예요.
더 놀라운 건 '기계식 차동기어(mechanical differential)'라는 부품인데, 두 개의 회전 입력을 받아서 그 합이나 차를 기어로 계산해 출력해요. 자동차 뒷바퀴에 쓰이는 차동기어 원리와 비슷한데, 이걸 계산용으로 활용한 거죠. 여기에 서보모터(servo motor) 가 들어가서, 오차를 감지하면 자동으로 기어를 돌려서 값을 맞춰줍니다. 피드백 루프가 완전 기계로 돌아가는 셈이에요.
왜 디지털이 아니라 아날로그였을까
1960년대 초반에는 트랜지스터 기반 컴퓨터가 막 등장하던 시기라서, 진동과 극한 온도를 견디며 수십 시간 비행 중에도 고장 없이 돌아가는 디지털 계산기를 만들기가 어려웠어요. 반면 이런 전기기계식 장치는 수십 년간 검증된 기술이었고, 정밀도도 충분했습니다. 각도 오차가 분(arcminute) 단위였다니, 요즘 디지털 센서와 비교해도 꽤 훌륭한 수준이에요.
이 시스템은 본질적으로 '좌표계 변환'이라는 수학 문제를 풀고 있어요. 비행기의 자세(피치·롤·요)에 따라 별이 하늘에서 보이는 위치가 달라지는데, 이걸 지상 좌표계로 다시 돌려놓아야 내 위치가 나오거든요. 회전 행렬을 곱하는 연산인데, 그걸 전부 기어와 코일로 구현한 겁니다. 말 그대로 '물리적으로 행렬곱을 돌리는' 컴퓨터였던 셈이죠.
지금 개발자 관점에서 보면
우리가 매일 쓰는 '추상화 계층(abstraction layer)'이라는 개념이 얼마나 감사한지 새삼 느끼게 하는 이야기예요. 지금은 GPS 라이브러리 한 줄 호출하면 위도·경도가 튀어나오지만, 그 아래에는 수십 년간 쌓인 공학적 노력이 깔려 있거든요. 또 하드웨어와 소프트웨어의 경계가 지금처럼 명확하지 않던 시절에는, 알고리즘 자체를 물리적으로 '구현'했다는 점이 흥미롭습니다.
요즘 임베디드나 로봇 공학 쪽으로 관심 있는 분들이라면, 이런 아날로그 컴퓨팅의 역사를 한 번쯤 들여다볼 가치가 있어요. FPGA나 아날로그 회로 설계를 할 때, 이 시절 엔지니어들이 어떤 방식으로 계산을 '물리화'했는지 알면 관점이 넓어지거든요. 특히 요즘 뉴로모픽 칩이나 아날로그 AI 가속기 얘기가 다시 나오고 있는데, 역사는 돌고 돈다는 게 이런 거구나 싶습니다.
한 줄로 정리하면, B-52 별 추적기는 트랜지스터 없이 삼각함수와 좌표 변환을 풀어낸 기계식 슈퍼컴퓨터였어요. 여러분은 만약 GPS가 없는 세상에 떨어진다면, 어떤 방식으로 위치를 찾으실 건가요?
🔗 출처: Hacker News
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공