상세 컨텐츠

본문 제목

[글 쓰는 엔지니어] 아무도 몰라주는 프로그램 개발자로서의 삶, 1부 작지만 성공한 경험

본문

반응형

 

 

 

저는 3가지의 프로그램 언어를 사용할 줄 압니다. 리습 (LISP), 비주얼베이직 (VBA), 파이썬 (Python) 모두 독학으로 공부했고, 제가 원하는 프로그램은 뭐든지 만들 수 있을 정도로 자유자재로 사용하고 있습니다. 프로그램 언어 역시 그저 열심히 살다 보니 갖게 된 저만의 능력이 된 것일 뿐, 특정 언어를 공부해 두면 나중에 도움이 될 거라며 공부한 적은 단 한 번도 없습니다. 문제는 제가 술자리에서 얘기를 하니 주변 지인들 모두 알고는 있는데 얼마나 잘하는지, 또 프로그램 언어로 뭘 하는지 까지는 자세히 잘 모릅니다. 그도 그럴 것이 이런 능력을 가지고 뭔가 부수입을 올리거나 제2의 인생을 준비하거나 하지 않기 때문이기도 합니다. 그리고 엔지니어의 본업이 아니라 그저 잔기술 또는 손기술 정도의 의미로 받아들여지니 회사 입장에서는 크게 신경 쓰지 않는 것 같습니다. 토목 엔지니어들에게는 구조, 수리, 선형, 지반 등의 계산, 도면 작성 및 관리, 공법 선정, 업체 선정, 보고서 작성, 내역서 작성 등의 능력이 더욱 중요합니다. 일련의 설계나 시공 업무에서 단순 반복 작업 등을 직접 수행하는 경우도 많지만 때로는 외주를 주고 일정 관리, 설계 도서 검토, 발주처 협의 등만을 수행하기도 합니다. 그러니 프로그램 언어를 할 줄 안다고 해서 누가 알아 주지도 않았던 것 같습니다. 이전 회사들과 마찬가지로 현재의 회사도 제가 프로그램 언어 3가지를 할 줄 안다는 정도만 인지하고 있을 뿐, 그 능력으로 회사를 위해 무엇을 할 수 있는지 모르시는 분들이 더 많은 것 같습니다. 저도 별로 티 내고 싶지는 않습니다.

 

맨 처음 프로그램 언어를 독학한 것은 2001년 처음 사회에 나와 엔지니어의 길을 걷기 시작했을 때였습니다. 오토캐드 (AutoCAD)는 대학교 때 컴퓨터 동아리에서 독학으로 공부를 이미 했던 터라 신입 치고는 꽤 잘한다는 얘기를 들었습니다. 그러나 아무리 오토캐드를 잘해도 신입에게 맡겨진 일은 도면 100장을 A3 용지로 프린트하는 일이었습니다. 당시만 해도 자동으로 다수의 도면을 프린트 해주는 프로그램이 나오기 전이었고, 있다 해도 회사마다 다른 도면의 특성을 맞추기 힘들었으므로 처음부터 끝까지 수동으로 작업해야 했습니다. 당시 R14 버전의 오토캐드로 도면을 하나 열어서 프린트 속성을 세팅하면 나머지 99장은 열기만 하면 이전에 프린트한 속성을 불러와 엔터만 치면 되는 일이었습니다. 이렇게 아무것도 아닌 단순한 일을 하는데 하루가 꼬박 걸립니다. 그럼 저녁이 되어서야 다른 업무를 할 수가 있는데, 또 다시 프린트 업무 지시가 내려왔습니다. 정말 처음 일주일 정도는 프린트만 했던 것 같습니다. 작업이 오래 걸리는 이유는 당시 컴퓨터 환경이 그리 좋지 못했기 때문에 도면 하나 여는데 시간이 걸리고, 프린트 버튼을 누르고 프린터로 전송하는데도 오래 걸리고, 프린터의 속도도 느려서 출력하는데도 오래 걸렸기 때문입니다. 그러면 끝이 나느냐 하면 그것도 아닙니다. 일일이 다 넘겨 보면 꼭 잘못 나온 도면이 있거나 빠진 도면들이 있으므로 다시 프린트해야 합니다.

 

반응형

 

일주일쯤 지났을 때 도저히 안 되겠다 싶었습니다. 원래 제 성격이 그랬던 것 같습니다. 지금 생각해 보면 단순 반복 작업을 극도로 싫어하는 성격이었던 모양입니다. 그런 업무를 잘 참고 오히려 긍정적으로 생각해서 시키는 일만 잘 하면 시간은 금방 간다고 생각해도 되는데 저는 그게 지금도 잘 안 됩니다. 그때는 정말 당장 때려치우고 싶을 정도로 싫었습니다. 멀고 험한 엔지니어의 길을 빨리 걷고 싶은데 신입이어서 소림사처럼 매일 사무실 청소나 하고, 고참들 재떨이도 비워주고, 하루 종일 프린트만 하다가 청춘이 끝나겠다 싶었습니다. 그래서 방법을 찾아봤습니다. 세상에 방법이 없으면, 세상에 없는 방법을 제가 만들면 된다고 생각했습니다. 오토캐드 책을 뒤져보고 인터넷을 뒤져봤습니다. 역시 정확히 제가 찾는 방법은 없어서 고민하던 중에 책에서 힌트를 찾았습니다. 오토캐드 안에 내장된 스크립트 (script) 기능이었습니다. 변수를 제어하지 못한다는 점에서 프로그램 언어라 볼 수는 없지만 당시 저로서는 하늘에서 내려온 동아줄 같은 느낌이었습니다. 혼자 공부하면서 무슨 기능인지 몰라 그냥 지나쳤던 기능이었는데 다시 보니 오토캐드 명령어를 텍스트 파일에 나열하면 중간에 사용자가 개입하지 않아도 순서대로 실행되는 기능이었습니다. 그렇다면 프린트도 첫 장을 열고 프린트 속성만 내가 입력해두면 다음 도면부터는 열고 프린트만 하면 되겠구나 싶었습니다. 곧바로 집에서 제 개인 컴퓨터로 도면 10장에 직사각형을 그리고 그 안에 숫자를 1부터 10까지 써봤습니다. 회사에 최대한 폐 끼치기 싫어서 이면지를 활용하면서 토너도 아낄 겸 생각해낸 아이디어였습니다. 그리고 다음 날 모두 퇴근하고 혼자 남아 도면 10장을 시험 삼아 스크립트로 실행해봤습니다.

 

결과는 첫 장부터 실패였습니다. 참담했고 포기하고 싶었습니다. 왜 에러가 나는지 아무리 봐도 모르겠고 물어볼 사람도 없어서 더욱 답답하고 힘들었습니다. 이렇게도 해보고 저렇게도 해보고 안 해본 짓이 없었습니다. 며칠을 더 시행착오로 헤맨 뒤에야 결국 성공했습니다. 에러가 왜 나는지도 알았고, 어떻게 하면 에러가 나고, 어떻게 하면 잘 되는지 완벽하게 이해가 됐습니다. 그 다음날 드디어 실제 업무에 적용해봤습니다. 신입 사원이 된지 한 달 만에 해낸 일이었습니다. 100장 정도를 돌려놓고 커피 한 잔 마시며 설계 기준을 읽고 있는데 당시 과장님이 제 모습을 보고 신입이 일 안 하고 논다고 뭐라고 하셨습니다. 그래서 제 모니터와 프린터를 가리키며 일은 컴퓨터가 잘하고 있으니 걱정 안 하셔도 된다고 말씀 드렸습니다. 사무실은 그야말로 난리가 났습니다. 말로만 듣던 자동화 프로그램이 우리 사무실에도 생겼다며 다들 반색했습니다. 프로그램은 아니라고 말했지만 다들 듣지도 않더군요. 그 뒤로 모든 프린트 업무는 제가 도맡아 하게 됐고, 컴퓨터에게 일을 시키고 나서 비는 시간에 저는 본격적인 엔지니어링을 배우고 공부할 수 있었습니다. 때로는 퇴근할 때 100장 정도를 돌려 놓고 퇴근하면 다음 날 아침에 출근하면 일이 끝나 있으니 공부할 수 있는 시간을 얼마든지 만들 수 있었습니다. 덕분에 저는 남들보다 회사에서 시간이 많아져 배울 수 있는 시간과 기회가 많았고, 제 입사동기들도 제가 프린트 업무를 도맡다 보니 덩달아 시간이 많아져 함께 동반 성장할 수 있었습니다. 나중에는 모두에게 노하우를 전수해줘서 저에겐 시간이 더 남게 되었고 회사 전체의 생산성과 업무 효율이 향상되는 시너지를 얻게 되었습니다. 스크립트가 프로그램 언어는 아니지만, 이런 성공적인 경험이 결국 프로그램 언어를 진지하게 독학하게 된 초석이 되었습니다.

728x90
반응형

관련글 더보기

댓글 영역