제가 컴퓨터와 가까와진 얘기를 하려합니다.
얼마전에 구글 비디오에서 컴퓨터 언어에 대한 여러가지 비디오를 찾다가 오래된 Smalltalk 비디오를 찾았습니다. 정확한 연도는 기억나지 않지만 아마 83년이나 84년 정도가 아닐까 생각되네요. “Bits & Bytes” 라는 TV 프로그램에 나왔던 내용이였습니다.
어렸을때 아버지 일로 미국에서 몇년간 생활했었습니다. 어떻게 “Bits & Bytes”를 보게 되었는지는 정확하게 모르겠지만 당시 아버지께서도 컴퓨터에 관심이 많으셨던거 같습니다. 당시 녹화도 해서 봤었고, 아직까지 인상적으로 남는건 로고 언어, TI 컴퓨터의 음성합성, 그리고 위 링크에서 볼수있는 스몰토크 등이네요. 그리고 신기술인 8인치짜리 CD도 신기한 내용중 하나였습니다. 컴퓨터 전문가인 여자분과 컴퓨터에 대해서 전혀 모르던 빌리 아저씨가 등장하는데, 여러가지 새로운 기술이나 주제에 대해서 설명하고 간단한 걸 빌리 아저씨가 배워보는 내용으로, 컴퓨터에 대해서 아무것도 몰랐던 제게 아주 큰 흥미를 줬었습니다.
미국에 별 준비없이 가서 영어도 안되고, 공부에 흥미도 없었습니다. 하지만, 도서실 옆쪽에 있는 컴퓨터들에는 관심이 갖죠. PET 컴퓨터로 Commodore에서 나온 모니터,본체,키보드가 일체형으로 된 컴퓨터였고, 베이직언어가 롬에 포함되어있었으며, 저장장치로 카세트테이프를 사용했습니다. 카세트테이프는 일반음악 카세트 테이프를 사용했었으며, 베이직 프로그램을 저장하고 불러들일수 있었습니다. 프로그램 하나 로드 하는데 꽤나 걸렸던걸로 기억합니다. 당시 형이 저보다도 훨씬 관심이 많았던거 같고, 학교 끝나고 도서실에 남아서 베이직으로 “scramble”이라는 프로그램을 형이 짰었습니다. scramble은 영어 단어의 문자들을 섞어서 제시하면 원래 단어를 맞추는 게임인데, 그 프로그램은 섞인 단어도 프로그램에 포함되어서, 저는 단어를 맞추기 힘들었지만, 프로그램을 짠 형은 아주 쉽게 맞췄었습니다 ^^.
얼마후 집에 역사적인(?) Commodore 64를 Radio Shack에서 사왔고, 주로 오락기로 활용됐지만, 호기심에 베이직과 여러가지 잔기술(peek,poke)을 배웠습니다. Z80 기반인 C-64는 sprite가 하드웨어적으로 지원되서 게임같은거 만들기 편했고, 3가지 화음을 동시에 낼수있는 사운드가 지원됐었습니다. 그냥 베이직으로는 한계가 있어서 거금을 모아서 “Graphics Basic”이라는 툴을 사서 몇가지 게임을 제작했었습니다. Sprite를 이용해서 미로를 통과하는 게임과 갤러그처럼 비행기 조정해서 나쁜놈 맞추는 게임이었는데, 대단한건 아니지만 프로그래밍의 매력을 느낄수 있었던 기회였죠. 당시 베이직에 한계를 느껴 어셈블리를 배우려다가 포기했었습니다.
몇년후 한국에 돌아와서 C-64가 운명을 달리한 후에는 컴퓨터를 접할 기회가 없었고, 제가 고3때 형이 컴퓨터를 구입해 DOS를 처음 접했었습니다. 사실 DOS는 몰랐고 NC만 알았었죠 –;
대학에서는 컴퓨터에 대해서 배워보고 싶어서 “전자통신공학과”에 가게됐는데, 제가 생각했던 컴퓨터와는 좀 거리가 있었습니다. 다행히 과내에 있는 학회에서 소프트웨어에 관련된 것을 많이 습득할수 있었습니다. (상영이형, 병주형, 진석이형 고맙습니다:)
1~2학년 때는 주로 OS쪽에 대한 공부를 많이 했었고, 3학년때부터는 몇가지 프로그램을 만들어보면서 프로그래밍 언어에 관심을 갖게됐습니다. 아래는 대학교때 몇가지 개인 프로젝트로 학회전시회때 출품했던 프로그램입니다.
- Mod4X: 리눅스에서 Tcl/Tk 이용해서 s3m이라는 음악 플레이어 UI frontend
- 신경망을 이용한 기타 음높이 인식 (리눅스)
지금 보니, 주요 관심사인 음악과 컴퓨터가 접목을 했었네요.
뭐 이렇게 시작하여, 전공하고는 약간 틀린 프로그래밍이 직업이 되었답니다. 전공에서 배운 지식을 그대로는 활용하지는 못해도, 전산 전공한 사람들에 비해 전체 시스템을 보는 관점은 틀려서 도움이 될때도 많은거 같습니다.