통찰력(insight)을 찾아서 :: 2007/05/11 01:26


통찰력이란 문제의 지엽적인 부분보다는 전체를 통해서 근본적인 원인을 꿰 뚫어보는 능력을 말한다. 여기서 가장 중요한 부분은 넓게 본다는 것이다. 한 가지 변수만을 고려하지 않고 여러 가지 변수를 통합적으로 보는 것이 핵심이다. 문체 해결을 주업으로 삼고 있는 개발자에게 통찰력이란 특히 더 중요한 능력이다. 그렇다면 이렇게 중요한 통찰력을 기르기 위해서는 어떻게 해야 할까?

가장 큰 근간은 경험이다. 많은 경험은 더 많은 변수를 동시에 볼 수 있도록 시야를 넓혀준다. 연애를 천 번 해본 카사노바와 이제 처음 연애하는 순진남이 애인과 싸웠을 때 누가 더 능숙하게 대처할 수 있을까? 당연히 전자다. 개발자에게 가장 큰 경험은 직접 프로그램을 작성하는 것이다. 자신이 불편함을 느낀 점, 다른 사람이 자신에게 불편함을 호소한 것에 관해서 자발적으로 프로그램을 작성하는 것은 훌륭한 경험이 된다.

그렇다면 단순히 많이 경험하는 것이 전부일까? 그렇다면 통찰력은 아마 나이 순대로 매겨질 것이다. 하지만 그렇지 않다. 간접 경험인 독서가 있기 때문이다. 양질의 스타크래프트 경기를 경험하는 데는 최소 30분 이라는 시간이 걸린다. 다른 사람의 리플레이를 보는 데는 그보다 짧은 10분이 걸린다. 해당 경기의 요점을 정리한 노트를 읽는 데는 1분이면 충분하다. 이것이 독서의 힘이다. 경험하는데 걸리는 시간을 비약적으로 단축시키는 것이다. 개발자에게 독서는 다른 사람의 코드를 읽는 것이다. 대부분의 오픈 소스 프로그램은 잘 훈련된 개발자들에 의해서 만들어지기 때문에 훌륭한 코드인 경우가 많다. sourceforge.net과 같은 사이트에서 자신의 관심 분야와 관련된 코드를 꾸준히 읽도록 해야 한다. 뉴스그룹을 구독하거나 FAQ 등을 읽는 것도 훌륭한 간접 경험이다.

불행히도 경험과 독서는 시작에 불과하다. 통찰력을 키우는데 가장 중요한 것은 사색이다. 아무리 많은 경험을 하고, 독서를 하더라도 그것을 뒤돌아 보지 않는다면 그것은 경험하지 않은 것과 똑같다. 그래서 반드시 사색을 해야 한다. 이 과정에서 경험과 독서를 통해 얻은 정보가 몸에 베고 진정한 자기 것이 된다. 또한 그 숙성 과정이 좀 더 심화되면 자신만의 이론과 체계를 세울 수 있다. 사색이라고 해서 단순히 자신이 작성한 프로그램과 읽은 코드에 관해서 앉아서 명상을 하는 것은 아니다. 이 단계에서 사용할 수 있는 효과적인 방법으로 코드 리라이팅과 패치가 있다.

코드 리라이팅은 동일한 기능을 하는 코드 조각을 다른 관점에서 새롭게 작성해 보는 것이다. 좀 더 짧게 만들어 보기도 하고, 범용적으로 만들어 보기도 하고, 특정한 제약을 두어서 만들어 보는 것이다. 이 과정에서 기존 코드가 가진 문제점을 발견할 수 있고, 제약이 있는 상황에서의 문제 해결 능력을 기를 수 있다.

패치는 자신이 읽은 코드 내지는 자신이 만든 프로그램의 코드를 좀 더 발전시켜 보는 것이다. 패치 작성을 통해서 이미 만들어진 프로그램을 고치는 것이 어렵다는 것과 수정이 손쉽게 만들 수 있는 구조에 관해서 많은 것들을 배울 수 있다. 신입 개발자들은 여러 가지 이유로 수정보다는 새로 만드는 것을 선호한다. 하지만 반드시 기억해야 할 점은 위대한 소프트웨어는 수많은 패치를 통해서 제작된다는 점이다.

세상에 공짜는 없다. 시간이 지난다고 저절로 되는 것도 없다. 통찰력도 마찬가지다. 10년 동안 개발을 한다고 저절로 생기는 것이 아니다. 통찰력으로 무장한 백발의 개발자를 꿈꾼다면 체계적으로 준비하고 부단히 노력해야 할 것이다.

스폰서
글타래

  • 2주간 인기 글
  • 2주간 인기글이 없습니다.
Trackback Address :: http://jiniya.net/tt/trackback/503
  • Gravatar Image.
    김준주 | 2007/05/14 16:33 | PERMALINK | EDIT/DEL | REPLY

    하.이것이 제가 jiniya님의 블로그를 방문하는 이유! 가 되겠네요. :)

    • Gravatar Image.
      codewiz | 2007/05/14 19:54 | PERMALINK | EDIT/DEL

      방문해 주셔서 감사합니다.
      이유있는 블로그가 되도록 노력하겠습니다. ㅎㅎ

  • Gravatar Image.
    chpie | 2007/05/15 10:11 | PERMALINK | EDIT/DEL | REPLY

    통찰력이란 상당히 멋진 거군요 흠 -___-;;;
    역시 1% 재능인가

    • Gravatar Image.
      codewiz | 2007/05/15 14:48 | PERMALINK | EDIT/DEL

      1%의 재능을 부인할 순 없을것 같습니다. 같이 일해보면 섬뜩할 정도로 똑똑한 사람들이 있죠. 마치 맵핵키고 스타하는것 같은 사람들 .. ㅠㅠ

  • Gravatar Image.
    rockenrollz | 2007/05/15 15:55 | PERMALINK | EDIT/DEL | REPLY

    항상 느끼던 사실이지만... 이렇게 글로보니 또 새롭네요..^^

    • Gravatar Image.
      codewiz | 2007/05/15 16:22 | PERMALINK | EDIT/DEL

      쌩유.. ㅋㅋ
      근데 블로그 주소좀 남겨라.. ㅋㅋ
      클릭해서 들어가고 싶습니다. ㅎㅎ

  • Gravatar Image.
    TTF | 2007/05/24 02:21 | PERMALINK | EDIT/DEL | REPLY

    맵핵 키고 스타를... 요즘엔 컴퓨터에게도 지는 판국이라...

    역시 천재가 아니라면 노력의 천재가 되는 길 밖에 없나 봅니다.

    • Gravatar Image.
      codewiz | 2007/05/24 11:15 | PERMALINK | EDIT/DEL

      네. 맞습니다.
      그런데 사실 너무 그런것에 열등감을 가질 필요는 없다고 봅니다. 다들 자신만의 위치와 역할이 있기 때문이죠.

      살리에르도 그만의 위치와 역할이 있잖아요. 그가 굳이 모짜르트가 될 필요는 없죠. 모짜르트가 되겠다고 결심하는 순간 살리에르는 없어지는지도 모릅니다. 괴물만 남게 되겠죠.

  • Gravatar Image.
    Read & Lead | 2007/05/25 00:49 | PERMALINK | EDIT/DEL | REPLY

    경험,독서,사색이 통찰력을 만든다... 절대 동감입니다. 좋은 글 잘 읽고 갑니다~

    • Gravatar Image.
      codewiz | 2007/05/25 11:07 | PERMALINK | EDIT/DEL

      단순한건데 자주 잊고 사는 것 같아요.
      트랙백 감사합니다.

Name
Password
Homepage
Secret