개인적으로 선생님으로 생각하는 분의 글을 퍼다 담습니다.

제 꿈은 재능 기부 입니다.

대상화에서 벗어나 현실화 하겠습니다.

감사합니다. 선생님.

  •  
  • 30만 라인 코딩 안하기
    보다 더 쉽게 개발하는 미래가 오려면, 우리는 지금 무엇을 해야 할까? 무엇이 중요할까?
    1. 코드는 재사용되어야 한다.
      첫째, 소스코드를 관리해야 한다. 소스코드가 없으면 코드는 재사용되어지지 않는다. 변경할 수 없기 때문이다.
      Running 가능한 형태로 1 세트의 소스코드는 관리되어져야 한다. 이 상태에서 wrapping 할 수 있어야 하고, 소스를 수정할 수 있어야 한다.

      둘째, Test 가 끝나서 품질이 입증된 소스코드는 그대로 재사용될 수 있어야 한다.
      코드가 재사용될 수 없다면 매번 새로 만들어야 한다. 시간에 쫓길수록 동일한 문제점이 재발될 것이다. 코드가 재사용된다면, 검증하고 상용화될수록 품질은 점점 더 좋아질 것이다.

    2. 컴포넌트화 하라. (표준화하고 단순화하라.)
      웹이라면 API 화하라. Client Program이라면 컴포넌트화하라.

      컴포넌트가 공통화될 수 있도록 업무단위를 적절히 자르는 것이 매우 중요하다.
      하나의 비즈니스 컴포넌트가 웹 기능도 지원하고, 모바일 단말 기능을 지원할 수도 있다.

      컴포넌트를 잘 만들수록 플랫폼이 가벼워진다.

      하지만, 제대로 자르지 못하면 유사한 파생 컴포넌트를 자꾸 만들어야 한다.
      유사한 업무를 수용할 때마다 코드는 수십, 수백줄 씩 늘어나게 될 것이다.
      적절히 업무를 단위화하면, 재활용이 쉽게 되고 그게 솔루션이 된다.

    3. 드러내고 일하고 공유하라.
      자신의 노트북에 들어있는 소스코드나 바이너리는 개인의 지적유희일 뿐이다. 회사에서 할 만한 일은 아니다. 그것이 아무리 훌륭한 성과물이라도 IT의 발전을 위해 쓰이지 않는다면, 그저 대학 동아리 활동일 뿐이다.
      자신이어야만 하는 환경을 만든다든가, 지식과 경험을 일부만 공유하겠다는 발상으로는 코드 10만 라인 이상의 결과물을 만들어내기 힘들다.
      MS Excel 은 200 명의 개발자가 기능을 나누어 개발했다고 한다. 드러내고 일하지 않으면, 이런 결과물을 만들어내기는 힘들다.

      자신이 하고 있는 결과물을 드러내고, 정리하고 동료들과 공유하라.
      커뮤니티나 오픈소스에 참여하고, 함께 일하는 법을 배워야 한다.
      건강하게 피드백하고, 이야기를 나누는 법을 배워야 한다.

    4. 오픈의 질서를 믿어라.
      진정한 오픈은 통제의 상실을 의미한다. 정확히 말하면 당신의 통제범위로부터 벗어나는 것을 의미한다.
      당신이 시장의 질서를 만들 정도로 훌륭하지 않다면, 여러 사람의 힘을 믿어라.
      진정 의미 있는 물건이라면 시장 속에서 부딪치며 훌륭하게 성장할 것이고, 당장 의미 없는 물건이라도 언젠가는 필요로 하는 사람을 만날 것이다.

      “오픈”은 나의 역량 밖의 일을 해야 할 때 반드시 실행해야 하는 것이다. “오픈”이란 그냥 방치하는 것을 말하지 않는다.
      구르는 돌에 이끼가 끼지 않는다고, “오픈”이란 꾸준히 알리고 눈에 잘 띄는 곳에 두어 여러 사람이 알게 해야 하는 것을 말한다.

      누군가 돌보는 소중한 물건임을 알게 될 때 다른 사람들도 돌아봐주고, 협업하게 된다.

  • 한국 IT의 오늘과 소명의식

    오늘의 개발자들은, 경험을 이론화하고 시장에 도전하고 기록하고 공유하는 활동을 해야 한다는 사회적 소명의식이 있어야 한다.

    단기 성과 중심의 SI 가 이끄는 한국 IT환경은, “개발자”의 시장유입을 막고 탈출러쉬를 가속화시키고 있다. 반면 한 발짝식 걸어가는 서구 IT 환경은 우수한 개발자의 유입을 유도하고, 도전을 통해 실리콘 밸리의 신화를 이어가고 있다.

    한국에서 IT 기업에 취업하기 위해서는, 고급의 개발경험을 배울 수 있는데도 없을 뿐더러 일하는 방법을 가르쳐 주는 곳도 없다. 기껏해야 대학 동아리나 학부과정 중에 선후배간으로 이어지는 개발경험이 신입사원이 배울 수 있는 전부이지 않은가?

    더구나 업무스킬은 회사에 취직하여 맨땅에 헤딩하면서 배우는 것이 현실이다.
    행여나 무너지는 회사를 몇 번 옮겨 다닌 사람은, 습관화된 나쁜 업무스킬 때문에 고생을 하기도 한다.

    이런 열악한 IT 환경에서 좋은 열매가 열리기를 기대하는 것은, “기적을 기대하는 것과 같다.”고 본다.

    무의미한 반복개발은 값싼 노동일 뿐, 아무런 부가가치도 창출하지 못한다.

    앞서 가는 선배들이 사회적 소명의식을 가지고 개발환경을 꾸준히 개선해야만, 후배들을 이끌 수 있는 경험들이 축적될 것이다. 그래야 실력있는 후배들이 IT에 들어오게 될 것이고 점점 더 좋아질 것이다.

    몇 세기가 흐른 후에 IT 환경이 얼마나 발전되어 있을지를 상상해보라.

    지금 당장 실패한다고 하더라도, 성공할 때까지 다시 해보고 시도해보아야 한다.

  • Leave a Reply

    Your email address will not be published. Required fields are marked *