컴퓨터 – 프로그래밍 언어

내가 처음 접한 컴퓨터 언어는 애플 소프트베이식이다. (당시에는 BASIC 을 베이식이라고 읽지 않고 베이직이라고 읽었었다.)

애플 II 프로그래밍 500제 라는 제목으로 기억하고 있는데, 말 그대로 예제가 500개쯤 들어 있는 책이었다. 그 책으로 컴퓨터 프로그래밍을 처음으로 접했다.

컴퓨터를 보유하고 있는 친구네나 친척들은 애플II 보다는 MSX 나 IQ1000 가 많았었고, 그 외에도 호환 기종들이 많이 있었다. 우리집에 있던 애플II도 청계천 호환 제품이었다.

어떤 아이들은 컴퓨터 학원도 다니고 했지만, 오로지 나는 저 책 한권으로 스스로 배웠다. 어쩌다가 보게 되는 컴퓨터 잡지는 저 책에서 얻지 못하는 지식을 얻을 수 있는 몇 안되는 기회였다. 주로 컴퓨터 관련 지식을 접할 수 있는 곳은 제물포역 지하 상가에 있던 파인 시스템이라는 곳이었는데, 컴퓨터 제품을 팔기도 했고, 실제로는 게임을 테이프나 플로피 디스켓에 복사해서 팔던 곳이었다.

중학교에 들어간 이후, IBM 호환기종을 처음 접하였다. 그리고, 몇몇 언어들을 배웠다. Cobol 도 어느 정도 배웠던 것으로 기억하고 있고, 중2 여름 방학때는 그걸로 시험 점수를 입력하면 자동으로 계산해서 평균과 등수를 출력하는 프로그램을 만들어서 학교에서 쓰기도 했었다. (당연히 선생들은 나를 못 믿고 주판으로 또는 손으로 다시 계산해서 성적을 매겼다.)

고등학교 들어가서는 프로그래밍 보다는 게임을 주로 했었다. 집에 있는 애플II는 이미 유행을 어느 정도 지났고, 컴퓨터 잡지에서는 애플II 얘기보다는 IBM 호환 기종들에 대한 내용이 주를 이뤘다. 하지만 그렇다고 해서 완전히 손을 뗀 건 아니었고, 학교 컴퓨터실에 있는 메모리 256KB짜리 컴퓨터들로 GW-BASIC 으로 이런 저런 것들을 짜곤 했었다. 하지만, 고2 2학기때부터는 대입을 위한 공부를 하기 시작하면서 컴퓨터는 잠시 봉인을 했다.

대학교에 들어가서 다시 컴퓨터를 꺼냈고, 대학교 입학 선물로, 386 컴퓨터를 한대 받았다. 무려 모뎀도 달려 있었는데, 이것은 새로운 세상과 만나게 해줬다. 이때부터 다시 몇몇 언어들을 공부했고 주로 당시에는 클리퍼와 Quick-BASIC 을 썼었다. 왠지 C는 다루기 싫었었다. (라기 보다는 포인터 부분에서 좌절하고 반쯤 포기했었다는 게 맞을 거다.)

그리고, 중/고등학교때 상업(남자학교에서는 주로 공업이나 기술과목이었는데, 내가 다닌 학교에서는 상업이었다.) 과목에서 배운 내용으로 남동공단이나 주안공단에 있는 작은 업체들의 전산망에서 요새로 말하면 ERP 고, 실제로는 당시 손으로 쓰던 장부를 컴퓨터로 쓰는 정도의 프로그램을 만들어서 싸게는 몇만원, 비싸게는 20만원쯤에 팔았고, PC 통신에서 알게된 형의 소개로 당구장 관리 프로그램, 비디오 가게 관리 프로그램 등을 제작해서 팔았었다. 그리고 그 돈으로 등록금과 생활비를 마련할 수 있었다.

대학 1학년 마치고 입대를 했는데, 이병에서 일병으로 넘어갈 때쯤 대대 컴퓨터를 관리하게 됐는데, 그때도 클리퍼로 예비군 관리 프로그램을 짜서 돌렸었다. 하지만, 몇달 뒤에 보안 규정에 어긋난다는 이유로 삭제 당하고 영창에 갈 뻔 하기도 했었다.

군복무 후 복학한 후 어느 실험실에 들어가서 이것저것 잡일(…)을 하면서 계산용으로 포트란을 배웠고, 각종 측정장치에서 GPIB(IEEE-488.2 interface) 를 통해서 데이터를 가져오는 것을 C 언어로 작성하는 것을 했었다. 간단한 프로그램 몇개 짜주고 주로 대학원 선배들에게 밥한끼 얻어 먹고 … 그랬었다. 그러다가 대학원으로 갔고, 여전히 GPIB를 통해 데이터를 받아서 그것을 포트란이나 C 언어 등으로 가공해서 데이터를 추출하는 것을 주로 했다.

그리고, 그렇게 데이터를 받아와서 가공하는 것을 계속했고, 그것을 바탕으로 회사도 들어갔고, 지금까지도 어찌 보면 그 일을 계속 하고 있다. 다만, x86 에 ISA 또는 PCI 슬롯에 꽂혀 있는 GPIB 를 통해서 각종 센서나 측정 장치에서 데이터를 받아오던 것을 x86 또는 라즈베리파이 류의 IoT device 에서 USB 나 GPIO 로 센서나 측정 장치와 연결해서 데이터를 받아오고 있고, 데이터는 텍스트 파일로 저장하던 것을 MySQL 이나 MariaDB 같은 데이터베이스로, 센서에서 데이터 읽어오는 프로그램은 주로 C 나 LabView 로 하던 것을 파이썬으로, Origin 으로 하던 데이터 처리는 엑셀이나 R 로 하는 정도가 바뀐 거라면 바뀐 거다. 여전히 그래프는 Origin 이 이쁘게 잘 그리기 떄문에 엑셀이나 R 에서 처리된 데이터를 다시 origin 으로 넘겨서 그래프 그리는 용도로는 계속 쓰고 있지만, data fitting 이나 노이즈 제거 같은 것들은 데부분 파이썬이나 R 로 하고 있다.

6월 20일 정도까지 지금 다니는 회사를 다니고, 그 이후에는 다른 회사로 옮길 예정이다. 이 회사에 와서 작성한 자료중 저런 데이터 처리와 프로그래밍에 대한 것들이 34GB 가 나와서 깜짝 놀랐었는데, 리눅스에서 .cache, .vscode-server, .local 처럼 각종 잡다한 임시 파일(?)을 저장하는 곳을 제외하고 다시 보니 DB, 웹 포함해서 1.5GB 나온다. (vscode 와 pip 로 설치한 python 모듈 임시 파일이 얼마나 많은 거냐 …)

저게 잡다한 임시 파일들과 hwp, ppt, xls 등의 문서파일들을 제외한 순수한 데이터 처리와 관련된 자료의 용량이다. (문서 파일이 저장되는 계정은 swlee 가 아니다.)

나는 자료구조나 앨거리듬 … 이런 것을 정식으로 배워본 적이 없다. 학교 다닐 때 컴퓨터 공학과 강의 듣다가 윈도우 95가 완벽한 32비트 운영체제라는 교수의 말에 욱해서 (당시에 나는 OS/2 를 쓰고 있었다.) 한바탕 해서 F 맞은 뒤로는 그쪽은 쳐다도 안 보고 내가 책을 찾아 가면서 필요한 게 있으면 그때 그때 찾아보면서 했다. 지금도 파이썬으로 뭔가 할 때또 웹 브라우저로 계속 검색하면서 작업한다. 그런데 … 어찌 보면 그게 내가 하는 업무의 1/3 쯤은 되는 것 같다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다