lecture Home > Professional Secrets

Taeyo's 혼잣말

   강좌 최초 작성일 : 2007년 12월 18일
   강좌 최종 수정일 : 2008년 04월 08일

   강좌 읽음 수 :

   작성자 : Taeyo(김 태영)
   편집자 : Taeyo(김 태영)

   강좌 제목 : 감히 고수를 말하다

강좌 전 태오의 잡담>

이번 글은 에세이 형식으로 작성되어 2008년 1월에 월간 마소(Maso)에 실린 글이며,
태오가 생각하는 고수라는 인물에 대한 지극히 개인적인 견해를 서술하고 있습니다.
어쩌면 다소 거부감이 드실 수도 있을 수 있지만, 어쩌면 일부는 수긍하실만한 글이라고도 생각합니다.
너무 진지하게 생각하지 마시고, 편하게 읽어주셨으면 합니다.


태오. 감히 고수(高手)를 말하다


우선 확실히 하고 시작하자. 필자는 아직 "고수"가 아니다. 그럼에도 '감히' 이 글에서 필자 개인적으로 생각하는 고수란 무엇인지, 그리고 고수가 되기 위해서는 무엇이 필요하다고 생각하는 지를 말하고자 한다. 필자에게 이를 거론할만한 충분한 자격이 있는지는 모르겠지만, 10여 년간 다양한 사이트와 프로젝트, 세미나 등을 통해 만났던 인상 깊은 개발자들을 떠올리며, 개인적으로 느끼는 고수라는 캐릭터에 대해 이야기를 해 볼까 한다. 어쩌면, 글을 읽고 나서 "이런 건 나도 이미 알고 있어", "당연한 이야기만 써 있군"이라며 인터넷 말로 낚였다(?)고 말할 지도 모르겠다. 하지만, 그래도 우리에겐 이미 아는 것을 다시금 확인하는 시간도 필요하다고 믿는다. "나는 내가 배워야 할 모든 것을 이미 유치원에서 배웠다(All I Ever Really Needed to Know I Learned in Kindergarten)"라는 로버트 풀검(Robert Fulghum) 말을 들어본 적이 있다면, 같은 맥락에서 필자의 글을 이해해 주었으면 한다. 이는 고수를 꿈꾸는 개발자로서, 결코 자신이 고수가 아니라고 말하는 필자 주변의 고수들을 바라보면서 그 동안 느낌 점을 글로서 표현하고자 하는 것이니 말이다. 결코 잘난 척을 위해 이 글을 작성하는 것이 아니기에, 글의 시작으로 "고수"란 단어의 정의를 내세우거나 하지도 않을 것이다. 그는 이 글을 마칠 때 즈음 여러분 각자가 나름대로 정의하게 될 부분이라 생각하기 때문이다.

고수의 조건

언제부터일까? 사실 언제인지 정확히는 모르겠지만, 언제부터인가 "고수"라는 단어가 온/오프라인 상에서 눈에 띄게 많이 보이고 있다. 원래 많이 있었지만 이제서야 눈에 띄는 것인지, 실제로 요즘 들어 지나치게 많이 사용되기 시작하는 것인지 알 수는 없지만 말이다. 지극히 상대적인 평가라고 생각되는 그 단어는 불려지는 이에게는 겸손을, 부르는 이에게는 존경을 요구하는 꽤나 부담스러운 단어가 아닌가 한다. 우리나라에 이렇게 많은 고수들이 존재했었나 싶은 생각과 함께 과연 그 단어가 필자에게 어울리는가를 생각하다 이내 머리를 사정없이 양 옆으로 흔들고 만다. 고수라는 단어는 기본부터 실력까지 모든 것을 고루 갖춘 사람에게나 어울리는 단어라고 생각하기에, 아직 그는 내가 불려지기 보다는 불러야 할 단어임에 틀림이 없다고 강조하면서 말이다. 여기서 필자가 생각하는 기본이란 사람의 됨됨이를 말하는 것으로, 알고 있는 지식에 대한 겸손함, 모르는 지식에 대해 갈구하는 열망, 그리고 지식을 남들과 함께 고민할 수 있는 포용력 등을 말한다. 필자에게 있어 고수란 "존경 받을만한 개발자"이기 때문이다.

누군가에게 "고수"라는 표현을 쓰는 것은 그에게 책임감을 부여하는 것이기도 하다. "고수로서", "고수답게", "고수가 말하길" 등의 수식어를 통해서 말이다. 그렇기에, 그들은 매사에 겸손하며 알지 못하는 것에 대해 함부로 이야기하지 않는다. 그들의 말과 글 하나 하나에 많은 개발자들이 희망을 갖기도, 좌절하기도 하니 말이다. 더불어, 남들이 뭐라던 고수들은 부정적인 표현을 (예, IT는 힘들다) 쉽게 입 밖에 내서도 안 된다고 생각한다. 그 말을 할 경우에는 적어도 그에 대한 자신의 확고한 입장이 있어야 한다고 본다. 그 말 한마디에 어두운 곳에서 희망을 찾고 있던 누군가는 좌절을 할 지도 모르니 말이다. 존재하지 않는 것을 마치 존재하는 것처럼 이야기해서도 안되겠지만, 분명히 존재하는 희망을 그 마저 없다고 부인하는 것 또한 결코 고수로서 해야 할 행동이 아니라 생각한다. 진정한 고수는 긍정적이지만 냉철한 조언자로서 또 다른 고수를 세상에 선 보일 책임도 가지고 있으니 말이다.

고수는 천재가 아니며, 천재가 고수도 아니다

자타가 공인하는 고수들. 그들 중 일부는 특정 분야에서 누구나 인정하는 전문가이기도 하며, 일부는 전반적으로 폭넓은 지식을 가지고 각 기술을 코디네이션하는 설계자이기도 하다. 같은 고수라 하더라도 분야도 다르고, 역할도 다르며, 위치도 다를 뿐 더러, 더불어 고수 간에도 고수만이 인정하는 고수가 따로 있기도 하다. 고수가 되기 위한 첫 번째 조건이 기술적인 우위임은 누구나 알고 있는 사실이다. 그렇기에, 누구나 열심히 한다면 한 번쯤은 특정 분야의 고수라는 멋진 직함을 얻을 수 있을 것이다. 하지만, 항상 변하지 않는 사실은 꾸준히 노력하고 자신을 관리하지 않는 자는 존경을 받는 고수는 될 수 없다는 사실이다.

스페인 출신의 음악거장이자 천재 바이올리니스트였던 파블로 데 사라사테(Pablo de Sarasate, 1844.3.10~1908.9.20)는 어떤 비평가가 그를 천재라고 극찬하자, "지난 37년간 하루 14시간씩 연습했더니 그들은 나를 천재라 한다"며 비평가의 평에 일침을 놓았다. 그렇다. 누구나 알고 있는 사실이지만, 고수이던 천재이던 모든 것은 끊임없이 자기를 채찍질하는 노력에서 시작된다는 말을 필자도 반복하고 있는 것이다. 필자는 고수 개발자라는 명함은 하루에 한 페이지의 프린트를 읽는 작은 습관과 하루에 하나의 질문에 대한 성실한 답변 하나에서부터 만들어진다고 생각한다. 작은 노력의 반복적인 습관, 그리고 통제가 가능한 자기 관리에서 고수로서의 자질이 시작된다고 말이다.

반면, 이와는 반대로 천재였지만 자기 관리에 실패하여 젊은 나이로 요절한 필립 카츠(Phillip W. Katz)에 대한 이야기는 우리에게 많은 생각을 하게 한다. 그는 유명한 Zip 압축 기술을 최초로 개발한 천재 개발자였지만, 외로웠으며, 사람들과 어울리지 못했고, 갑작스런 부(富)와 자기 자신을 관리할 능력이 없었기에 알코올 중독으로 젊은 나이에 비참하게 허름한 호텔방에서 죽음을 마주했다. 필립 같은 천재에게 스스로를 관리할 만한 능력과 좋은 조언자들이 있었다면 어땠을까 하는 생각을 해 본다. 그랬다면, 어쩌면 현재의 컴퓨팅은 지금과는 조금 더 달라져 있을지 모르며, 또 다른 뛰어난 개발자들을 이끌어주는 고수로서 IT 세상을 이롭게 하고 있을지도 모른다. 모든 기술 분야에는 천재가 태어날 수 있을는지 모르겠지만, 안타깝게도 자기 관리에는 천재가 있을 수 없다. 이것이야 말로 오로지 노력에 의해서만 가능한 것이니 말이다. 그래서, 천재는 노력하는 자를 이길 수가 없는 것이 아닐까?

고수는 항상 유쾌하며, 그 곁엔 유쾌한 멘토가 있다

고수라고 성자는 아니다. 그렇기에 가끔은 술에 취하기도 하고, 가끔은 슬럼프에 빠져 방황을 할 때도 있다. 개발자라는 삶에 회의감을 느껴서 잠시 떠날 수도 있고, 가끔은 본의 아니게 주변에 누를 끼치는 경우도 있을 수 있다. 그들도 사람이니 말이다. 하지만, 그 무엇을 하던 스스로를 통제할 수 있는 자기 관리 능력은 매우 중요하다. 그래야 본연의 자리로 돌아와 자신을 아껴주는 동료들과 컴퓨터에게 은혜(?)를 갚고, 다시 창조적인 즐거움으로 팀을 이끌 수 있을 테니 말이다. 그렇기에, 고수들은 그러한 자기 관리에 도움이 되는, 오랫동안 유지할 수 있는 작은 습관(예를 들면, 보지 않는다 하더라도 책을 손에서 놓지 않는다던가 하는)을 가지려 하며, 주변에 서슴없이 충고하는 좋은 멘토(mentor)들을 많이 만드는 듯 하다. 긍정적인 사람 주변에는 그처럼 긍정적인 친구들이 있듯이, 고수 주위에는 대부분 그에 못지 않은 고수들이 있으며, 서로에게 좋은 멘토가 되어 조언한다. 서로를 관리함으로써 스스로를 관리하는 지혜를 그들은 가지고 있는 것이다.

가끔은 커뮤니티의 무 절제된 기술 질문에 정성을 다한 답변으로 스스로의 인성을 키우기도 하며, 다양하고 해괴한 질문들 속에서 보지 못하던 기술의 틈을 발견하기도 한다. 그리고, 그를 해결해 가는 과정 속에서 자신의 지식을 키워나가며, 그를 컬럼으로서 남들과 공유하여 신망을 얻기도 한다. 그리고, 그를 신망하는 사람들이 하나, 둘 모여서 다시 또 다른 유형의 커뮤니티가 되고, 그들 또한 영향을 받아 인성을 키우고, 지식을 공유한다. 이는 무한히 반복되며 고수의 밑에서 고수가 태어나고 그들은 서로에게 멘토가 된다. 그럴듯하고 바람직한 시나리오가 아닌가?

아마도 고수가 되고 싶다는 목적의식이 그들을 그렇게 움직이게 하지는 않았을 것이다. 그들이 즐기는 사이에 어느새 그들은 고수가 되어버린 것일지도 모른다. 국가대표 축구선수인 이영표 선수가 말했듯이, 천재는 노력하는 자를 이길 수 없고, 노력하는 자는 즐기는 자를 이길 수 없을테니 말이다(더불어, 논어에는 ‘아는 사람은 좋아하는 사람만 못하고, 좋아하는 사람은 즐기는 사람만 못하다’는 공자의 말도 있다). 유쾌한 사람들, 즐기는 사람들 주변에는 하나, 둘 씩 그 즐거움을 함께 하고 싶어하는 사람들이 모이기 마련이다. 웃음은 쉽게 전파되며, 사람을 쉽게 연결해주는 매개체가 된다. 긍정적인 사람들은 긍정적인 사람들을 이끌어내며, 모두를 즐겁게 하고, 서로에게 힘이 되고 격려가 되는 좋은 동료로 만들어 준다. 그래서, 고수들은 항상 유쾌하며, 유쾌한 사람들과 어울리는 것이다. 자신이 유쾌하지 않으면 주변의 동료들이 그를 유쾌하게 만들고, 동료들이 유쾌하지 않으면 그 자신이 유쾌하게 만들어주는 서로의 긍정적인 멘토링을 통해서.

고수의 기본. 기본의 고수

고수들의 또 다른 공통점은 항상 기본을 강조한다는 것이다. 기초 기술이 아니라 기본 기술에 충실하라는 말을 자주 하곤 한다. 기본이 되는 기술들을 충실히 닦아 놓는다면 새로운 기술이 등장해도 그를 겁내지 않으며, 쉽게 적응할 수 있기 때문이다. 각 기술의 등장 배경과 그의 모체 기술이 무엇인지를 안다면, 해당 기술을 어떤 식으로 바라보아야 할 지를 알 수 있고, 그것이 비록 마케팅적인 목적에 의해 본연의 모습과 다르게 포장된다 하더라도 동요하지 않고 냉정하게 바라볼 수가 있기 때문이다.

고수들은 남들이 신 기술에 대해 How to를 이야기할 때, How come을 이야기한다. 어떻게 그 기술을 사용하는가? 어떻게 그것이 동작하는가를 말하기에 앞서, 왜? 를 묻곤 한다는 것이다. 왜 이 기술은 등장했는가? 왜 그것이 필요한가? 왜 우리는 그를 배워야 하는가? 그들은 항상 모든 기술의 기본에 대해 묻는다. 그들은 어디서부터 왔는가? 그의 기본은 무엇인가? 그는 무엇을 발전시키기 위한 것인가? 고수의 기본은 바로 기본 기술에 대해 고수라는 것이다.

예를 들어, 웹 2.0의 핵심이라 불렸던 Ajax라는 기술을 보자. 이는 사실 상당히 오래된 기법의 일종이다. 그것이 Ajax라는 이름으로 명명되면서 보다 깔끔하게 정리되긴 했지만, 사실 기본적인 접근 방식은 기존의 다소 혼란스러웠던 방법과 그리 큰 차이도 없다. 그렇기에, 이미 웹 통신 방식의 기본기가 다져져 있고, 브라우저와 사용자 간의 상호작용을 다루는 기술인 클라이언트 스크립트 기술에 충실한 개발자라면 그리 어렵지 않게 이 기술을 이해할 수 있을 것이다. ASP에 Ajax를 적용하던, PHP에 Ajax를 적용하던, JSP에 Ajax를 적용하던 그것은 큰 문제가 되지 않는다. 어차피 브라우저에 내장된 XmlHttp 관련 개체를 사용하고, Javascript를 사용하여 비 동기 통신을 지원하는 것이라면 서버 측 기술인 ASP, JSP, PHP는 아무런 관계가 없기 때문이다. 그럼에도, 많은 이들은 자기가 알고 있는 기술과 관련하여 Ajax를 다룬 컬럼이나 책만을 뒤척이며 이에 대한 자료가 부족하다고 이야기한다. 결국 이는 기본을 아는 사람과 모르는 사람의 단순한 시각 차이에 불과하다. 종이 한 장 차이일 뿐임에 틀림이 없지만, 그 종이에는 경험과 끊임없는 노력, 그리고 열정이 들어있다.

정중동(靜中動)

'경영의 신'이라 불렸던 마쓰시타 전기의 창업자 마쓰시타 고노스케가 말한 뛰어난 리더의 자세 중에는 "내버려 두되, 방치하지 않는다"는 항목이 있다. 그래서, 그 팀은 외부에서 봤을 때는 누가 리더인지 구별하기가 쉽지 않으며 모두가 팀원으로서 하나되어 움직이는 것처럼 보이는데, 좋은 리더는 자신을 팀보다 내세우지 않으며, 팀원들 스스로 알아서 수행할 수 있는 분위기를 만들기 때문이다. 이는 고수의 자세와도 관계가 있다. 고수 또한 자신을 내세운다거나 하지 않으며, 있는 듯 없는 듯 조용하게 행동한다. 그래서, 간혹 고수를 초보자로 오인하는 경우도 생기곤 한다. 다만, 초보는 아는 것이 없고, 나서는 것을 두려워하여 그러하지만, 고수는 문제가 생기기 전까지는 흐름이 끊어지지 않도록 단지 지켜보기 때문에 그러하다. 그러나, 결코 방관하지 않으며 꾸준히 주목하고 있다가 일이 잘못 흘러간다거나 위험 신호가 감지되면 신속하고 현명하게 대처하곤 한다. 즉, 고요함 속에 움직임이 있으며, 맡겨 놓되 방관하지 않는 자세를 가지고 있다는 것이다.

일반적으로 소란스러운 이들은 얼핏 보면 고수처럼 보이지만 실상은 고수는 아니면서 고수 대우를 바라는 사람들인 경우가 많다. 그들은 대부분 고수처럼 보이고 싶어하며, 서둘러 남들에게 인정을 받고 싶어한다. 마치 사춘기 시절의 청소년들이 빨리 어른이 되고 싶어하는 것과 비슷해 보인다. 그들은 누군가의 충고에 대해 적극 수용하여 한번쯤 뒤를 돌아보기 보다는 남들이 자신을 제대로 알고 있지 못해서 그런 말을 한다고 무시해 버리며, 남에게 조언을 구하기 보다는 남에게 조언을 하는 것을 즐기고, 나서야 할 때와 그러지 않아야 할 때를 구분하지 못하고 즐겨 나서곤 하며, 스스로 공치사하는 것에 부끄러움을 느끼지 않고, 자신이 잘 인지되지 못한다는 생각이 들면 지인이나 조직의 이름을 이용해 자신을 더 낫게 포장하는 것에 거부감을 갖지 않는다. 이러한 행동들은 일부 과도기적인 행동일 수도 있겠지만 결코 바람직하지 않은 행동이며, 반성하고 고쳐 나가야 할 행동이다.

소리 없이 강한 고수의 이러한 자세는 프로그래밍 작업에도 그대로 반영되곤 한다. 고수들의 코드는 마치 온갖 성능 좋은 코드들이 빽빽하게 나열되어 있어 꽤나 복잡할 것으로 생각되지만, 실제로는 그리 복잡하지 않은 편이며, 동료 개발자들이 읽기에 편하도록 쉽게 잘 정리가 되어 있는 경우가 많다(동료 개발자가 아닌 이들, 분야가 다른 개발자들에게라면 어려워 보일 수 있겠지만). 남에게 보이기 위한 코드보다는 효율적으로 협업이 가능한 코드를 작성하며, 기교보다는 기본에 충실하고, 개인보다는 팀을 위한 코드를 작성하곤 한다. 이는 코드라는 것이 프로그래머들의 대화 수단임을 누구보다 잘 알기 때문이다.

고수는 고수를 낳는다

또한, 필자가 만났던 고수들은 자신의 지식을 믿을만한 이에게 전수하는 것을 즐기는 편이다. 대부분 그들은 자신의 노하우를 남들과 이야기하길 좋아하며, 그 비법을 이해할 수 있는 이를 만나서 논쟁을 벌일 때 행복함을 느끼는 것처럼 보였다. 허공에 그림을 그려가며 열띤 토론을 벌이다가도 자신의 노하우를 다른 누군가가 더 발전시켜 나가는 것을 느낄 때, 그들은 다시금 자신의 열정을 되살려 미친 듯이 그 주제에 빠져들곤 한다. 가끔은 의견의 대립으로 언성이 높아지는 경우도 있으나, 결국에는 그로 인한 자극을 보다 깊이 있는 지식에 대한 탐구에 쏟아 부어 스스로의 수준을 한 단계 더 끌어올리기도 한다.

반면, 고수들은 누군가에게 기술을 설명할 때, 최대한 질문자의 수준에 맞춰 쉽게 설명하는 여유도 가지고 있다. 무엇을 설명할 때 어려운 발음의 용어들과 전문지식을 요하는 기술 명들을 나열하면서 어렵게 설명하는 사람치고 고수인 경우는 그다지 많지 않다. 고수들은 알기 쉬운 용어와 설명을 곁들이면서 최대한 질문자의 수준에 맞게 대답을 해 주려 애쓴다. 비록 그 설명이 완전치 않을 수 있다 하더라도 그것이 질문자가 이해할 수 있는 수준이라면 그를 이해시키는 데에 최선을 다한다. 결코, 자신의 유식함을 드러내기 위한 쪽으로 애 쓰지 않는다는 것이다(물론, 간혹 잘난 척을 즐기는 이도 있긴 하지만).

이러한 자세는 온라인/오프라인에 일관되게 적용이 된다. 가끔 온라인에서는 고수처럼 보이지만 오프라인에서는 실망스러운 행동들을 하는 사람 또는, 오프라인에서는 고수처럼 행동하나 온라인에서는 다소 매너없이 행동하는 사람들을 볼 때가 있다. 자신은 글을 작성하지 않으면서 남이 작성한 글에 대해서는 부정적으로 비판하고, 좋지 않은 사건에 대해서는 앞서 전파하며, 누군가가 용기를 내어 공개한 자료에 대해 격려보다는 질타를 우선하고, 자신이 모르는 기술은 이유없이 폄하한다거나, 맹목적으로 특정 벤더의 편을 들어 기술적인 이슈에 대해 정치적인 시선을 갖게 한다거나 하는 행동들 모두가 고수로서 취할 행동은 아니라 생각한다.

고수는 함부로 특정 기술이나 인물을 폄하하지 않으며, 잘 모르면서 말만을 앞 세우지 않는다. 그렇기에, 그들의 말은 신뢰할 수 있는 견해로서 평가되며, 그러한 신뢰가 생겨나게 되면 고수는 거듭 그들의 행동을 조심하여 신뢰할 수 있을만한 의견을 내놓기 위해 항상 노력하게 되는 순환적인 패턴이 반복되는 것이다.

이제 생각해 보자

고수가 되고 싶은가? 물론, 누구나 고수가 될 수 있다. 스스로 믿고 노력한다면. 비록, 그러한 수식어가 여러분의 이름 앞에 붙을 때 즈음에는 여러분 스스로가 그 수식어를 그다지 달가워 하지 않게 될 지라도 말이다.

이미 고수처럼 보이는 누군가를 따라 잡고 싶은가? 사실 개인적으로 그것은 그다지 권하고 싶지 않다. 여러분이 그를 따라 잡기 위해 노력하는 동안 그 또한 가만히 앉아서 기다리지 않고 노력할 것이니 말이다(그래서, 그가 고수인 것이다). 이미 고수인 사람은 여러분이 인정하는 고수인 채로 내버려 두자. 그들은 자신을 고수라고 추앙하는 것도 반기지 않으며, 단지 그들과 유쾌하게 동일 관심사를 떠들며 즐기는 것을 원하는 평범한 개발자이다. 그리고 가끔은 경쟁자로서, 가끔은 조언자로서, 우리들이 성장하는 모습에 진실되게 박수를 보내는 좋은 동료이다. 그리고, 언젠가 여러분이 결국 고수가 된다면, 그가 있었기에 될 수 있었음을 부인할 수 없을 것이다. 결국, 고수라는 캐릭터들은 어떻게 보면 스스로가 기술적으로나 인간적으로나 인정할 수 밖에 없는 동료이자, 닮고 싶기도 한 모델이 아닐까 한다.

이제 스스로에게 조용히 물어보자. 고수는 누구인가?

그는 그를 찾고자 하는 여러분의 마음 속에 있을 것이다.

 

강좌 목록으로..