Rath World » 2009 » April

Archive

Archive for April, 2009

디버거랑 결별하세요

April 14th, 2009 6 comments

 assertTrue()의 Turn off your step-thru debugger를 보다가 어딘가 옮겨놓고 싶어서, 옮겨봅니다. 

 

상황 

나는 디버거 없이는 살 수 없는 초보 프로그래머. 내가 짠 코드에서 버그가 생겼다. 사수한테 도움을 요청했다. 상황을 설명하고, 해볼 수 있는 거는 다 해봤다고 말했다. 그러자..

 

대화

사수: 나는 디버거로부터 떨어져있으려고 노력하지. 

디버거는 목발이야. 그거 없이도 너는 잘 걸을 수 있지. 

만약 니가 디버거 쓰는 습관을 들인다면, 너는 게을러질꺼야. 네 머리속 어떤 부분은 활동을 멈출테지. 디버거가 네가 만든 버그를 찾아줄꺼라고 생각할테니까. 하지만 현실에선 말이야, 니가 버그를 만들었다면, 니가 찾아야만 한단다. 

 

초보 프로그래머: 정말 그지같은 버그가 생겼을 땐 어떻게 하시는데요? 

 

사수버그가 어디있는지. 장비가 내게 말하도록 하지. 

 

그렇게… 

그 프로그래머는 디버거 쓰기를 그만두고, 프로그래밍 스킬이 빠르게 발전했다는 아름다운 이야기. 

여기서 나온 디버거는 step-thru 디버거를 말함. 

이 글은 스프링노트에서 작성되었습니다.

Categories: Development Tags:

블로그에 기술적인 내용을 쓰는 것

April 7th, 2009 3 comments

블로그에 기술적인 내용을 쓰는 것은 어떤 의미가 있을까. 

 

내가 요즘 적용하고 있는 규칙은 기술적인 내용을 최대한 피하는 것이다. 인기 있는 패스트푸드를 만드는 일이 아니라면, 앞뒤 내용이 거의 생략될테고 그 결과 독자로 하여금 문맥을 거의 따라갈 수 없게 만들 뿐이다. 그렇다고 독자를 고려하여 앞뒤 내용을 다 채워 문맥을 완성하여 인기있는 패스트푸드를 만들자니 리소스가 너무 많이 투입된다. 

 

어디서 social knowledge base 서비스를 만들어준다면 모를까. 더이상 내 블로그가 멋져보이는 코드로 뒤덮히는 것을 바라지 않는다. 

작자 입장에서(writer)는 뭔가 어려운 것을 성취했을 때, 이것을 기념하기 위해 블로그 포스팅을 하고 싶은 욕구가 많이 생기는 것이 사실이다. 자랑하고픈 마음도 있지만 스스로에게 상을 주는 어떤 행위가 필요한 것이 가장 크다. 포스팅의 형태로 발현되면 피드백을 얻을 수 있는 장점도 있긴 하지만, 이런 수준이 되려면 글의 품질이 어느정도까지 올라와줘야만 한다. 그래서 잘 구성된 글을 쓰자니.. 스스로에게 상을 주는 것이 아니라 일만 하나 더 얹어주는  기분이 들기까지.   

 

블로그에 따끈따끈한 기술 관련 내용을 올렸을 때 생기는 또 하나의 문제가 있다면, 그것이 일시적인 행위임에도 불구하고 반영구적으로 보일 소지가 많다는 것이다. 누군가가 내가 3주전에 포스팅한 JavaFX 개발 후기를 읽는다면 내가 요새 JavaFX를 가지고 노는 줄 알지도 모른다. 하지만 해당 포스팅과 함께 JavaFX는 내 마음속에서 사라진지 오래. 아무런 기약도 없이 “시간나면 해봐야지” 하고 $25,000에 눈이 멀어 JavaFX Challenge에 지원서도 냈지만 아마 시작도 안하게 되지 않을까 싶다. 

 

기술적인 내용을 쓰는 것 보다는 기술과 관련된 이야기를 쓰는 것이 더 좋다. 

Categories: Uncategorized Tags: ,

소프트웨어 엔지니어로 돈을 번다는 것

April 7th, 2009 6 comments

기술력과 보수는 아무런 상관이 없다. 기술력은 결과물(software)을 동일한 시간에 얼마나 더 빠르게 만들고 얼마나 더 품질을 좋게 하고 얼마나 더 성능좋게 만드느냐 정도이다. 나는 도무지 트렌드에 관심이 없어서 잘 알지 못하지만, 요새는 함께 일하는 사람과의 인터랙션이 중요하게 여겨지는 것처럼 보인다. 기술 인프라가 충분히 발전했기 때문인가? 더이상 기술력에 리소스를 투입하지 않아도 되는 세상이 온 것만 같다. 나는 실제로 그렇게 생각한다. 좋은 기술들이 도처에 널려있다. 이제는 현재 자신의 상황에서 필요한 기술이 무엇인지 판별하는 능력과, 그것을 빠르게 자기것으로 만들 수 있는 흡수능력(공부 잘하는 애라고 쳐두자)만이 중요하다. 아무튼 이것들은 어디까지나 기술력에 대한 이야기이다. 

 

중고등학교 시절을 회상해본다. 학교에서 잘 나가는 친구들이 있다. 이들은 멋져 보인다. 그리고 이들으로부터 소외되면 큰일날 것만 같은 기분도 든다. 그래서 그 그룹에 속하기 위해 노력하는 학생도 있고, 그들이 맘에 안들어서 새로운 파(group)를 조직하는 자, 그 파에 가담하는 자들도 있다. 이쯤되면 전교생의 과반수가 이 트렌드에 가담하게 되고 새로운 문화가 자리잡게 된다. 하지만, 공부에 도움 되는 것은 단 하나도 없다. 물론 학생들은 이 사실을 잘 알고 있다. 그들은 공부에 *정말로* 관심이 없기 때문이다. 

 

그런데 학교에서의 이런 노력이 정말로 쓸모가 없을까? 내 경험으로 보면, 이들은 공부하는 학생들만큼 (혹은 그 이상) 잘 나가기 위해서 엄청나게 고군분투한다. 양아치들은 오래가지 못한다. 그 바닥에서도 엄청난 노력없이는 무엇도 성취할 수 없다. 이들이 높게 평가받을 수 있는 분야는 과도한 경쟁에서 살아남을 수 있는 기본 바탕이 되어있다는 것이다. 지는 것을 싫어하고 자존심이 강한 것도 결코 나쁜 것만은 아니다. 얼마든지 긍정적으로 활용될 수 있는 황금같은 속성들이다. 분야가 다를 뿐이지, 자기애가 충분하고 열정이 있다는 것 아닌가. 

 

다시 소프트웨어 개발로 돌아와서. 언젠가는 이런 생각을 한 적이 있다. 높은 기술은 보수가 적고, 낮은 기술은 보수가 높은 것은 아닐까하는. 시간이 충분히 지나서야 알았지만 얼토당토 안되는 생각이였다. 기술과 보수는 아무런 상관이 없었다. 기술력이 높다고 보수를 많이 받아야 한다고 생각한다면, 아직도 부모님 품 속에서 징징대는 아기 마인드이다. 책 많이 읽으면 칭찬해주고 맛있는 반찬주는거랑 뭐가 다른가? 그보다는 영화 ‘비열한 거리’의 천호진의 대사가 더 훌륭하다.  

 

병두야, 세상에서 성공하려면 딱 두가지만 알면 돼. 나한테 필요한 사람이 누군지, 그 사람이 뭘 필요로 하는지 ..

 

돈을 벌고자 하는 소프트웨어 개발자한테 필요한 사람은, 

(1) 내게 줄 돈을 마련할 수 있는 자. 

(2) 내가 잘 만들 수 있는 새로운 소프트웨어를 필요로 하는 자

이고, 

 

그 사람이 필요로 하는 것

(1) 직접 물어보거나 눈치껏.

(2) 자기 취향 잘 맞춰주는 녀석. (반항하는 것을 좋아하는 사람도 있다는 것을 잊지 말 것) 

이다.

 

마지막으로 간과할 수 없는 부분이 있다. 나는 트렌드에 관심이 개뿔 없기 때문에 위와 같은 생각만 할 수 있다고 하지만,  많은 사람(고객)들이 자신이 만들고자 제품과 직접적인 관련이 *전혀* 없는 기술이라도 여튼 기술력 높다고 소문난 사람을 신뢰한다는 것이다. 그렇기 때문에, 딱히 고객이 돈이 많지 않고, 내가 잘 할 수 있는 분야에 대한 니즈가 없다 할지라도 기술력이 높으면 돈을 주는 경우가 있다.  이러한 경향 또한 천호진의 대사를 벗어날 수가 없는데, 고객이 필요로 하는 것이 ‘대체적으로 기술력이 높은 사람’ 이기 때문에 고객의 니즈를 당신 스스로가 맞춰준 것이기 때문.  

 

아니면 창업을 하시던가! 

Categories: Uncategorized Tags: