1. 여정의 시작

SHARP5103, Apple II, VAX-11, 아래한글

by 류주복

컴퓨터라는 물건과의 첫 만남은 대학교 2학년 때 수강한 FORTRAN 수업이다. 무려 전공 필수 과목이었다.


공대생인지라 전자계산기에는 익숙했지만, 프로그램을 작성해서 답을 계산한다는 개념의 컴퓨터는 거리가 있는 존재처럼 느껴졌다. 나 포함 대부분의 공대생은 SHARP 5101이나 5103을, 소수의 괴짜들이나 특수한 경우 TI도 사용했다. 내 마지막 전자계산기와는 전당포에서 이별해야 했다.


중간시험 기간에 이차방정식의 해를 구하는 FORTRAN 프로그램을 작성해서 그 결과물을 인쇄해 제출하라는 과제를 받았다. ‘고작 손으로도 금방 풀 수 있는 문제를 거창하게 왜 이런 비싼 기계까지 써야 하나’라는 생각을 했다. 그리고 그 과정도 기이할 정도로 아날로그적이었다.


먼저 코딩용지에 프로그램을 수기로 써서 80 칼럼 미천공 펀치카드 뭉치와 함께 고무줄로 묶어 펀칭실의 바구니에 제출한다. 코드 한 줄에 한 장의 펀치카드가 필요하다. 그러면 미모의 키펀처들이 제출한 순서대로 펀칭해서 다시 바구니에 넣어 준다. 보통 하루가 걸린다.


천공된 카드 뭉치 위에 이름과 학번 등이 기록된 Job Card란 걸 얹어 전산실 바구니에 제출한다. 또 하루가 지난 다음 날 때쯤 종이에 인쇄된 결과물을 받아볼 수 있는 방식이었다. 물론 신택스 에러를 만나면 단번에 끝나지 않기 때문에 위 과정을 몇 번 거쳐야 했다.


이 기이한 아날로그적 과정을 핑계로 공부 열심히 하는 친구의 펀치카드를 빌려서 겨우 과제는 해결했고, 학점을 딴 이후 컴퓨터라는 단어는 내 머릿속에서 지워졌다.


컴퓨터와의 두 번째 만남은 그로부터 몇 년 후 석사과정 실험실에서 본 Apple II PC 호환 기종이다. Microsoft에서 만든 Z80 확장카드에 Digital Research사의 CP/M 운영체제가 탑재된 데스크톱 PC였다.


검색을 해보니 1MHz 속도의 8비트 CPU에 64KB 메모리와 5.25인치 플로피 기반이었다. 이때 CP/M을 배운 덕분에 나중에 DOS를 접했을 때 너무나 유사해서 거의 학습이 필요 없을 정도였다.


여기에 그 당시에는 매우 귀한 EPSON제 Dot Matrix 프린터까지 갖추고 있었음에도 주 용도는 대학원생들의 스트레스 해소용 게임기로 활용되고 있었다.


나의 최애 게임은 로드러너와 스낵바이트를 거쳐 뱀이 미로를 다니면서 사과를 따 먹는 스네이크 바이트였다. 사과를 먹으면 뱀이 길어지고 단계가 오를수록 미로가 복잡해진다. 방향을 빠르게 잘 조절하지 못해서 뱀이 벽에 부딪혀 죽거나 자기 몸을 물어 사과를 다 먹지 못하면 게임이 끝난다. 조이스틱보다 손가락으로 방향키 두 개를 써야 진정한 고수로 인정받았다.


누워 있으면 천장에서도 뱀이 지나다닐 정도로 중독되어 최종 99단계까지 클리어하며 마침내 고수의 반열에 올랐다.


게임과 석사과정 수강, 논문 실험, 학부생 수업 보조 외에 대학원 선배로부터 물려받은 업무 중 하나가 학부생들의 성적을 관리하는 것이었다. 전혀 복잡하지는 않은데 점수 집계에 실수를 하면 절대 안 되는, 꽤 손이 많이 가는 작업이었다.


게임 하느라 게으름을 피우면서 미루고 미루다가 컴퓨터로 해보자는 기특한 생각을 했다. CP/M과 BASIC을 독학으로 배워 성적 관리 프로그램을 개발했다.


BASIC 문법 배우고, 테스트하고, 디버깅하고, 실제 성적과 비교 확인한 시간을 합치면 그냥 처음부터 손으로 했어도 10번은 넘게 했을 정도로 시간을 써야만 했다.


생애 처음 코딩한 프로그램은 그렇게 게임과 게으름 사이에서 어렵게 태어났지만, 한 학기에 두 번, 유저는 나 자신뿐인 작품으로 남았다. 그래도 깔끔하게 인쇄된 성적처리 결과서에 지도교수님은 꽤 만족해하신 것으로 기억한다.


진짜 시련은 본업인 석사학위 논문에서 왔다. 환경오염이 문제로 대두되던 건식제련 대신에 화학 용액 기반의 습식제련을 통해 원광으로부터 금속을 추출하는 연구였다. 주어진 변수는 다음과 같다. 금속을 함유한 원광 입자의 크기, 공급 속도, 침출 시간 그리고 화학 용액의 온도, 농도, 교반 속도 등.


논문의 내용은 각 변수를 달리했을 때 금속의 회수 속도 측정값과 이론을 적용하여 계산한 값을 비교하는 것이었다. 여기에는 고체역학, 유체역학, 전기화학, 열역학이 동원되었다.


역학은 다 어렵지만 특히 열역학이 너무 어려워서 지도교수님에게 고민 상담을 하기도 했다. 그때 해주신 "석사과정의 수학은 애들 장난이다"라는 말씀. 당연히 격려의 말씀인데, 이게 애들 장난이면 박사과정 수학은 도대체 얼마나 더 어렵단 말인가. 수학 못 하는 공대생이 절망했다.


졸업 후 한참이 지나 그때 얘기를 말씀드렸더니 기억을 못 하셨다. 그렇지만 석사과정 수학이 애들 장난인 건 사실이라고 하셨다. 요즈음 유튜브에서 취미 삼아 보는 열역학은 너무나 재미있다. 시험도 보지 않는데, 머리에 잘 들어온다.


모든 실험을 완료하고, 이제 논문 작성에 필요한 계산값은 약 천 개. 실험실에 있는 Apple II의 성능으로는 FORTRAN 수치해석 프로그램이 한 시간에 한 개의 계산을 처리하기도 벅찼다.


FORTRAN 수업 이후 처음 공대 전산실을 찾았다. 공대 전산실에는 무려 5MHz 속도의 32비트 CPU와 MB 단위의 대용량 메모리를 갖춘 DEC사의 최신 VAX-11/780기종이 설치되어 있었다.


그런데, 소스코드가 동일한 프로그램이 VAX-11에서는 수많은 컴파일 오류를 뱉어 내기만 했다. 전산과 조교와 머리를 맞대고 며칠 동안 오류 수정에 매달려야 했다. 결국 배열을 더 단순화하고 서브루틴들을 GOTO가 난무하는 노가다식 계산 코드로 바꾸면서 해결했다.


오류와 품위를 맞바꾼 볼품없는 스파게티 코드를 보면서 깨달았다. 나는 코딩에 소질이 없다는 사실을. 지금 와서 생각해 보니, 배운 건 FORTRAN IV인데 소스코드는 FORTRAN 77이어서 그랬을까?


본업은 지지부진했어도 논문 초고를 제출할 데드라인은 다가왔다. 초고라도 멋있게 만들고 싶은 마음에 워드프로세서를 사용하기로 했다. 그 당시 초고 작성은 수기나 타자기가 주류였고, 그나마 '중앙한글'이 거의 유일하게 한글이 지원되었다.


화면에 보이는 대로 편집·출력하는 방식이라는 의미의 WYSIWYG 기능은커녕 그런 개념조차 없었다. 언감생심 이과 논문에서 필수적인 미적분 수학식 표기는 기대할 수도 없었다.


하는 수 없이 EPSON 프린터의 Control/Escape 시퀀스를 사용해 논문 초고에 필요한 수학식을 한 땀 한 땀 그렸다. 또, 공대 컴퓨터 동아리에서 한글 워드프로세서를 개발한다는 말을 듣고 찾아가서 프로그램을 얻어와 사용하기도 했다.


이게 훗날 한 시대를 풍미한 '아래아한글'의 초기 모습이었다는 건 나중에야 알았다. 그냥 손으로 초고를 썼으면 10번은 넘게 썼을 것이다.


우여곡절 끝에 석사학위 논문이 통과되었음에도 졸업식 날까지 FORTRAN 소스코드 최적화를 해야 했다. 지금 되돌아본다면 단순한 프로그래밍을 넘어 전혀 새로운 해결 방법과 인내의 경계에서 자신을 마주한 순간이다.


그때의 FORTRAN은 끝이 아니라, 다음 장의 서문이었는지도 모른다. 그 순간부터 단순히 새로운 기술이 아니라 사람과 기술 사이를 연결하는 무언가를 바라보게 된 여정이 시작된 건 아닐까?


다음 이야기에서는, 그 ‘소질 없음’이라는 자각이 어떻게 현장 중심의 IT 시스템 엔지니어로 이어졌는지, 그리고 기술을 사람에게 다가가게 만드는 컨설턴트로 성장하는 과정에 대해 기록하려 한다.


작가의 이전글0. 38년, 33만 시간 어느 직장인의 여정