Offcanvas

AI / CIO / 개발자 / 검색|인터넷 / 보안 / 블록체인 / 애플리케이션 / 인문학|교양

천재들의 족적··· SW 역사에 획을 그은 논문 9가지

2024.01.12 Matthew Tyson  |  InfoWorld
소프트웨어 개발에 있어 가능성이 크게 확장되는 순간이 있다. 개발자 작업이 뿌리부터 변화하는 순간이다. 몇몇 역사적인 문서에는 컴퓨팅 기술의 중요한 패러다임 전환이 포착되어 있다. 이 기사에서는 모든 개발자가 반드시 읽어야 할 논문에 담긴 소프트웨어 개발의 (거의) 지난 한 세기를 되돌아본다.


Dmitry Ratushny (CC0)

소프트웨어 개발의 역사적 논문 9가지
1. 결정문제에 적용하는 계산가능한 수에 관하여(On Computable Numbers, with an Application to the Entscheidungsproblem)
2. EDVAC 보고서 첫 번째 초안(First Draft of a Report on the EDVAC)
3. IBM 수학 수식 번역 시스템, 포트란(FORTRAN)의 사양(Specifications for the IBM Mathematical FORmula TRANSlating System, FORTRAN)
4. 유해한 것으로 여겨지는 고 투 문(Go To Statement Considered Harmful)
5. 암호화의 새로운 방향성(New Directions in Cryptography)
6. GNU 선언(The Gnu Manifesto)
7. 아키텍처 스타일과 네트워크 기반 소프트웨어 아키텍처 설계(Architectural Styles and the Design of Network-based Software Architectures)
8. 비트코인: P2P 전자 현금 시스템(Bitcoin: A Peer-to-Peer Electronic Cash System)
9. 텐서플로우: 대규모 머신러닝을 위한 시스템(TensorFlow: A System for Large-Scale Machine Learning)

1. 앨런 튜링(Alan Turing): 결정문제에 적용하는 계산가능한 수에 관하여(On Computable Numbers, with an Application to the Entscheidungsproblem) (1936)
이 글은 패러다임을 바꾸는 논문의 전형이다. 튜링의 글은 불확실한 지형을 종이 위에서 탐색하고 랜드마크를 찾아 지도를 만든다는 관점의 성격을 띠고 있다. 그리고 이 지도는 거의 100년 동안 우리에게 유용하게 사용됐다.

튜링의 논문은 가독성이 뛰어나며, 기술적인 논문 치고는 서사가 뛰어나다. 이 논문은 숫자를 계산할 수 있게 만드는 요소에 대해 어려운 질문을 던지고 까다로운 수학을 탐구한다. 그러면서도 ‘머리’(포인터)를 움직일 수 있는 테이프(튜링 테이프) 상의 무한한 연속적 사각형이라는 일반적 모델은 오늘날에도 놀랍다. 튜링은 이후 등장한 모든 정보 기계의 본질을 설명한다.

튜링 머신 아이디어의 우아함은 수학을 컴퓨팅으로, 컴퓨팅을 수학으로 변환하는 능력에 있다. 이는 시스템의 복잡성을 설명하는 데 여전히 유용한 모델로 남아 있다.

계산 가능한 수에 관하여’는 괴델의 불완전성에 대한 연구를 이어가는 것을 포함해 여러 측면에서 필독 문서다. 테이프-기계의 아이디어를 제시하는 것만으로도 이 논문은 가치가 있다.
 
결정문제(Entscheidungsproblem)?
튜링의 결정문제는 수학, 논리, 컴퓨터 과학이 만나는 흥미로운 영역의 창이다. 이 문제는 주어진 입력에 대해 주어진 공리 집합 내에서 예/아니오 진리를 도출하는 보편적인 방법을 요구한다.

2. 존 폰 노이만(John von Neumann): EDVAC 보고서 첫 번째 초안(First Draft of a Report on the EDVAC) (1945)
폰 노이만의 EDVAC(전자식 이산 가변 자동 컴퓨터) 아키텍처에 대한 제안은 언뜻 보기에 ‘이미 명백하지 않았나?’라는 생각이 들 정도로 획기적인 것이었다.

명백하지 않았던 점은 컴퓨터의 메모리가 데이터와 명령을 함께 저장할 수 있다는 것이었다. 다시 말해, 메모리는 실행 가능한 정보도 저장할 수 있다는 점이다. 하지만 이 핵심 아이디어 외에도 당시 기계가 할 수 있는 일을 정의한 저자의 감각이 돋보인다. 이는 튜링의 철학적 수학적 논의에서 폰 노이만의 ‘강철 테이프나 와이어에 자기적으로 각인된’ 정보에 대한 실용적인 논의로 연결되는 엄청난 도약이었다.

이 연구에는 계산의 오류 처리에 대한 아이디어를 비롯해 온갖 종류의 흥미로운 생각이 담겨 있다. 그중 하나는 ‘장치는 가장 빈번한 오작동을 자동으로 인식하고, 외부에 보이는 신호로 오작동의 존재와 위치를 표시한 다음 멈출 수 있다’는 것이다. 폰 노이만의 논문은 현대적 컴퓨터를 향한 관문의 바로 앞에 위치해 있다. 오늘날 우리가 사용하는 기기의 특성을 반은 사실적이고 반은 추측적인 방식으로 설명하면서다. 현대 컴퓨터의 일반적인 아키텍처를 폰 노이만 아키텍처라고 부르는 이유다.

폰 노이만의 논문은 ‘물리적 장치뿐만 아니라 그 기능을 지배하는 산술적이고 논리적 배열에도 적용되는’ 일반 컴퓨터의 특성이 무엇인지 묻고 있다. 폰 노이만의 대답은 현대 디지털 컴퓨터를 대략적으로 보여주는 것이다.
 
진공관에 대한 언급
존 폰 노이만은 맨해튼 프로젝트에 참여했고, 게임 이론을 개척했으며, 양자역학에 기여하기도 했다. 그는 사고의 폭이 매우 넓었다. 하지만 ‘초고속 컴퓨팅 장치에는 진공관 소자가 이상적이라는 것은 분명하다’라는 그의 표현에 대해 곧바로 웃음을 터뜨리지는 말자.


3. 존 배커스 외(John Backuss et al.): IBM 수학 수식 번역 시스템, 포트란의 사양(Specifications for the IBM Mathematical FORmula TRANSlating System, FORTRAN) (1954)
포트란 사양은 공개적으로 발표되지는 않았지만, 언어 설계와 소프트웨어 전반에 강력한 영향력을 발휘했다.

지금은 프로그래밍 언어의 조상격에 해당하지만, 당시의 포트란은 고급 언어의 획기적인 발전이었다. 그것은 최초의 진정한 범용 언어였다.

1936년 튜링이 컴퓨터를 구상한 지 불과 28년밖에 지나지 않았다는 사실을 기억하면 포트란의 의의가 더욱 분명해진다.

포트란 사양은 당시의 감각을 잘 나타내고 있으며, 이후 언어 디자이너들이 채택한 모델을 만드는 데 도움을 주었다. 이 사양은 당시 하드웨어와 소프트웨어로 가능해진 존재에 대한 감각을 포착하고 있다.
 


4. 에드스헤르 다익스트라(Edsger Dijkstra): 유해한 것으로 여겨지는 고투문(Go To Statement Considered Harmful) (1968)
‘유해한 것으로 간주되는’이라 밈을 제시한 것 외에도, 에드스헤르 다익스트라의 1968년 논문은 따라 하기 어려운 고투문보다 루프와 조건부 제어 흐름이 가지는 우월성을 밝혔다. 뿐만 아니라 코드 품질에 대한 새로운 사고방식과 담론을 불러일으키기도 했다.

CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.