마거릿 해밀턴
![](/images/thumb/4/4e/%EB%A7%A4%EC%82%AC%EC%B6%94%EC%84%B8%EC%B8%A0_%EA%B3%B5%EA%B3%BC%EB%8C%80%ED%95%99%EA%B5%90_%EA%B8%80%EC%9E%90.png/300px-%EB%A7%A4%EC%82%AC%EC%B6%94%EC%84%B8%EC%B8%A0_%EA%B3%B5%EA%B3%BC%EB%8C%80%ED%95%99%EA%B5%90_%EA%B8%80%EC%9E%90.png)
마거릿 해밀턴(Margaret Hamilton, 1936년 8월 17일 출생)은 미국의 컴퓨터 과학자이자 엔지니어이다. 또한 기업가이기도 한데, 미국 항공우주국(NASA)의 아폴로(Apollo) 프로그램을 위한 온보드 플라이트 소프트웨어(On-Board Flight Software)를 개발한 매사추세츠 공과대학교(MIT) 계측 연구소의 소프트웨어 엔지니어링 부서의 이사를 맡았다.
목차
생애[편집]
마거릿 해밀턴은 인디애나주 파올리(Paoli)에서 케네스 헤필드(Kennet Heafield)와 루스 에스터 헤필드(Née Divington) 사이에서 태어났다. 데이빗(David)과 캐스린(Kathryn)이라는 2명의 남동생이 있었다. 마거릿 해밀턴은 가족과 함께 미시간(Michigan) 주로 이사하여 1954년, 해당 지역에 있는 핸콕(Hancock) 고등학교를 졸업했다. 1955년 마거릿 해밀턴의 어머니도 학생 신분으로 학교를 다니고 있었는데, 마거릿 해밀턴은 미시간 대학에서 수학을 공부하다가 어머니가 다니고 있던 얼햄 대학(Earlham College)으로 편입했다. 1958년에 부전공으로 철학을 공부하며 수학 학사학위를 받았다. 마거릿 해밀턴은 이론수학(abstract mathematics)에 관심이 있어 수학 교수가 되고 싶었다. 얼햄 대학의 수학 부장이었던 플로렌스 롱(Florence Long)은 그런 마거릿 해밀턴에게 많은 도움을 제공해 줬다. 마거릿 해밀턴의 아버지는 철학자 겸 시인이었고, 할아버지는 학교장 겸 퀘이커(Quaker) 교도 목사였다. 그래서 아버지와 할아버지는 마거릿 해밀턴에게 부전공이었던 철학도 마거릿 해밀턴의 연구에 포함하도록 영감을 주었다고 한다.[1]
마거릿 해밀턴은 1976년 캠브리지(Cambridge)에 호스(Higher Order Software)를, 1986년 해밀턴 테크놀로지(Hamilton Technologies)를 설립했다. 마거릿 해밀턴은 약 60개의 프로젝트와 6개의 주요 프로그램을 130개 이상의 논문, 절차, 보고서를 발표했으며, 소프트웨어 엔지니어링으로 공로를 인정받은 사람들 중 한 명이다. 마거릿 해밀턴은 2016년 11월 22일 미국 항공우주국의 아폴로 문(Moon)의 임무용 온보드 플라이트 소프트웨어 개발에 앞장선 공로로 버락 오바마(Barack Obama) 대통령으로부터 대통령 훈장(Presidential Medal of Freedom)을 받았다.[1]
수상[편집]
- 1986년 : 컴퓨터 분야의 여성 협회로부터 어거스타 에다 러브레이스 상(Augusta Ada Lovelace Award)을 받았다.
- 2003년 : 과학자 기술 기여로 미국 항공우주국 예외 우주법 상(Augusta Ada Lovelace Award)을 받았다. 이 상에는 3만 7200달러가 포함되어 있는데 이는 미국 항공우주국 역사상 가장 큰 금액이었다.
- 2009년 : 얼램 칼리지(Earlham College)로부터 우수졸업상(Outstanding Alumni Award)을 받았다.
- 2016년 : 미국 대통령 버락 오바마로부터 통령 훈장(Presidential Medal of Freedom)을 받았다.
- 2017년 04월 28일 : 컴퓨터 아이디어가 세상을 바꾼 뛰어난 남녀들을 기리는 컴퓨터 역사 박물관 펠로우상(Computer History Museum Fellow Award)을 받았다.
- 2018년 : 카탈로니아 공과대학교(Polytechnic University of Catalonia)으로부터 명예방사학위를 받았다.
- 2019년 : 워싱턴상(The Washington Award)을 받았다.[1]
주요 활동[편집]
해밀턴 테크놀로지[편집]
1986년 3월, 마거릿 해밀턴은 매사추세츠주 캠브리지에 해밀턴 테크놀로지를 설립했다. 이 회사는 유니버설 시스템 언어(USL; Universal Systems Language)와 관련된 자동화 환경인 001툴스윗(001 Tool Suite)를 중심으로 시스템 설계 및 소프트웨어 개발을 위한 사실이전의개발(DBTF)이라는 패러다임을 바탕으로 개발되었다.[1]
호스 설립[편집]
1976년 해밀턴은 세이던 젤딘(Saydean Zeldin)과 함께 호스(Higher Order Software, HOS)를 공동 설립하여 아폴로 프로그램을 함께 연구개발하는 매사추세츠 대학에서의 경험을 살려 오류 방지 및 내결함성에 대한 아이디어를 더욱 발전시켰다. 그들은 매사추세츠 대학에서 개발한 호스 방법론에 근거해서 유에스이(USE)라는 IT 제품을 만들었다. 미국 공군이 통합전산보조제조(ICAM) 프로젝트에 개발한 모델링 언어 아이디이에프(IDEF)의 자동 버전인 씨아이디이에프(C-IDEF)를 공식화하고 구현하는 프로젝트를 비롯해 수많은 정부 프로그램에서 활용되었다. 그 사례로 1980년에 이스라엘 컴퓨터 과학자 데이비드 해럴(David Harel)은 호스에서 파생된 '구조화된 프로그래밍 언어(structured programming language)'에 대해 발표했으며, 다른 사람들은 실시간 임베디드 시스템의 설계를 공식화하기 위해 호스를 사용했다. 마거릿 해밀턴은 1984년까지 호스의 최고경영자였고 1985년에 회사를 떠났다.[1]
MIT 연구소[편집]
날씨 예측 소프트웨어 개발[편집]
보스턴에서 마거릿 해밀턴은 처음에 브랜다이스 대학교(Brandeis University)의 이론수학 대학원 과정에 등록하려고 했으나, 1959년 매사추세츠 대학의 기상학과에 있는 에드워드 노튼 로렌츠(Edward Norton Lorenz)와 일하기 위해 대학원 등록을 하지 않았다. 마거릿 해밀턴은 마빈 민스키(Marvin Minsky)의 프로젝트 맥(MAC)에서 날씨 예측, LPG-30 프로그래밍, PDP-1 컴퓨터의 소프트웨어를 개발했다. 그래서 덕분에 마거릿 해밀턴의 연구는 혼돈이론에 관한 로렌츠(Lorenz) 출판물에 많은 도움이 된다.[1] 그 당시, 컴퓨터공학과와 소프트웨어공학은 크게 확립된 학문이 아니었다. 그래서 프로그래머들은 실제 경험을 가지고 그 일을 배웠어야 했다. 마거릿 해밀턴은 1961년 여름이 오고서야 마빈 민스키의 프로젝트에서 나와 다른 프로젝트로 옮겨갔으며 그녀의 후임으로 엘렌 페터(Ellen Fetter)를 고용하고 훈련시켰다.[1]
반자동 지상환경 프로젝트[편집]
마거릿 해밀턴은 1961년부터 1963년까지 매사추세츠 대학 링컨연구소(Lincoln Lab)에서 반자동 지상환경(SAGE) 프로젝트에 참여했는데, 공군들이 침입하는 항공기를 찾기 위해 사용하는 'AN/FSQ-7' 컴퓨터 시제품의 소프트웨어를 작성한 프로그래머 중 한 명이었다. 또한 공군 캠브리지 연구소(Air Force Cambridge Research)에서 위성 추적 프로젝트를 위한 소프트웨어를 작성했다. 반자동 지상 환경 프로젝트는 매사추세츠 대학이 시뮬레이터를 사용해서 기상 시스템을 예측하고 움직임을 추적할 수 있는 휠윈드(Whirlwind) 프로젝트의 연장선이었다. 반자동 지상 환경은 냉전 기간 동안 잠재적인 소련의 공격으로부터 대공 방공에서 군사적으로 사용하기 위해 개발되었다. 이 프로젝트 덕에 마거릿 해밀턴은 아폴로 비행 소프트웨어의 선도 개발자로서 미국 항공우주국의 지위 후보로 오를 수 있었다.[1]
찰스스타크 드레이퍼[편집]
마거릿 해밀턴은 아폴로 우주 임무를 수행하는 매사추세츠 대학의 찰스스타크 드레이퍼(Charles Stark Draper) 연구소에 들어가, 아폴로와 스카이랩(Skylab) 전용 소프트웨어를 개발하며 많은 이들에게 인정받는 팀을 꾸려나갔다. 해밀턴 팀은 기내의 소프트웨어 개발을 맡았는데, 이 소프트웨어에는 아폴로 사령 모듈, 달 착륙기, 후속 스카이랩을 위해 선임 과학자들이 설계해 놓은 다양한 알고리즘이 포함되어 있었다. 마거릿 해밀턴의 또 다른 팀원은 시스템 소프트웨어를 설계하고 개발했는데 여기엔 재시동, 오류 감지, 복구 소프트웨어, 마거릿 해밀턴이 개발한 디스플레이 인터페이스 루틴(Priority Displays)이 포함되어 있었다. 마거릿 해밀턴은 컴퓨터공학이나 소프트웨어공학 교육 과정이 너무 없는 시대에서 실무 경험을 쌓기 위해 열심히 일했다. 후에 그녀는 소프트웨어 엔지니어링 부서의 이사로도 재직하게 됐다.[1]
찰스스타그 드레이퍼 연구소에서 마거릿 해밀턴의 전문 분야는 시스템 설계 및 소프트웨어 개발, 엔터프라이즈(Enterprise) 및 프로세스 모델링(Process Modeling), 개발 패러다임(Paradigm), 공식 시스템 모델링 언어(Formal Systems Modeling Languages), 시스템 모델링 및 개발을 위한 시스템 지향 객체, 자동화된 라이프사이클 환경(Life-Cycle Environments), 소프트웨어 신뢰성과 재사용을 극대화하는 방법, 도메인 분석(Domain Analysis), BUI 별 정확성 lt-in 언어 속성, 강력한 시스템을 위한 개방형 네트워크 기술, 완전한 라이프사이클 자동화, 품질 보증, 원활한 통합, 오류 감지 및 복구 기술, 맨 머신 인터페이스 시스템(Man-Machine Interface Systems), 운영체제(OS), 엔드 투 엔드 테스트 기술(end-to-end testing techniques) 및 라이프사이클 관리 기술이었다.[1]
아폴로 프로그램[편집]
아폴로 11호를 달에 성공적으로 안착하는데 마거릿 해밀턴의 역할이 컸다. 아폴로 11호가 달에 착륙을 시도하는 중에 오류가 났는데 이 오류는 1201번 알람 및 1202번 알람이란 것으로, 컴퓨터의 메모리가 가득 차서 컴퓨터를 재시동하고 착륙 프로그램을 처음부터 다시 시작하겠다는 의미의 알람이었다. 이 오류의 원인은 오늘날 정확히 분석된 바로는 간단히 말하면 달 착륙선의 레이더 때문이었다. 실수로 레이더 스위치가 켜져 있어 레이더의 정보가 컴퓨터로 계속 보내지며 달 착륙 프로그램을 수행할 메모리를 잡아먹어 달 착륙 프로그램이 수행되는 것을 방해하고 있었던 것이다. 마거릿 해밀턴은 이런 상황을 이미 예상하고 성공적으로 달에 안착하기 위해선 비행 컴퓨터의 소프트웨어 시스템 개발을 해놓았다. 이 시스템 에러는 달 착륙 시퀀스를 개시하고 3분뒤에 발생했는데, 랑데뷰(rendez-vous) 레이더 때문에 부하가 걸린 컴퓨터가 상대적으로 중요도가 낮은 작업에 들어가는 시스템 자원을 더 높은 중요도의 작업에 돌리는 과정에서 발생하는 것이었다. 다행히 이런 상황에 대한 대비가 되어 있었기 때문에 착륙 시퀀스를 속행할 수 있었고, 아폴로 11호의 달 착륙 과정 자체가 중단될 수도 있었던 위기를 넘기는 역할을 했다.[2]
각주[편집]
참고자료[편집]
- 아폴로 계획 나무위키 - https://namu.wiki/w/%EC%95%84%ED%8F%B4%EB%A1%9C%20%EA%B3%84%ED%9A%8D
- Margaret Hamilton(software engineer) wikipedia - https://en.wikipedia.org/wiki/Margaret_Hamilton_(software_engineer)
같이 보기[편집]