💻전설의 인물들

소프트웨어 엔지니어 · 현대 사회를 움직이는 코드를 작성하고 테스트하고 유지보수하는 직업이며, AI가 자기 일상 업무를 자동화하는 모습을 가장 먼저 지켜보는 직업 중 하나다.

소프트웨어 엔지니어링의 정전은 의학이나 법률보다 짧고 젊으며, 그 상당 부분은 프로그래밍이 중요하다고 아직 생각하지 않던 남성들로 가득한 방에서 일하던 여성들이 써 내려갔다. 여기 소개하는 여덟 명은 결코 만들어지지 않을 기계를 위해 글을 쓴 백작 부인부터 60대에도 여전히 자신의 창조물을 직접 관리하는 일본인 언어 설계자까지 걸쳐 있다.

이들을 잇는 것은 공통된 배경이 아니다—네 개 나라와 180년이 넘는 시간에 걸쳐 있다—공통점은 소프트웨어가 작동하는지 못지않게 어떻게 만들어지는지가 중요하다는 고집이다.

역대 최고의 시상대

그레이스 호퍼
그레이스 호퍼
미국
2
데니스 리치
데니스 리치
미국
1
마거릿 해밀턴
마거릿 해밀턴
미국
3

정점에 오른 8인

1
Photograph of Dennis Ritchie Denise Panyik-Dale · CC BY 2.0

데니스 리치

미국 · 1941–2011

벨 연구소에서 유닉스를 공동 개발하고 C 프로그래밍 언어를 설계해, 업계에 이식 가능한 운영체제와 이후 대다수 언어가 문법을 빌려온 언어를 안겼다. 1983년 켄 톰프슨과 함께 튜링상을 받았으며, 오늘날 실행 중인 대부분의 운영체제는 그의 작업 또는 그 작업에서 파생된 도구로 만들어졌다.

일화

1973년 리치는 톰프슨과 함께 유닉스를 C로 다시 작성해, 하나의 기계에 묶이지 않고 새 하드웨어로 옮겨갈 수 있게 만들었다—유닉스와 그로부터 파생된 모든 것이 어떤 단일 컴퓨터보다도 오래 살아남게 한 결정이었다. 그는 2011년 10월 12일 뉴저지주 버클리 하이츠 자택에서 세상을 떠났는데, 그가 만든 소프트웨어가 스티브 잡스 자신의 제품 안에서도 돌아가고 있었음에도, 그 죽음은 일주일 전 세상을 떠난 잡스의 죽음에 언론 보도에서 크게 가려졌다.

“만들어진 기계보다 오래가도록 만들어라—이식성이 유닉스의 아이디어를 50년간의 하드웨어 변화 속에서도 살아남게 했다.”

튜링상
1983년 (톰프슨과 공동)
C에서 파생된 언어
C++, 자바, C#, 자바스크립트…
벨 연구소 경력
약 40년
2
Photograph of Grace Hopper in Navy uniform James S. Davis · Public domain

그레이스 호퍼

미국 · 1906–1992

1952년 최초의 실제 작동하는 컴파일러를 만든 수학자이자 해군 장교로, 사람이 원시 기계 명령이 아니라 영어에 가까운 언어로 프로그래밍해야 한다고 주장했다. 그 주장은 곧바로 코볼로 이어졌고, 코볼은 70년이 지난 지금도 은행, 항공사, 정부 기관 안에서 돌아가고 있다.

일화

체중 미달로 현역 복무를 거절당한 호퍼는 1943년 해군 예비대에 합류해 하버드 마크 I 프로그래밍을 맡았다. 1947년 9월, 그녀의 마크 II 팀은 계전기에 끼어 있던 나방을 로그북에 테이프로 붙이고 '버그가 실제로 발견된 최초 사례'라고 적었다—호퍼가 '버그'라는 단어를 만든 것은 아니지만, 그녀는 수십 년간 이 이야기를 들려주며 이 분야의 창건 전설로 만들었다.

“기계가 프로그래머의 언어를 말하게 하라, 그 반대만이 아니라.”

해군 경력
43년, 준장
퇴역 당시 나이
79세, 최고령 현역 장교
대통령 자유 훈장
2016년 (사후 추서)
3
Photograph of Margaret Hamilton standing next to a stack of Apollo software listings Daphne Weld Nichols · CC BY-SA 3.0

마거릿 해밀턴

미국 · 1936년생

MIT 계측연구소에서 아폴로 프로그램의 탑재 비행 소프트웨어를 작성한 팀을 이끌었으며, 코드도 하드웨어 엔지니어링과 같은 엄격함과 존중을 받을 자격이 있다고 주장하며 '소프트웨어 엔지니어링'이라는 용어를 대중화한 인물로 널리 인정받는다.

일화

1969년 7월 아폴로 11호의 달 착륙 도중, 잘못 설정된 레이더 스위치가 컴퓨터에 여분의 작업을 쏟아부으면서 유도 컴퓨터가 1202, 1201 경보를 울리기 시작했다. 해밀턴의 팀은 소프트웨어가 과부하 상황에서 충돌하는 대신 우선순위 낮은 작업을 버리도록 만들어 두었기에 착륙 유도는 계속 작동했다. NASA 엔지니어가 손으로 작성한 경보 참고표에 힘입은 관제센터는 착륙 중단 대신 '진행(go)'을 외쳤다.

“모든 게 계획대로만 돌아갈 때뿐 아니라 과부하 상황에서도 우아하게 실패하도록 소프트웨어를 설계하라.”

대통령 자유 훈장
2016년
역사적 임무
1969년 아폴로 11호 착륙
MIT에서의 역할
소프트웨어공학부 부장
4
Photograph of Linus Torvalds Krd (photo) Von Sprat (crop/extraction) · CC BY-SA 4.0

리누스 토르발스

핀란드/미국 · 1969년생

1991년 헬싱키의 한 학생이 취미로 시작한 프로젝트로 리눅스 커널을 만들었고, 14년 뒤에는 약 열흘 만에 Git의 핵심을 작성했다. 두 프로젝트 모두 지금 공개 인터넷 대부분, 세계 휴대폰 대부분, 전문 소프트웨어 팀 대다수의 일상 워크플로 아래 자리 잡고 있다.

일화

1991년 8월 25일, 토르발스는 유즈넷 그룹 comp.os.minix에 '(공짜) 운영체제를 만들고 있는데, 그냥 취미이고 gnu처럼 크고 전문적이지는 않을 것'이라고 올렸다. 전 세계 자원봉사자들이 몇 달 안에 기여하기 시작했다. 2005년, 라이선스 분쟁으로 커널 팀이 기존에 쓰던 소스 관리 도구에서 끊기자, 그는 다른 누군가가 만들어 주기를 기다리는 대신 약 열흘 만에 직접 Git의 핵심을 작성했다.

“공개적으로 자유롭게 공유되고 논쟁 속에서 다듬어진 작동하는 코드가, 폐쇄된 위원회의 완벽한 설계를 이긴다.”

리눅스 커널 시작
1991년, 21세
Git 작성 기간
약 10일, 2005년
리눅스 기반 OS를 쓰는 기기
수십억 대, 모든 안드로이드 포함
5
Photograph of Barbara Liskov Kenneth C. Zirkel · CC BY-SA 3.0

바버라 리스코프

미국 · 1939년생

1970년대 중반 MIT에서 실제 데이터 추상화를 갖춘 최초의 언어 중 하나인 CLU를 만들었고, 이후 엔지니어들이 클래스 계층을 설계하는 방식을 지금도 지배하는 치환 원칙을 정식화했다. 2008년에는 여성으로서 두 번째로 튜링상을 받았다.

일화

리스코프는 1968년 스탠퍼드에서 컴퓨터공학 박사 학위를 받았는데, 미국에서 이 학위를 받은 최초의 여성 중 한 명이었다. MIT에서 그녀는 1974~1975년 CLU를 만든 팀을 이끌며 '객체지향 프로그래밍'이라는 말이 흔해지기 몇 년 전에 이미 추상 데이터 타입을 도입했다. 1987년 한 학회 기조연설에서 그녀는 훗날 리스코프 치환 원칙으로 알려지게 될 내용을 밝혔고, 이는 지금 거의 모든 엔지니어가 배우는 SOLID 설계 원칙의 'L'이 되었다.

“하위 타입은 상위 타입이 한 모든 약속을 지켜야 한다. 그러지 않으면 추상화는 더 이상 당신을 보호하지 못한다.”

튜링상
2008년 (여성 2번째)
컴퓨터공학 박사
1968년, 스탠퍼드
CLU 언어 설계
1974–75년, MIT
6
Portrait of Ada Lovelace Antoine Claudet · Public domain

에이다 러브레이스

영국 · 1815–1852

1843년 러브레이스는 찰스 배비지가 만들지 못한 해석기관에 관한 이탈리아 논문을 번역하고 주석을 달았으며, 가장 긴 주석에서 그 기계가 일련의 수를 어떻게 계산할지 단계별로 서술했다—아직 존재하지 않는 컴퓨터를 위해 쓰인 작동하는 프로그램이었다.

일화

러브레이스의 노트 G는 루이지 메나브레아의 논문 번역에 딸린 일곱 개 주석 중 가장 길었으며, 베르누이 수를 계산하기 위한 해석기관의 작동 카드를 정리했다. 그녀는 발표 전 계산에서 오류를 찾아내 직접 고쳤다. 그녀는 1852년 서른여섯 살에 암으로 세상을 떠났는데, 자신이 써 놓은 것을 실행할 기계가 만들어지기 수십 년 전이었다. 1980년 미국 국방부가 채택한 프로그래밍 언어 에이다는 그녀의 이름을 딴 것이다.

“프로그램은 그것을 돌릴 기계가 존재하기도 전에 설계되고 디버깅될 수 있다.”

주석 발표
1843년
사망 당시 나이
36세
이름을 딴 언어
에이다, 1980년, 미 국방부
7

프랜시스 앨런

미국 · 1932–2020

거의 평생을 IBM 연구소에서 보내며 컴파일러가 처음 만들어내는 문자 그대로의 비효율적인 코드를 엔지니어들이 실제로 출시하는 빠른 프로그램으로 바꾸는 일을 했고, 현대의 최적화·병렬화 컴파일러의 수학적 토대를 놓았다. 2006년 여성으로서는 처음으로 튜링상을 받았다.

일화

앨런은 뉴욕주 페루의 전기도 수도도 없는 낙농장에서 자랐고, 주로 교사 시절 진 대학 학자금 대출을 갚기 위해 1957년 IBM에 입사했다. 1966년 논문 '프로그램 최적화'는 지금도 컴파일러 강의에서 가르치는 그래프 기반 코드 분석 기법을 소개했다. 이후 그녀는 오래된 포트란 프로그램에서 숨겨진 병렬성을 자동으로 찾아내도록 컴파일러를 가르친 PTRAN 프로젝트를 이끌었고, 1989년 IBM 최초의 여성 펠로우가 되었다.

“사람이 쓰는 프로그램과 기계가 실행해야 할 프로그램은 서로 다른 문제다. 둘 다 풀어라.”

튜링상
2006년 (여성 최초)
IBM 펠로우
1989년 (여성 최초)
IBM 연구소 경력
약 45년
8

마츠모토 유키히로

일본 · 1965년생

1993년부터 기계 효율이 아니라 프로그래머의 행복이라는 하나의 뚜렷한 목표를 세우고 루비 프로그래밍 언어를 설계했으며, 초기 트위터, 깃허브, 쇼피파이와 그것이 촉발한 레일즈 시대의 넓은 스타트업 물결을 뒷받침하는 엔진이 되는 것을 지켜보았다.

일화

마츠모토는 1993년 2월 종이에 루비를 스케치하기 시작해 펄, 스몰토크, 아이펠, 리스프, 에이다의 요소들을 섞었고 1995년 공개적으로 배포했다. 그는 컴퓨터를 위한 최적화가 아니라 프로그래머를 행복하게 만드는 것이 목표였다고 말해 왔고, 루비 커뮤니티는 그 철학을 자신들의 모토인 'Matz는 친절하다, 그러니 우리도 친절하다'로 만들었다—언어의 동작 방식이 아니라 기여자들이 서로를 대하는 방식에 관한 규칙이다.

“기계가 계산할 수 있는 것만이 아니라, 사람이 사용하며 느끼는 방식을 위해 도구를 설계하라.”

루비 최초 공개
1995년
루비 설계 기간
1993년부터
역할
루비 수석 설계자

그래프는 이 목록 1위 기준 상대값입니다.

비교 실험실

이름을 켜고 끄면 — 모든 막대가 선택된 그룹의 1위를 기준으로 다시 계산된다.

5 / 8

논쟁

1968년 NATO 회의가 '소프트웨어 엔지니어링'이라는 용어를 '만들어냈는지'는 논쟁거리다. 마거릿 해밀턴을 비롯한 이들은 가르미슈 회의 이전부터 엔지니어링 업계에서 이미 그와 비슷한 표현이 비공식적으로 쓰이고 있었으며, 회의는 이를 발명한 것이 아니라 대중화했을 뿐이라고 말한다.

리눅스를 둘러싼 명명과 공로 배분에도 오래된 논쟁이 있다. 리처드 스톨먼과 자유소프트웨어재단은 토르발스의 커널보다 앞서 존재한 GNU 프로젝트가 주변 도구 체계의 상당 부분을 제공했으므로 이 운영체제를 'GNU/리눅스'라 불러야 한다고 주장한다.

계속 탐색하기

공학·기술 분야의 다른 직업