영화 <히든 피겨스>(Hidden Figures)가 한국에서는 3월 23일 개봉했다. 일반적으로는 이 영화를 1960년대 NASA를 배경으로 인종차별에 대해 이야기하는 작품으로 소개하지만, 이 영화는 한편으로는 프로그래머라는 직군이 탄생하는 순간을 그리고 있는 작품이기도 하다. 영화의 구체적인 내용을 언급하는 대신 최초의 프로그래머에 대해 이야기해보겠다.
역사상 최초의 프로그래머는 에이다 러브레이스 백작부인(Ada Lovelace, 1815-1852)이다. 그녀는 1842년 배비지가 설계한 해석기관을 이용해 베르누이 수를 계산하게끔 하는 알고리즘을 제안했는데, 이것이 최초로 컴퓨터를 위해 작성된 의미있는 프로그램인 것이다. 하지만 여기서 100년이 더 지난 뒤에야 프로그래머라는 직업이 생길 수 있었다.
프로그래머가 있으려면 우선 컴퓨터가 보급되어야 한다. 배비지의 해석기관은 최초의 컴퓨터로 불리지만 끝까지 미완성으로 남은 복잡한 기계였다. 20세기 초에 시중에서 쓰였던 것은 기계식 계산기였는데, 이는 마치 타자기처럼 묵직한 크기였지만 사칙연산 같은 간단한 계산밖에 할 수 없는 것이었다. 따라서 좀더 복잡한 계산을 하려면 계산기 앞에 앉아 수식을 사칙연산으로 근사화시킨 다음 그것을 일일이 입력해줄 사람이 필요했다. 당시에는 이렇게 전문적으로 계산을 하는 직업을 가진 사람들을 ‘컴퓨터(computer)’, 즉 계산수라고 불렀다. 아직 전기로 동작하는 컴퓨터가 등장하기 전의 일이다. (300년 전 항해사들에게 ‘컴퓨터’가 필요했던 이유)
사회가 복잡해지고 과학이 발달하면서 20세기 초 서양 사회는 회계 결산부터 미사일 궤적까지 점점 다양한 분야에서 계산을 할 사람이 필요하게 되었다. 여성들의 사회 진출이 거의 불가능했던 당시에 계산수는 고학력 여성들이 가질 수 있는 좋은 직업 중 하나였다. 계산수는 복잡한 수학 지식이 요구되는 전문직이었지만 마치 타이피스트처럼 시키는대로 입력을 하는 반복노동직이라는 인식이 있어서 상대적으로 대우를 덜 받았고 남성들이 기피했던 것이다. 특히 2차 세계대전 때 대다수의 남성들이 징병을 당하면서 계산수의 대부분은 여성들이 맡게 되었다.
1943년 미국 육군은 군사 목적의 계산을 하기 위한 기계를 개발하는데, 이것이 최초의 전기식 컴퓨터 중 하나로 불리는 에니악(ENIAC)이다. 50평짜리 방을 차지하는 30t짜리 이 기계를 다루기 위해 미군은 군 소속의 계산수들을 차출해서 프로그래밍을 맡겼는데, 이들이 바로 최초의 직업 프로그래머이다. 계산수들은 수학적 지식과 주어진 함수의 계산을 빠르고 정확하게 하기 위한 노하우가 있었으며 여러 종류의 계산하는 기계를 다뤄본 경험이 있었기 때문에 당시의 계산수가 프로그래머가 되는 것은 자연스럽다고 볼 수 있다. 그렇게 뽑힌 최초의 ENIAC 프로그래머는 케이 맥널티(Kay McNulty, 1920-2006), 베티 제닝스(Betty Jennings, 1924-2011), 베티 스나이더(Betty Snyder, 1917-2001), 말린 멜처(Marlyn Meltzer, 1922-2008), 프랜 빌러스(Fran Bilas, 1922-2012), 루스 릭터먼(Ruth Lichterman, 1924-1986)으로, 6명 전부 여성이었다.
ENIAC은 혁신적인 발명품이었지만 구조 자체는 사칙연산을 하는 기계식 계산기에서 크게 벗어나지 않았다. 전기 신호가 들어올 때마다 10진수로 된 각 자릿수에 1씩 더해주는 덧셈기 수십 대와 그밖의 특수한 기능을 하는 기계 몇 대로 구성되어 있었다. 이것으로 의미있는 계산을 하려면 기계들의 입출력을 전선을 직접 꽂아서 이어주어야 한다. 당시의 소프트웨어는 디스크나 메모리 상의 파일에 저장된 것이 아니라 제어반에 꽂혀있는 전선과 스위치로 되어 있었던 것이다. 물론 프로그래밍 언어라는 개념도 나오기 전이었다. 많은 언어에서의 if-else에 해당하는 조건분기를 구현하기 위해 당시 개발자들은 데이터 출력 단자에서 나오는 신호를 제어단자에 직접 연결해버렸다. 처음부터 조건분기라는 개념을 상정하고 설계한 하드웨어가 아니었던 것이다.
6명의 프로그래머들은 ENIAC의 발전과 함께하며 컴퓨터 과학의 중요한 개념들을 개척했다. 전선과 스위치였던 ENIAC의 소프트웨어를 메모리 상에 저장하고 덧셈기 몇 개를 레지스터로 바꾸는 등 기계가 개선되자, 프로그래머들은 프로그램 카운터(program counter)를 조작해서 서브루틴(subroutine)을 구현하는 법을 발명해냈고 메모리나 점프 위치를 간접주소(indirect addressing)를 써서 지정하는 방법을 생각해냈다. 이것은 주어진 문제를 좀더 체계적으로 구조화하는 방법, 그리고 좀더 효율적으로 기계에 실행시키는 방법을 계속 고민한 결과라 할 수 있다. 이들 덕분에 미국 육군은 ENIAC을 이용해 탄도역학 계산이나 몬테카를로 방법을 통한 핵분열 시뮬레이션 등 복잡한 계산을 할 수 있었다.
하지만 유감스럽게도 이들의 활약은 오랜 시간동안 지워져 있었다. 여성 프로그래머들은 ENIAC 50주년 기념행사에 제대로 초청받지 못했다. 기계를 조작하는 여성들의 사진이 남아있었지만, 연구자 중에는 이들을 가전제품 광고에 으레 등장하는 여성 모델로 잘못 생각하고 제대로 조사하지 않은 사람도 있었다. 영화로 돌아가서, <히든 피겨스>라는 제목은 숨겨진 숫자, 그리고 숨겨진 인물이라는 두 가지 뜻이 있다. 뛰어난 재능으로 기술의 발전에 기여했지만 차별 때문에 조명받지 못했던 인물들의 이야기인 것이다.