'개발자'에 해당되는 글 10건

  1. 2007.05.13 프로그래머 그 이후의 삶 - 자화상 (9)
one eighty five: The Platform of Surrender
one eighty five: The Platform of Surrender by Anna Gay 저작자 표시비영리변경 금지

저에게 아마 이 세상에서 제일 재미있는 직업이 무엇이냐고 묻는다면 아마도 개발자라고 할 것 같습니다. 두 번째로 재미있는 직업이 무엇이냐고 하면 시스템 엔지니어라고 할 것 같고, 세 번째 마지막으로 재미있는 직업이 무엇이냐고 하면 컨설팅이라고 말하게 될 것 같습니다. (그리 특별한 이유가 있는 것이 아니고 앞서 말한 순서대로 제 경력이 만들어졌기 때문입니다. ^^)

제가 컴퓨터 언어를 배우게 된 것은 아마 꽤 오래 전 COBOL이 최초였던 것 같습니다. 그 당시에 애플(Apple)이라고 불리던 PC는 저에게는 굉장히 고가의 장비여서 살 수 없었고, 그 다음 게임기로 유명했던 MSX 등도 친구 집에서 간혹 사용해 봤을 뿐 가질 수 없는 기계였습니다. (그래서 간혹 블로그에서 사람들이 옛날 추억 삼아 애플이나 MSX에 대한 글을 읽었을 때마다 옛 생각이 나서 마음이 좀 아픕니다.  ㅠㅠ)

하지만, 아주 우연한 기회에 당시 기업에서 많이 사용하고 있던 COBOL을 배우게 되었습니다. (COBOL이 꽤 오래된 언어 같지만, 아직도 일부 금융권에서는 파스칼의 전신인 PL-1과 COBOL를 사용하고 있습니다. ^^) 그래서, 그 당시에 최고의 장비라고 할 수 있는 메인프레임을 처음 사용해 볼 기회를 가지게 되었습니다. 메인프레임은 지금도 그렇지만 그 당시에도 매우 비싼 장비여서 단말기를 아무나 함부로 사용할 수 없었고 극소수의 제한된 사람만 사용 가능한 장비였습니다.

덕분에 COBOL를 배우면서 메인프레임에서 프로그래밍하는 방식을 조금씩 배우게 되었는데, 그 당시 제가 하던 코딩은 지금처럼 PC의 통합환경에서 코딩을 하던 것과는 많이 상이하다고 할 수 있습니다. 앞서 언급한 바와 같이 당시에는 전산장비가 매우 고가였기 때문에 단말기에서 코딩을 하는 방식이 아닌 종이 위에 코딩을 하는 방식으로 프로그래밍이 이루어졌습니다. 덕분에 프로그래밍을 단말기와 키보드가 아닌 연필과 지우개로 배우게 되었습니다.

지금 생각해보면 말도 안 되는 이야기처럼 들리지만 그 때는 종이 위에 코딩을 해서 키펀칭을 하는 분들께 드리면 해당 코딩라인 수만큼 결과물로 펀칭카드를 받았고, 펀칭카드를 입력장비에 올려놓고 리더기를 통해서 프로그램을 처리했습니다. 혹시라도 코딩이 잘못되는 경우가 발생하기라도 하면 위와 같은 과정을 반복해야 했는데, 키펀칭도 접수순서가 있는 관계로 다시 하려면 상당한 시간을 기다려야 해서 종이 위에 코딩을 할 때 문법적인 오류뿐만 아니라 머리 속으로 디버깅을 해서 문제점을 찾아야 했습니다. (당시에 저를 가르쳐주셨던 선생님께서는 머리로 디버깅을 아주 능숙하게 하셨는데, 지금 생각해 봐도 대단한 능력이셨던 것 같습니다.)

이렇게 상당히 원시적으로 힘들게 코딩을 해우기는 했지만, 그래도 종이 위에 코딩을 하면서 배운 것도 많았습니다. 생각하시기에 따라서는 종이 위에 코딩을 하는 것을 우습게 생각하실 수도 있겠지만, 종이로 코딩을 하려면 일단 구문에 대해서 정확하게 알아야 하고, 알고리즘에 대해 고민을 하고 코딩을 시작해야 하기 때문에 논리적으로 사고를 하는데 매우 도움이 됩니다. 적절한 알고리즘에 대해 고민을 하지 않고 프로그래밍을 선행할 경우 중간에 혼동이 생겨서 다시 처음부터 작업을 해야 하는데, 이 작업을 연필과 종이로 재작성 하려면 엄청난 시간과 노력이 수반됩니다.

아주 당연한 이야기지만 연필로 코딩을 하다가 수정을 하게 보면, 종종 중간의 코딩을 지우거나 추가를 해야 했는데, 이런 경우 공간이 모자라는 경우도 많아서 추가되는 부분이 많은 경우에는 코딩을 별도의 용지에 작성해서 기존의 코딩 부분에 붙여야만 하는 경우도 많았습니다. 더욱이 너무 많이 지우개를 사용하는 경우에는 용지가 찢어져 버려서 테이프로 코딩용지의 뒷부분을 붙여야 했던 일도 다반사로 일어나서 신중하게 코딩을 해야 했던 것 같습니다.

이런 문제들을 몇 번 겪고 나면 다른 사람이 시키지 않아도 함수(Function)나 프로시져(Procedure)만을 메인 부분에 기술하고, 해당 함수나 프로시져는 다른 종이에 기록하는 방법을 사용하게 되는데, 이렇게 개발하면서 왜 함수와 프로시져가 분리되어서 코딩이 되어야 하는지를 뼈절이게 배웠습니다. 다 아시다시피 이런 방식으로 프로그래밍을 할 경우 코드의 가독성이 높아지게 되고 논리구성도 체계적으로 가능하게 되는데, 이런 연유로 지금도 각종 프로그래밍 서적에서 위와 같은 방식으로 프로그래밍을 하라고 프로그래밍을 처음 배우시는 분들에게 가르치는데, 아무래도 제 생각엔 그러한 연유에는 종이로 코딩을 하던 역사가 반영된 결과가 아닐까 하는 생각을 해 봅니다.

아무튼 이런 제 프로그래머 인생 중 가장 최고의 정점은 아마도 지금의 회사에 들어와서 패키지를 만들 때였던 것 같습니다. Visual C++를 가지고 만든 패키지였는데, 설계, 개발은 물론이고 인스톨실드(InstallShield )를 가지고 패키지까지 다 해야 했던 고난의 작품이었습니다. 게다가 나중에는 사용자 설명서, 제품 설치 매뉴얼까지 다 만들어야 해서 정말이지 꽤나 힘들었던 패키지 개발이 아니었나 하는 생각이 듭니다. 하지만, 다른 개발자분들도 마찬가지이겠지만 패키지를 개발하다 보면 새벽부터 밤늦게까지 야근을 해야 하는 경우도 많고 그 당시에는 무척이나 힘들지만, 나중에 완성된 작품을 보면 뭐라 할까 남들은 모르는 희열감을 느낄 수 있었던 때였던 것 같습니다. (아무래도 이런 희열감 때문에 프로그래머라는 직업에 많은 분들이 뛰어드는지도 모르겠습니다.) 더욱이 패키지를 개발한 당시에는 회사의 10대 패키지 안에 들어 당당하게 홈페이지에 게시가 될 정도였으니 개발자로의 자부심도 꽤 괜찮았던 것 같습니다.

하지만, 제가 만든 패키지가 여러 가지 이유로 외산 패키지에 밀리면서 제품 개발이 중단되었고, 전 갑자기 개발자에서 시스템 엔지니어(System Engineer)로 업을 바꾸게 되었습니다. 아마도 이 때가 제 인생에서 제가 프로그래머로써 계속 살아가야 하는지에 대한 고민을 가장 많이 했던 시기였던 것 같은데, 어찌됐던 간에 자의 반 타의 반으로 인해 하루아침에 프로그래머에서 시스템 엔지니어(System Engineer)로 전업을 하게 되었습니다.

SE를 할 때도 개발자와 마찬가지로 밤을 새는 경우도 많아서 업무적으로도 매우 힘든 시기였기는 했지만, 업무를 수행하면서 시스템 운영에 대한 기본기를 배울 수 있었고 또한 시스템 및 DB 튜닝을 배울 수 있는 기회를 얻어서 그리 나쁘지만은 않았던 것 같습니다. SE 일 이후로 택한 업무가 지금 하고 있는 컨설팅인데, 이제는 더 이상 기계를 만질 일도 없고 프로그래밍을 할 기회도 없어진 것 같습니다. 그냥 누군가 말했듯이 백지 위에 글자면 족하다고나 할까요?  어찌 생각하면 프로그래머랑 전혀 상관이 없는 삶이고, 제가 그 옛날 프로그래머에 입문을 하면서 꿈꿔왔고 바라던 삶은 아닌 것 같지만, 그래도 또 다른 인생을 사는 것이 새로운 활력소를 줄 수 있어서 재미있는 것 같습니다.

컨설팅을 하면서 한 가지 재미있는 사실은 그 오래 전에 배웠던 종이 코딩이 업무를 하는데 있어 도움이 된다는 것입니다. 사용하는 언어가 컴퓨터 언어에서 사람의 언어로 바뀌었지만, 컨설팅도 프로그래밍과 마찬가지로 항상 논리와 흐름을 먼저 생각해야만 좋은 프로그램(보고서)를 만들 수 있다고나 할까요? 아무튼 제 인생이 앞으로 어떻게 전개되어 어떤 모습으로 다가올 지 모르겠지만, 이전의 삶을 볼 때 앞으로도 그리 평탄하게 가지는 않을 듯 싶습니다.

그래도 오늘 문득 그 옛날 담배연기 자욱했던 방에서 사람들이 두드리던 정겹던 키보드 소리가 많이 그리운 것을 보면 프로그래머에 대한 기억은 떨쳐버리지는 못하는 것 같습니다.

추신: 그냥 밤에 갑자기 생각이 나서 쓴 글인데 아침에 일어나서 다시 읽어보니 신세를 한탄하는 것 같기도 하고, 오래된 이야기들을 주절주절이 떠드는 것 같아 갑자기 늙었다는 생각도 듭니다. ^^
신고

댓글을 달아 주세요

  1. Favicon of http://thinkerlog.tistory.com BlogIcon 날퍼  수정/삭제  댓글쓰기

    미래에 시스템엔지니어나 네트워크 엔지니어가 되고 싶은 고등학생인데~

    제 꿈에 가까운 포스트를 볼 수 있어, 정말 와닫고 갑니다.
    감사합니다 ^^

    2007.05.13 05:31 신고
    • Favicon of http://mbastory.tistory.com BlogIcon 5throck  수정/삭제

      저도 뭐 대단한 사람은 아니지만, 뭐든 꿈을 크게 가지면 원하시는 바를 꼭 이루시라 생각합니다.

      2007.05.13 20:57 신고
  2. Favicon of http://www.siren99.net BlogIcon 시렌  수정/삭제  댓글쓰기

    꽤 많은 도움이 되었습니다. 잘 읽었습니다. :)

    2007.05.15 00:45 신고
  3. Favicon of http://credit.cashdata.com BlogIcon 현대카드 영업사원  수정/삭제  댓글쓰기

    조금 다른 이야기입니다만...
    저는 전공과 전혀 다른 영업직을 하고 있습니다. (프로그램은 취미로 계속 하고 있어요.)
    그런데도, 여태 익혔던 프로그래밍이 제 일이나 삶을 편하게 해주는게 참 기특하기도 하고 그런느낌입니다.

    2007.10.29 13:58 신고
  4. BlogIcon egiong  수정/삭제  댓글쓰기

    자알 봤습니다. 유서깊내요 :)

    2009.08.07 11:10 신고
  5. Favicon of http://www.ujuc.kr BlogIcon 사진우주  수정/삭제  댓글쓰기

    잘봤습니다^^..

    저희 교수님께서 말하시던.ㅡ.ㅡ 코딩이 나와서 깜짝놀랐습니다..ㅋㅋㅋ^^

    아직..도 길못잡은 대3인...저로서는...ㅠ.ㅠ. 방향잡기 위해서 이것저것 하고있는데 한번더 생각해봐야겠습니다^^..ㅋㅋ

    2009.08.21 18:30 신고

카테고리

나누어보기 (617)
스타트업 & 벤처 (15)
컨설팅이야기 (239)
MBA이야기 (39)
CC Korea 이야기 (36)
문화 이야기 (92)
세상사는 이야기 (188)
IT 이야기 (8)
Statistics Graph
BLOG main image
세상을 보는 또 다른 시선
때로는 '사실'보다 '희망'이 더 절박할 때가 있습니다. 적절한 희망이야말로 사람을 움직이는 원동력이 되고, 사람이 움직이면 희망은 곧 사실로 바뀌게 됩니다.
by 5throck

세상을 보는 또 다른 시선

5throck's Blog is powered by Tattertools / Supported by TNM Media
Copyright by 5throck [ http://mbastory.tistory.com/ ]. All rights reserved.

Tattertools TNM Media DesignMyself!