7장. 자유의 출항 뿌뿌

Part2. 자의식 정착기

by 케이시르

24. 시간과 돈, 그리고 사람

캡스톤 디자인에서 "금상"을 수상하게 되어 창원 컨벤션 센터에 작품을 전시하게 된다. 전시회는 2박 3일에 일정이었고 공식 행사이기 때문에 3일간 출석이 인정되며 9급 공무원 출장비도 함께 받게 된다, 대학생들에게 9급 공무원 출장비는 생각보다 큰돈이다.

3일간의 자유로운 시간과 부담 없이 쓸 수 있는 돈이 주어진 상황이다. 우리는 무엇을 먹고 즐길지에 대한 고민만 하고 있다. 모든 것이 한가롭게 느껴지고 자유롭다는 느낌이 든다. 시간, 돈, 사람의 세박자는 전혀 부족함이 없다. 이것이 요즘 말하는 경제적 자유 일까?


전시회가 끝나고 사회생활을 시작할 준비를 하고 있다. 그리고 내 옆에 똑똑한 친구 한 명이 있다. 친구는 지금 감기 몸살에 걸려 상태가 좋지 않아 보인다. 기숙사 침대에서 1시간 정도 누워 쉬더니 갑자기 일어나 책을 들고 도서관에 간다고 한다.

"몸이 안 좋은 것 같은데 더 쉬지 그래?" 친구는 상냥한 말투로 나에게 말했다.

"지금 자면 나 자신에게 너무 미안하잖아~" 나는 게임을 하며 그 친구를 바라보며 속으로 생각한다. "그렇게 미안했을까?? 적당히 해야 하는데~~"

그 친구는 미국에서 개발자가 되는 것이 목표이고 그 길을 준비한다고 한다.


취업을 위해 채용공고를 보고 있는데 코스닥 상장기업에 미국에 지사를 둔 회사가 눈에 들어온다. 나도 미국에 가보고 싶어 그곳에 지원하여 면접을 보고 있다. 포스가 대단하시고 나이가 있어 보이시는 분과 면접을 보고 있다. 그분은 회사 부사장이자 개발 연구소를 맡고 계신 분이다. 긴장하고 있는 나를 보시며 "OOO교수 잘 있나??" 동문 친구라고 말씀하신다.

"운영체제 과목을 가르치시고 계시며 많은 학생들은 그 수업을 꼭 들어야 하는 과목이라고 말하고 있습니다."라고 대답했고 다른 기술 질문들과 함께 면접은 마무리가 된다.


면접 본 회사에 합격을 하여 오늘은 입사 첫날이다. 아무도 나에게 관심이 없고 조용하기만 하다. 과장님 한분이 조용히 다가와 MS-SQL책 한 권을 주며 보고 있으면 된다고 한다. 출근하여 일주일을 책만 지루한 책만 보고 있다. 군대에서 일주일보다 더 긴 것만 같은 숨 막히는 일주일이다.

"사회생활이란 이런 것인가?? 우리 아빠는 이 생활을 20년 넘게 하고 계셨구나!!" 많은 아빠들이 얼마나 고생하고 있는지 느껴진다.

대학생 때는 수강신청을 잘 맞추면 시간의 여유를 가질 수 있지만 돈이 없어 마음껏 누리지 못한다.
사회생활을 시작하면 돈을 벌게 되면서 돈이 있지만 시간의 여유가 없어서 누리지 못한다.
나이가 들어 시간과 돈이 여유가 생기지만 나의 마음을 잘 알아주는 사람이 주위에 없다.

세상에서 말하는 경제적 자유는 무엇인가요?
넉넉한 돈이 있으면 시간의 여유가 생기고 그 여유는 사랑을 지킬 수 있다는 논리라고 생각한다.
자본주의 사회에서 너무나 타당성 있고 근거 있는 이야기이다.

하지만 더욱 중요한 것은 타이밍이라고 생각한다. (돈, 시간, 사람) 세상의 3가지는 어느 하나 자유롭게 가질 수 없다는 것을 알기에 어는 것이 더 중요한지에 대한 답을 찾으려고 하는 것처럼 보인다.
시간과 돈, 그리고 사랑


25. 세상의 이치

하루 종일 컴퓨터 관련 서적만 보다가 드디어 실무에 투입하게 된다. 실제 상용화된 프로그램은 얼마나 잘 설계되어 있을지 기대반 걱정반으로 설명을 들을 준비를 하고 있다. 바로 소스를 보여주면서 프로그램에 대하여 설명해 주고 있다. 당황하고 있는 난 과장님에게 물었다.

"혹시 설계 문서는 따로 없나요?"

의아하다는 표정과 함께 문서 관리를 하면서 레거시 코드들은 운영할 수 없다고 한다. 그래도 어느 정도 규격화된 코드를 설명해 주지만 이리저리 정신이 없다.

필드에 나와 체계적인 프로그래밍 기법 및 설계문서를 기대했지만 요구사항을 빠르게 해결해야 하는 운영 업무들은 기존에 비슷한 유형의 코드들을 복사/붙여 넣기 하여 개발하기 바쁘다. 나도 세상의 이치라고 생각하고 관습에 따르고 있다.


많은 회사들이 산출물 없는 코드를 양상하고 있다.

코드 외에 산출물을 만들어 내지 않는 이유는 무엇일까?
여러 가지 이유가 있겠지만 산출물의 중요함을 모르기 때문이고 심지어 어떤 산출물이 있어야 하는지도 모르는 경우가 많다. 지금까지 만나 온 개발자들 모두 문서 쓰는 것이 제일 어렵다고 말하며 실제 남아있는 산출물이 거의 없다.

코드는 무조건 맞아야 된다. 틀리면 버그이다. 하지만 산출물은 완벽하게 맞지 않아도 된다.
그럼에도 산출물이 주는 강력함을 아는 사람은 얼마나 중요한 것인지 알 것이다. 개인적 성향으로는 코드의 주석을 쓰지 말고 산출물을 남기라고 하는 편이다.

이유는 간단하다. 코드는 무조건 맞아야 하기 때문에 주석도 맞아야 한다. 주석과 코드가 불일치하는 관리야 말로 최악의 관리라고 생각한다. 코드를 믿어야 할지? 주석을 믿어야 할지? 혼란만 가중될 수 있기 때문이다.

산출물은 완벽하게 맞지 않아도 된다고 말한 것은 전반적인 프로그램의 맥락을 이해하는데 초점을 두는 것이 산출물이다. 또한 모든 개발자에게 산출물을 남기라고 부탁하기보다는 획일회된 기술 문서 유지를 위해서는 Technical Writer 전문 담당자가 있어야 된다고 생각하는 편이다.


26. 고수의 힌트

내가 입사하게 된 이유는 VB6.0보다 세련된 C# 윈도즈 프로그램으로 전환하기 위함이다. 그렇게 VB6.0 코드를 C#으로 공통 라이브러리 위주로 전환하는 작업을 하였는데 말 그대로 Translate 작업이었다. 심지어 VB6.0 코드를 C#코드로 완벽하진 않아도 문법을 그대로 변환해 주는 Tool도 존재하였다. 그렇게 공통 함수들이 정리가 될 즈음 고수를 만나게 된다.

그리고 내가 Convert 한 코드를 보시더니 C#으로 만들라고 했더니 똑같이 만들고 있으면 어떡하냐며 꾸중을 듣고 있다. "맞다" 내가 만들고 있는 것은 C#이 아니다.

고수는 MS Pattern & Practice Team 소스 코드를 참고해 보라고 하시며 Sample코드를 주셨고 거기에는 엄청난 내공이 숨겨져 있다.


고수의 지시대로 단순하게 VB6.0을 C#으로 문법을 바꾸는 것이 아니라 기능을 문서로 정리하고 그것을 완전히 새롭게 만드는 프로젝트로 바뀌었고 그 작업을 혼자서 하게 된다. 실무 초보인 나에게 시키긴 했으나 의도한 정답도 난 알 수 없었으며 기존에 배웠던 UML을 이용하여 문서화를 하였고 MS Pattern & Practice Team에서 제공되는 디자인패턴도 따라 해 가며 조금씩 프로젝트를 완성해 나가고 있다. 여전히 정답과 정확한 길을 알려주는 사람은 없다. 방향만 지시해 줄 뿐이다.

고수의 피드백에는 칭찬은 없고 완전히 잘못된 방향이 아니면 그대로 지켜보고 있다. "과연 내가 하는 것이 정말 맞는 걸까?"라는 의문은 계속 가지며 프로젝트를 진행하고 있다.

"혹시 아무런 피드백이 없는 것이 칭찬이자 잘하고 있다는 뜻일까?"


무소식이 희소식이다.

"무소식이 희소식이다."라는 말이 매우 공감되지만 한편으로는 슬픈 일이다.

이 말은 기쁜 소식을 전하기 어렵다는 의미로도 해석이 된다. 정말 소수에 인정받는 사람을 제외하고는 자신이 하는 일이 잘하고 있는지 평가받는 것조차도 어려운 현실로 보인다.

"잘했어도 잘한다고 말하지 않고 또 못했어도 못한다고 말하지도 않는다." 결국 아무런 피드백도 주고받을 수 없으며 사실 더욱 가슴 아픈 것은 남의 일에 관심조차 없다는 것이다.

또한 슬픈 소식은 늦게 알려진다. 슬픈 소식을 전하는 일은 매우 어렵기 때문이다. 그럼에도 전해진 소식은 슬플 수밖에 없다.

자신이 하는 일에 피드백을 받지 못하여 의심하거나 주저하실 수 있습니다. 하지만 스스로 가치 있는 일을 하고 있다면 잘한 것인지는 알 수 없어도 옳은 일이라는 것은 확실할 수 있다.


퀘스트 보상으로 소프트 스킬 3개, 하드스킬 4개를 획득하셨습니다.

[INVENTROY]

(소프트 스킬)

경제적 자유
이치
참견


(하드스킬)

VB6.0
Visual Studio6.0
.NET Framework
Visual Studio 2005
THE
LOVEBIT
CODE

사랑과 돈, 그리고
영원의 비밀


[쿠키]
C, C++ 언어는 다양한 OS에서 실행될 수 있는 언어로 Windows, Linux, MacOS 모두 실행되는 언어이다. 하지만 마치 Microsoft Windows 기반 언어로 착각하게 만드는 것은 Visual Studio라는 강력한 통합 개발 도구가 있었기 때문이다.

VB6.0은 Microsoft에서 만든 언어로 Windows에서만 실행시킬 수 있는 프로그램만 제작할 수 있다. 하지만 다른 언어에 비해 조작이 쉽고 간단하여 당시 중. 고등학생들에게 "정보 처리 기능사" 자격증 시험으로도 쓰인 언어이다.

VB6.0은 Visual Studio 2005 출시되면서 Microsoft에서 개발된 더욱 진화되고 현대적인 모습의 C#이 개발되면서 점차적으로 지원을 중단하게 된다.

C#은 CLR(Common Language Runtime)이라는 가상머신 위에서 작동되는 언어이다. 안타깝게도 가상머신을 만들었지만 Windows OS에서만 지원되도록 만들었다.
CLS(Common Laguage Specification)을 준수한 모든 언어는 CLR 가상머신에서 실행되도록 설계하여 CLR을 통해 모든 언어를 통합하려는 목표를 가지고 있었다.
Microsoft Visual Studio


이전 10화6장. 해산의 고통