컴퓨터 과학의 여명기, 거대한 기계들은 연산 능력을 증명했지만, 새로운 문제를 풀기 위해선 매번 기계의 배선을 다시 연결해야 하는 ‘하드웨어’의 시대였습니다. 오늘 우리는 그 거대한 패러다임을 깨고, 코드 한 줄로 기계의 운명을 바꾸는 ‘소프트웨어’ 시대의 문을 활짝 연 주인공을 만나봅니다.

🕰️ 오늘의 키워드: EDSAC

  • 원어: Electronic Delay Storage Automatic Calculator
  • 시기: 1949년 (최초의 프로그램 실행)

EDSAC은 케임브리지 대학교의 모리스 윌크스(Maurice Wilkes) 교수가 이끄는 팀이 존 폰 노이만의 EDVAC 보고서에 영감을 받아 제작한 컴퓨터입니다. 1949년 5월 6일, EDSAC은 제곱수 테이블을 계산하는 프로그램을 성공적으로 실행하며, 세계 최초로 ‘실용적인’ 프로그램 내장 방식(stored-program) 컴퓨터로 역사에 이름을 올렸습니다. 이전에도 프로그램 내장 방식을 실험한 기계는 있었지만, EDSAC은 단순한 기술 시연을 넘어 대학 내 연구자들에게 꾸준하고 안정적인 컴퓨팅 서비스를 제공하는 것을 목표로 설계된 최초의 컴퓨터였습니다.

⚡ 무엇이 혁명적이었나? (Deep Dive)

EDSAC의 혁명성은 ‘프로그램 내장 방식(Stored-Program Concept)’의 실용적 구현에 있습니다. 이전 세대의 컴퓨터인 에니악(ENIAC)은 새로운 계산을 하려면 수많은 전선과 스위치를 수작업으로 재배치해야 했습니다. 이는 프로그램을 기계의 ‘물리적 구조’에 각인시키는 것과 같았죠. 하지만 EDSAC은 폰 노이만 아키텍처의 핵심 아이디어, 즉 프로그램(명령어)과 데이터를 동일한 메모리에 저장하는 개념을 완벽하게 구현했습니다.

기술적으로 EDSAC은 약 3,000개의 진공관(vacuum tubes)을 논리 회로로 사용했고, 주 기억 장치로는 수은 지연선(mercury delay lines)을 채택했습니다. 수은으로 채워진 긴 튜브의 한쪽 끝에서 음파 펄스를 쏘면, 반대편에 도달하는 데 걸리는 지연 시간을 이용해 비트를 저장하는 방식이었습니다. 이 기술 자체는 당시 최첨단이 아니었지만, 윌크스는 혁신적인 기술보다는 ‘검증되고 신뢰성 있는’ 기술을 조합하여 ‘실제로 작동하고 유용한’ 컴퓨터를 만드는 데 집중했습니다. 이 실용주의적 접근 덕분에 EDSAC은 개념 설계에 그친 다른 컴퓨터들을 제치고 소프트웨어 시대를 여는 첫 주자가 될 수 있었습니다.

프로그램이 메모리에 데이터처럼 올라가자, 컴퓨터는 더 이상 고정된 계산기가 아니었습니다. 메모리에 어떤 프로그램을 올리느냐에 따라 미사일 탄도를 계산하는 기계가 되기도 하고, 유전자 빈도를 분석하는 생물학 도구가 되기도 했습니다. 이는 기계를 재설계하지 않고도 소프트웨어(천공 테이프에 담긴 명령어들) 교체만으로 컴퓨터의 역할을 무한히 확장할 수 있게 된, 컴퓨팅 역사상 가장 극적인 전환이었습니다.

🔗 현대와의 연결: 서브루틴 라이브러리 (Subroutine Library)의 탄생

EDSAC의 진정한 유산은 하드웨어를 넘어 소프트웨어 개발 방법론의 기틀을 다졌다는 데 있습니다. EDSAC 팀의 데이비드 휠러(David Wheeler)는 반복적으로 사용되는 코드 묶음을 따로 분리하여 필요할 때마다 호출해서 사용하는 ‘서브루틴(subroutine)’ 개념을 고안하고 체계화했습니다.

이것이 바로 현대 프로그래밍의 근간을 이루는 소프트웨어 라이브러리(Software Library)의 원시적인 형태였습니다. EDSAC 프로그래머들은 자주 쓰는 기능(예: 삼각함수 계산, 입출력 처리)을 서브루틴으로 만들어 종이테이프 라이브러리에 보관했고, 새로운 프로그램을 짤 때 이 테이프들을 조합하여 개발 시간과 노력을 획기적으로 줄였습니다. 1951년에 윌크스, 휠러, 길이 함께 집필한 책 『The Preparation of Programs for an Electronic Digital Computer』는 이 서브루틴과 라이브러리의 개념을 세상에 알린 최초의 프로그래밍 교과서였습니다.

오늘날 우리가 사용하는 모든 소프트웨어는 이 개념 위에 서 있습니다. 파이썬의 import numpy, 자바스크립트의 npm install, C++의 #include는 모두 EDSAC에서 시작된 ‘만들어둔 코드를 가져와 재사용한다’는 아이디어의 직계 후손입니다. 우리가 사용하는 운영체제(OS)의 시스템 콜, 스마트폰 앱 개발에 쓰이는 SDK(Software Development Kit), 수많은 오픈소스 프로젝트들은 모두 EDSAC의 서브루틴 라이브러리가 현대적으로 진화한 모습이라 할 수 있습니다. 코드 재사용성의 발견은 소프트웨어 공학이라는 학문의 씨앗이었습니다.

📅 내일의 키워드 예고

실용적인 하드웨어가 등장하고, 소프트웨어를 재사용하는 ‘라이브러리’ 개념까지 탄생했습니다. 하지만 여전히 프로그래밍은 기계가 이해하는 숫자들의 나열일 뿐이었습니다. 다음 시간에는 이 숫자 암호를 인간의 언어와 가깝게 만들어준, 최초의 ‘번역가’에 대한 이야기를 시작하겠습니다. 기계어의 장벽을 허물기 시작한 위대한 여성 과학자를 만나봅니다.

📚 참고 문헌

이 콘텐츠는 AI에 의해 생성되었으며, 오류나 부정확한 정보를 포함할 수 있습니다.

카테고리:

업데이트:

댓글남기기