티스토리 뷰

 

[ENIAC과 초기 프로그래밍의 세계로 떠나요!] 최초의 컴퓨터 중 하나인 ENIAC은 어떻게 프로그래밍 되었을까요? 오늘날 우리가 당연하게 여기는 코딩과는 전혀 다른, 그 시절의 놀라운 프로그래밍 방식을 살펴보며 컴퓨터 역사의 한 페이지를 넘겨봅니다!

요즘엔 정말 다양한 프로그래밍 언어와 편리한 개발 도구 덕분에 아이디어만 있다면 누구나 멋진 프로그램을 만들 수 있는 시대잖아요? 😊 하지만 불과 수십 년 전만 해도 '코딩'이라는 작업은 지금과는 상상도 할 수 없을 만큼 달랐답니다.

 

마치 공상과학 영화 속 한 장면처럼요! 오늘은 바로 그 시절, 거대한 계산 기계 에니악(ENIAC)과 그 프로그래밍의 세계로 시간 여행을 떠나보려고 해요. 준비되셨나요? 😉

 

ENIAC, 거대한 두뇌의 등장 🧠

ENIAC은 'Electronic Numerical Integrator And Computer'의 약자로, 1946년에 세상에 처음 공개된 최초의 전자식 범용 디지털 컴퓨터 중 하나로 꼽혀요. 제2차 세계대전 당시 미국 육군의 탄도 연구소에서 포탄의 탄도 궤도를 정확하고 빠르게 계산하기 위해 개발되었죠. 지금 기준으로 보면 어마어마한 크기를 자랑했는데요, 무게가 약 30톤에 달하고, 18,000개가 넘는 진공관과 수많은 저항기, 축전기, 계전기 등으로 이루어져 방 하나를 가득 채울 정도였답니다. 😲 정말 '거대한 두뇌'라는 표현이 딱 어울리죠?

 

당시로서는 엄청난 혁신이었어요. 이전까지 수작업이나 기계식 계산기로 몇 시간, 혹은 며칠씩 걸리던 계산을 단 몇 초 만에 해낼 수 있었으니까요! ENIAC의 등장은 컴퓨터 역사의 중요한 전환점이 되었고, 이후 과학 기술 발전의 밑거름이 되었답니다.

 

선과 스위치로 코딩하다: ENIAC 프로그래밍 방식 🔌

그렇다면 이 거대한 ENIAC은 어떻게 프로그래밍 했을까요? 우리가 지금처럼 키보드로 코드를 입력하고 마우스로 클릭하는 방식과는 전혀 달랐어요. ENIAC 프로그래밍은 마치 거대한 전화 교환대의 플러그를 연결하고 수많은 스위치를 조작하는 것과 비슷했답니다. 프로그래머들은 계산 순서와 논리 흐름에 따라 수백, 수천 개의 전선을 직접 플러그보드에 꽂고, 다양한 기능을 하는 스위치들을 일일이 설정해야 했어요. 정말 상상만 해도 어질어질하죠? 🤯

 

흥미로운 사실은 ENIAC의 초기 핵심 프로그래머들이 대부분 여성이었다는 점이에요! 이들은 'ENIAC Six'라고 불리며, 수학적 지식과 논리적 사고력을 바탕으로 복잡한 물리적 연결 작업을 수행했죠. 당시에는 프로그래밍이라는 개념 자체가 생소했고, 이들의 작업은 오늘날 소프트웨어 엔지니어링의 선구적인 역할이라고 할 수 있어요. 👩‍💻

💡 알아두세요!
ENIAC에서 하나의 복잡한 프로그램을 설정하는 데에는 몇 주일이 걸리기도 했다고 해요. 설정이 끝나면 계산 자체는 빠르게 수행했지만, 새로운 문제를 풀기 위해서는 또다시 그 긴 설정 시간을 거쳐야 했죠. 오늘날 몇 줄의 코드로 끝날 일이 그때는 엄청난 육체노동과 시간을 필요로 했던 거예요!

 

초기 프로그래머들의 위대한 도전 💪

ENIAC 프로그래밍은 정말 험난한 과정이었어요. 일단 프로그램 설정을 마쳤다고 해도 끝이 아니었죠. 가장 큰 골칫거리는 바로 잦은 진공관 고장이었어요. 18,000개가 넘는 진공관 중 하나라도 말썽을 부리면 계산 결과가 틀어지거나 기계가 멈춰버렸거든요. 그래서 프로그래머들은 문제의 원인을 찾기 위해 회로도를 뒤지고, 고장 난 진공관을 직접 찾아 교체해야 했답니다.

 

'디버깅(debugging)'이라는 용어가 벌레(bug)에서 유래했다는 설도 있는데, 어쩌면 ENIAC 시절에는 정말로 기계 속 벌레를 잡는 심정이었을지도 모르겠네요. 😂

또한, 프로그래밍 과정 자체가 엄청난 집중력과 인내심을 요구하는 작업이었어요. 작은 실수 하나가 전체 계산을 망칠 수 있었기 때문에, 프로그래머들은 회로도와 수많은 연결 상태를 몇 번이고 확인해야 했죠. 그야말로 정신적, 육체적 노동의 연속이었답니다.

⚠️ 주의하세요!
ENIAC의 진공관은 평균적으로 이틀에 한 번꼴로 고장이 났다고 해요. 고장 난 진공관을 찾는 것도 보통 일이 아니었고, 이로 인해 작업이 중단되는 경우가 잦았다고 합니다. 이런 환경 속에서도 위대한 계산들을 해냈다는 것이 정말 대단하지 않나요?

 

ENIAC 프로그래밍 vs 현대 프로그래밍 비교 🆚

ENIAC 시절의 프로그래밍과 오늘날의 프로그래밍은 얼마나 다를까요? 한번 표로 비교해 볼까요?

구분 ENIAC 프로그래밍 현대 프로그래밍
작업 방식 물리적 케이블 연결, 스위치 설정 텍스트 기반 코드 작성 (키보드 입력)
프로그래밍 도구 수동, 회로도, 전선 IDE, 컴파일러, 디버거, 프레임워크
언어 기계어 수준의 물리적 설정 고급 프로그래밍 언어 (Python, Java 등)
재사용성 매우 낮음, 거의 매번 재설정 높음 (함수, 라이브러리, 모듈)
디버깅 회로 점검, 진공관 교체 등 수동 소프트웨어 디버거, 로그 분석
소요 시간 프로그램 설정에 수일 ~ 수주 단순 작업 시 수 분 ~ 수 시간

정말 엄청난 차이죠? 격세지감이라는 말이 실감 나네요! 이런 과정을 거쳐 지금의 편리한 프로그래밍 환경이 만들어졌다는 사실이 새삼 놀랍습니다.

 

ENIAC이 남긴 유산과 미래 🚀

ENIAC은 비록 최초의 컴퓨터라는 타이틀을 두고 여러 의견이 있지만, 초기 전자식 컴퓨터 발전에 지대한 영향을 미쳤다는 점은 분명해요. ENIAC의 개발과 운영 경험은 이후 등장하는 '프로그램 내장 방식(Stored-Program Concept)' 컴퓨터, 즉 폰 노이만 구조 컴퓨터 설계에 중요한 영감을 주었죠. 이 방식은 프로그램을 기계 내부에 저장해두고 필요에 따라 불러와 실행하는, 오늘날 컴퓨터의 기본 작동 원리가 되었답니다.

 

또한, ENIAC 프로그래밍의 어려움은 자연스럽게 '어떻게 하면 더 쉽고 효율적으로 컴퓨터에 명령을 내릴 수 있을까?'라는 고민으로 이어졌고, 이는 고급 프로그래밍 언어와 운영체제(OS) 발전의 필요성을 일깨우는 계기가 되었어요. 어찌 보면, ENIAC의 불편함이 오늘날 우리가 누리는 편리함의 씨앗이 된 셈이죠! 🌱

 

ENIAC 프로그래밍, 핵심만 다시 보기! 📝

지금까지 ENIAC과 초기 프로그래밍의 모습에 대해 살펴봤는데요, 핵심 내용을 다시 한번 정리해 볼까요?

  1. 거대한 시작: ENIAC은 방 하나를 가득 채울 만큼 거대했지만, 당시로서는 혁신적인 계산 능력을 자랑하는 전자식 컴퓨터였어요.
  2. 손으로 짜는 코드: ENIAC 프로그래밍은 키보드가 아닌, 수많은 전선 연결과 스위치 조작을 통해 이루어졌어요.
  3. 숨겨진 영웅들: 'ENIAC Six'로 불리는 여성 프로그래머들이 초기 ENIAC 프로그래밍에 핵심적인 역할을 수행했답니다.
  4. 불편함이 낳은 혁신: ENIAC 프로그래밍의 어려움은 프로그램 내장 방식 컴퓨터와 고급 프로그래밍 언어 발전의 중요한 동기가 되었어요.

 

 

 

 

💡

ENIAC & 초기 프로그래밍 핵심 요약

✨ 거대한 기계, 위대한 시작: ENIAC은 탄도 계산을 위해 탄생, 무게 30톤, 18,000개 진공관 사용.
🔌 손으로 짜는 코드: 플러그보드 전선 연결과 스위치 조작으로 프로그래밍 수행.
👩‍💻 보이지 않는 영웅들: 'ENIAC Six' 여성 프로그래머들이 초기 개발과 운영에 핵심 역할 담당.
🚀 미래를 향한 첫걸음: 현대 컴퓨터의 폰 노이만 구조와 프로그래밍 언어 발전에 영향.

 

자주 묻는 질문 ❓

Q: ENIAC이 최초의 컴퓨터였나요?
A: 엄밀히 말하면, '최초의 전자식 범용 디지털 컴퓨터' 중 하나로 평가받아요. 이전에도 여러 형태의 계산 장치들이 있었지만, ENIAC은 그 규모와 프로그래밍 가능성 면에서 중요한 이정표였죠. 🌟
Q: ENIAC 프로그래머는 주로 어떤 사람들이었나요?
A: 놀랍게도 ENIAC의 초기 핵심 프로그래머들은 6명의 여성이었어요! 당시 '컴퓨터(computer)'는 계산을 수행하는 사람을 지칭하는 말이었고, 이들은 복잡한 탄도 계산을 수동으로 하던 계산원들이었죠. 기계가 만들어지자 이들이 기계를 프로그래밍하는 역할을 맡게 된 거예요. 👩‍🔬
Q: ENIAC에 프로그램을 어떻게 저장했나요?
A: 현대 컴퓨터처럼 하드디스크나 메모리에 프로그램을 '저장'하는 개념이 아니었어요. 프로그램은 수많은 전선을 플러그보드에 연결하고, 수천 개의 스위치를 설정하는 방식으로 물리적으로 구현되었답니다. 그래서 다른 프로그램을 실행하려면 이 모든 연결과 설정을 바꿔야 했어요. 🛠️
Q: ENIAC으로 주로 무엇을 계산했나요?
A: 주된 목적은 제2차 세계대전 중 포탄의 탄도표를 계산하는 것이었어요. 하지만 전쟁 이후에는 난수 연구, 일기 예보, 원자력 연구 등 다양한 과학 기술 계산에 활용되었답니다. 🎯
Q: ENIAC 프로그래밍이 지금 우리에게 주는 교훈은 무엇일까요?
A: 지금 우리가 당연하게 사용하는 편리한 프로그래밍 환경이 있기까지 수많은 사람들의 엄청난 노력과 시행착오가 있었다는 점이에요. 또한, 초기 프로그래머들의 창의성과 문제 해결 능력은 오늘날 개발자들에게도 큰 영감을 주죠! 😊

오늘은 ENIAC과 초기 프로그래밍의 세계로 짧은 시간 여행을 다녀왔어요. 지금과는 너무나 다른 환경이었지만, 그 속에서도 빛나는 아이디어와 열정으로 오늘날 컴퓨터 기술의 초석을 다진 선구자들의 노고에 다시 한번 감사하는 마음을 갖게 되네요. 여러분은 ENIAC 이야기가 어떠셨나요? 궁금한 점이나 나누고 싶은 이야기가 있다면 언제든 댓글로 남겨주세요! 👋

 

반응형