CAFE

주정섭의 생각

고수를 찾아서 1.. 고수 판별법

작성자주정섭|작성시간05.07.06|조회수1,137 목록 댓글 4

개발자들의 모임에 가면 참으로 벼라별 사람들을 만난다. 그런데, 몇몇 개발자들은 자신의 내공(?)을 남들한테 자랑하려 한다. 물론, 대부분 사람들은 자신의 실력을 남한테 자랑하고 싶은 마음이 있으므로, 당연한 일일 수도 있다. 나 또한 초보자 시절에 그러했고 지금도 그런 면이 없잖아 가끔 있다. 그런데, 이 자기 자랑에 지나치게 들뜬 개발자 중에는 사이비 내공으로 엉뚱한 말을 하여, 다른 개발자들을 혼란스럽게 하는 경우가 종종 있다.

 

그렇다면, 진정한 내가 고수와 사이비 고수를 어떻게 구분할 수 있을까? 사실 어떤 사람의 개발 실력을 단번에 판단하기란 힘들지만, 내 경험에 의한 몇가지 힌트를 드릴까 한다. 사이비 고수와 진정한 고수를 구분할 줄 알아야만, 사이비 고수한테 들은 엉뚱한 거짓말로 인해 골머리 썩힐 일이 없기 때문이다. 한참 오래전에 나는 스레드에 대해서 완존히 구라를 친 어떤 개발자한테 당한 적이 있기 때문이다. 고수를 판별하는 첫번째는 일단 의심하고 보자는 것이다. 많은 사람들이 의심하는 것을 나쁘다고 하나, 내 생각에 무조건적인 믿음은 의심보다 백배 더 나쁜 것이다.

 

그럼 본격적으로 사이비 고수를 판별하는 법을 알아 보자.

 

첫번째로, 그 사람이 사용하는 용어를 잘 들어 보라는 것이다. 사이비 고수들 일수록 이상한 약어와 어려운 단어를 잘 들이댄다. 사이비 고수는 그 약어나 단어의 진정한 의미를 모르므로, 아무대나 마구 들이대는 식으로 그 약어나 단어를 사용한다. 즉, 용어를 정확히 이해하고 문맥에 맞게 사용하는가를 판단해 보라는 것이다. 나는 객체지향에 대해서 논의를 할 때, 클래스와 객체, 인스턴스라는 용어에 대해서 정의를 내려보라고 상대에게 요청한다. 객체지향의 기본인 이 단어들의 뜻구분 조차 하지 못한다면, 그 사람과는 객체지향에 대해서 나는 논하지 않는다.

 

많은 개발자들이 이상한 약어와 용어를 자주 남발한다. 문제는 그 의도이다. 자신의 사이비 내공을 감추기 위해 어려운 용어를 들이대는 경우가 허다하다. 이 증상은 실력없는 사이비 교수들에게도 자주 나타난다. 원래 이상한 단어와 약어를 잘 만드는 것이 이 업계의 기본적 생리다. 예를 들어 마이크로소프트와 볼랜드 같은 큰 소프트 업체들도 이런 짓을 자주한다. 별것 아닌 개념에 이상한 이름을 붙여, 뭔가 그럴 듯하게 보이게 하는 것이다. 왜 볼랜드는 델파이 9라고 하기 보다는 다이아몬드 어쩌구 저쩌구 하는 이름을 갖다 붙였으며, 왜 마이크로소프트는 윈도우 버전 6, 7 대신에 카이로, 롱혼 같은 단어를 가져다

붙이는지 그 이유가 그러하다.

 

사이비 고수들은 용어의 정확한 의미를 잘 모르므로, 자기나름대로 이상한 단어를 생성하는 경우가 많다. 디자인 패턴을 논하면서 A 패턴을 B라는 패턴으로 엉뚱하게 말하기도 하며, 말도 안되는 희안한 자기만의 패턴 이름을 만들어 내는 경우도 허다하다. 어떤 개발자가 loose binding이라는 단어를 내게 들이 대었다. 객체지향에는 loose coupling와 late binding라는 단어는 있으나, loose binding라는 단어는 없다. 이 개발자는 두 단어를 어거지로 결합하여 자기만의 신조어를 만들어 낸 것이다. 이런 실수를 세번 이상 남발한다면 그 개발자는 십중팔구 사이비로 봐도 무방하다. 무릇 진정한 내가 고수란 어려운 단어를 잘 사용하지 않으면서도, 그 개념을 설명할 수 있는 사람들이다.

 

사이비 고수들의 이야기를 잘 들어보면, 이상한 용어들을 숱하게 들이대지만, 절대로 그 용어들의 정의를 먼저 내리고 이야기를 시작하지 않는다. 결론인즉, 사이비 고수를 판별하는 첫번째는 그 사람이 용어를 정확히 이해하고 있는가를 판단해 보라는 것이다. 이 의심이 세번 이상 들게되면 사이비 고수일 가능성이 크다.

 

두번째로, 사이비 고수일 수록 자신의 코드를 잘 보여주지 않는다는 것이다. 자신의 예전 무수한 개발 경험을 이야기하기는 하나, 예전 프라젝트의 소스 일부분을 보여주기를 꺼려한다. 사실 개발자끼리는 소스를 배제하고서는 어떤 이야기도 소용없다. 소스로 구현되지 못하는 객체지향을 대체 어디에 써먹을 수 있단 말인가? 사이비 고수들의 공통적 특징 중의 하나가 말로는 못 만들 프로그램이 없다는 것이다. 그러나 코딩은 말로 하는 것이 아니다.

 

따라서, 개발자는 무릇 소스를 두고 이야기해야만 올바른 결론이 나온다. 소스 없이 말로만 떠드는 개발관련 이야기는 모두 시간 낭비다. 그런데 소스를 가지고 논할 때 조심할 사항이 있다. 아주 간단한 로직이 아닌 이상, 컴파일 가능하고 실행 가능한 소스여야만 한다. 사이비 고수들의 특징 중 하나가 컴파일 안되는 소스를 두고, 거창한 무엇이 이 소스에 있다고 주장하는 것이다. 컴파일도 안되고 실행도 안되는 소스를 어디에 써 먹을 수 있단 말인가? 개발은 실용적 학문이지, 허풍쟁이의 말장난이어서는 절대로 안된다. 이런 허풍쟁이는 고객을 골탕먹이는 컨설턴터를 해야하지, 개발자로 남아 있어서는 안될 것

이다.

 

덧붙여서, 사이비 컨설턴트를 판단하는 아주 간단한 방법이 있다. 그 컨설턴트가 칠판에 장황하게 낙서한 그 그림을 실제로 구현한 SQL 문이든, 코드이던 간에 구현해 보라고 시키는 것이다. 이런 요청을 하면, 사이비 컨설턴트는 실제 구현하는 비용은 돈을 따로 받아야 된다는 식으로 도망가기 마련이다.

 

세번째 판별 방법은 매우 확실한 방법이기는 하나, 그 사람과 친분이 있어야만 하는 방법이다. 그 개발자의 실제 개발 환경과 과정을 지켜보는 것이다. 실력 있고 관록 있는 개발자는 자신만의 개발환경이 있다. 소스 작성, 컴파일, 테스트, 버전 관리 등에 대한 일관적 방식이 있다. 또 개발 환경을 자신이 편리한대로 설정하며, 모니터, 키보드, 컴퓨터 전반에 걸쳐 자신만의 환경을 구축한다.

 

컴퓨터가 무척 오래되었으며, 모니터는 주파수 조절이 안되어 파르르 떨리고, 마우스는 감도가 낮아서 손 움직임을 따라오지 못하는 이런 환경에서 일하는 개발자라면, 아주 문제가 심각하다. 어찌하여 자신이 하루종일 일하는 환경을 이 따위로 방치할 수 있다는 것인가? 이런 개발자는 희안하게도 하루 두어시간 사용 할동 말동한 자동차에는 돈을 덕지덕지 바르는 경우가 허다하다. 자신의 주 밥벌이 환경에 대해서 투자하지 않는 개발자는, 개발 과정 그 자체를 봉급 받기 위한 수단으로만 생각할 뿐이다.

 

같은 이유로 자신만의 소트프웨어 라이센스를 몇개나 가지고 있는가도 사이비 개발자인지를 판단하는 좋은 수단이다. 남이 만든 프로그램은 공짜로 사용하면서, 자신이 만든 프로그램은 돈을 받고 팔겠다는 생각을 가진 개발자에게 어떤 내공을 기대할 수 있단 말인가? 라이센스를 하나도 보유하지 않는 개발자는 사실 개발자라고 할 수도 없다는 것은 지나친 결론일 것 같은가? 하나를 사던 두개를 사던 모든 라이센스를 다 사지 않는 이상, 불법이라고 매도할 성격의 이야기가 아니다. 문제는 기본 마음가짐이다. 남의 소프트를 존중해야만 자신의 소프트도 잘 만든다는 것이다.

 

어떤 델파이 개발자의 개발 환경을 보니, 델파이만 설치되어 있을 뿐, 개발 생산성을 높여주는 어떤 델파이 보조 툴도 설치되어 있지 않았다. 이 개발자에게 이런 툴은 편리한데 왜 사용하지 않느냐고 물으면, 메모리만 많이 사용할 뿐 별로 도움이 안된다고 변명했다. 그런데 이 개발자의 자동차를 타보니, 온갖 편의 도구들이 달려 있었다. 고급 오디오, 핸들 커버, 브레이크 커버, 방향제 등등. 자동차에는 온갖 편의도구를 구비하면서, 자신의 개발환경에는 전혀 편의도구를 사용하지 않는 이 개발자는 대체 어떤 마음가짐일까? 아마도, 자동차보다 자신의 개발 환경은 별로 중요한 존재가 아니라고 생각하는 것이 아닐까? 온갖 보조 개발도구를 많이 사용하란 이야기가 아니다. 자신의 개발 환경을 전혀 개선해볼 의지가 없다는 것이 더 문제다.

 

마지막으로, 오랜 경력이나 관록을 가졌다고 해서 절대로 내공 수위가 높은 것이 아니란 것이다. 오랜 관록으로 친다면 나같은 노땅 개발자는 이미 OS나 컴파일러를 만들 정도의 실력을 가지고 있어야 할 것이다. 그러나, 나는 OS나 컴파일러에 관한 한 거의 백지이다. 그 분야에 있었던 기간이 그 개발자의 내공 수위와 절대로 비례하지 않는다. 대부분의 개발자는 한분야에 몰두함으로 인해서 그 분야의 전문가가 되는 것이다. 따라서, 이런 저런 분야를 많이 안다는 것은 어떤 분야에 대해서도 전문성이 없다고 단정짓는다면 지나친 것일까? 사실 나는 먹고 사는 문제 때문에 여러 분야를 거치면서, 어떤 분야에 대해서도

전문성이 없는 개발자 중의 한사람이다.

 

초창기 개발 시절에 내가 좀더 현명했다면, 나는 특정 분야에만 몰두하여 그 분야에서 손꼽히는 개발자가 되었을 것이다. 후배 개발자들에 하고 싶은 말도 이것이다. 개발에는 숱한 분야가 있지만, 이런 저런 분야 모두를 하기에는 시간과 능력이 모자라므로, 본인이 가장 잘하는 한 분야에 집중적으로 몰두하라는 것이다. 만물박사는 대화할 때는 재미있을 지언정 돈을 잘 벌지는 못한다. 한지붕 세가족이란 드라마에 나오는 순돌이 아빠는 못고치는 것이 없는 사람이었지만, 가난한 사람이었다. 순돌이 아빠가 차만 잘 고치는 사람이었더라면 정비소를 차려서 돈을 더 많이 벌지 않았을까?

 

여러 개발자들과 이야기를 하다보면, 자신의 박식함을 자랑하려 하나, 자신의 전문성을 자랑하려는 사람은 좀체 보기 힘들다. 전문성이 있어야만 살아 남을 수 있다. 여러 분야를 찔끔찔끔씩 잘하기 보다는 하나라도 확실히 잘하는 사람이 회사에도 쓸모가 많다.

 

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자momo | 작성시간 05.07.07 구구 절절...가슴에 와 닿는 군요...경력이 화련한 한 친구를 입사시켰다가 지금 피보고 있는 중....T.T...여러분...반드시 실력을 검증해보고 사람 뽑읍시다...^^
  • 작성자델처버 | 작성시간 05.07.10 요즘들어서 여기 저기 기웃대던걸 후회하고 있었습니다...정말 와 닿는 말이군요..ㅜㅜ
  • 작성자박성훈 | 작성시간 05.10.04 난 소처럼 일하는 개발자가 될 지언정, 사이비는 되지 말아야 겠다.
  • 작성자제천대성2세 | 작성시간 11.05.03 잘봤습니다
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼