수요일, 6월 06, 2012

[B급 관리자] What distinguishes the top 1% of PMs from the top 10%?

지난번에 올린 [B급 프로그래머] What makes a good engineering culture? 글을 독자 여러분께서 너무나도 열렬히 성원해주셨기에, 오늘은 후속타를 한번 소개해보겠다.

역시 Quora에 다음과 같은 질문이 올라왔다.

Product Management: What distinguishes the top 1% of product managers from the top 10%?

역시 한글로 번역하자면 "최상위 1% 제품 관리자를 상위 10% 제품 관리자와 구분하는 특징은 무엇인가?" 정도로 보면 되겠다. 이번에도 아마존의 제품 관리자가 직접 대답한 내용이 인상 깊어서 간략하게 요점을 정리해보았다.

  • 크게 생각한다: 1% PM의 사고는 지금 당장 투입 가능한 가용 자원이나 오늘날 시장 환경에 제약을 받지 않는다. 이들은 판을 뒤집을 큰 기회를 기술하고 이를 활용하도록 튼튼한 계획을 짠다.
  • 의사 소통한다: 1% PM은 반박하거나 무시하기 힘든 주장을 펼친다. 가용한 자료를 적절히 활용하지만 또한 이들은 인원수, 돈 기타 자원을 댈 수 있는 권력자를 설득해 장애물을 해결하도록 다른 쪽 주장, 신념, 계기에도 관심을 기울인다.
  • 단순화한다: 1% PM은 20%의 노력을 들여 기능이나 프로젝트의 80% 가치를 얻는 방법을 안다. 이런 작업을 반복적으로 수행하는 방식으로, 제품이나 사업 측면에서 복합적인 효과를 얻는다.
  • 우선 순위를 정한다: 1% PM은 프로젝트를 순차적으로 진행하는 방법을 안다. 이들은 단기적인 승리와 장기적인 플랫폼 투자의 균형을 적절히 맞춘다. 또한 적극적인 프로젝트 진행과 방어적인 프로젝트 진행의 균형도 맞춘다. 적극적인 프로젝트는 사업을 키운다. 방어적인 프로젝트는 사업 진행 과정에서 위험을 방어하며 질질 끌지 않도록 막는다(운영, 기술 빚 줄이기, 버그 수정).
  • 예측하고 측정한다: 1% PM은 프로젝트의 이익을 적절히 예측하는 능력이 있으며, 과거 경험을 적용하고 비교 가능한 벤치마크를 지렛대로 활용해 이를 아주 효율적으로 수행한다. 또한 프로젝트를 시작하고 나서 이익을 측정하고, 이런 지식을 향후 우선순위 조정과 예측에 활용한다.
  • 실행한다: 1% PM은 (뭐가 되었거나) 일단 결과를 낸다. 출시에 필요한 거라면 뭐든 한다. 이들은 임무 범위에 제약이 없다고 생각한다. 필요에 따라 사람을 모으고, 사업을 만들고, 내부 전문가와 드잡이도 벌인다.
  • 기술적인 트레이드 오프를 이해한다: 1% PM이 전산학을 전공할 필요는 없다. 하지만 기능의 기술적인 복잡성에 대해 개괄적으로 이해할 수 있어야 한다. 이들은 개발팀과 함께 올바른 기술 트레이드 오프를 결정해야 마땅하다.
  • 좋은 설계를 이해한다: 1% PM이 좋은 설계자가 될 필요는 없지만, 위대한 설계의 진가를 알아보고 훌륭한 설계를 좋은 설계와 구분해야 마땅하다. 이들은 설계 담당자에게 위대한 설계와 좋은 설계의 차이점을 명확하게 말할 수 있어야 하며, 좋은 설계에서 위대한 설계로 발전하기 위한 방향을 제기해야 마땅하다.
  • 문구를 효율적으로 쓴다: 1% PM은 작업을 마치기 위해 필요한 문구를 간결하게 작성해야 마땅하다. 이들은 장황하게 쓸 때마다 직전 단어의 가치를 희석하는 단어가 포함된다는 사실을 이해해야 한다. 단지 충분함을 넘어서 핵심 문구를 위한 완벽한 단어를 찾으려 시간과 정열을 쏟아야 한다.

좋은 PM이 되기는 어렵고 위대한 PM이 되기는 더욱 어렵다. 위에서 제시하는 1% PM의 좋은 특징을 다시 한번 생각해보면서 프로젝트를 진행하면 도움이 되지 않을까?

EOB

토요일, 6월 02, 2012

[독서광] 초이스(과학자의 생각법에서 배우는 선택의 지혜)

경제/경영 블로그로서(응?) 자리잡기 위해 요즘 계속해서 열심히 독서 중이다. 오늘은 읽은지 제법 지나 기억이 가물가물해지려는 책을 하나 정리하겠다. 주인공은 바로 '더 골'과 한계를 넘어서를 지은 골드렛의 신작인 초이스다. 골드렛 책이라니까 벌써부터 기대하시는 독자분들도 계실텐데, 이번 책은 소설식이 아니라 대화식으로 전개된다는 조금 특이한 속성이 있으므로 주의해서 읽을 필요가 있겠다.

우선 처음 이 책의 소개글을 봤을 때 "정통 물리학 개념을 ‘경영’과 ‘인생’의 문제를 해결하는 데 활용하고 있는"이라는 문구를 보고서 아주 부정적인 색안경을 끼지 않을 수 없었다. 세상에 '물리'로 '인생'의 문제를 해결하다니... 이거 말이 되는 소리야? 하지만, 장바구니에 들어간 책은 신용카드 결제를 마치고 책장에 꽃히는 데 성공했고, 시간이 오래 흘러 먼지가 쌓이다가 혹시나 하는 마음에 출퇴근 시간을 함께 했다. 애가 닳는 독자분들을 위해 간단하게 총평을 던지자면... 강력 추천! 재미있고 교훈적이다(주의: 독자 성향에 따라 호불호가 확실히 갈릴 수 있다).

이 책은 조직 심리학을 전공한 조직 경영 전문가인 딸과 제약 이론 대가인 아버지가 대화하는 방식을 따르고 있다. 아까 '물리'로 '인생'의 문제를 푸는 게 가능할까라는 의문은 독자를 대신해 딸이 충분하게 고민하고 있으므로, 독자는 딸의 시각으로 아버지를 바라보는 나름 흥미로운 경험을 할 수 있다. 물론 "아파트 대출금을 갚아야 하는데, 월급도 쥐꼬리고 이자는 높고 생활비는 오르고 그야말로 죽을 맛입니다"와 같은 '인생'의 골때리는 문제에 대해서는 절대 언급하지 않지만, 이 보다 훨씬 더 복잡한 조직 문제를 '단순함'의 무기로 풀어가는 과정에서 뭔가를 깨닫도록 만든다. 실제 현장('더 골'의 공장, '한계를 넘어서'의 소프트웨어 개발에 이어 이번에는 물류에 도전한다. ㅋㅋ)에서 벌어지는 정말 골때리는 문제를 하나씩 풀어가면서 '선택'의 어려움과 중요성에 대해 하나씩 짚어가는 식으로 현장감을 충분히 살리는 골드렛 표 서적의 특징을 그대로 계승하고 있다.

이 책은 각 장마다 '에프랏의 노트'라는 제목을 달고 해당 장에서 다룬 내용을 일목요연하게 정리하고 있으므로, 실제 현실에서 어려운 결정의 문제에 부딪힐 때마다 참고하기 딱 좋게 만들어져 있다. 궁금한 독자분들을 위해 좋은 문구를 몇 개 골라서 정리해보겠다.

기회가 있느냐 없느냐가 아니라, 기회가 올 때 그것을 기회로 인식할 수 있느냐(또는 성공의 기회로 만들 수 있느냐)를 판단하는 개인 능력에 차이가 있다.
현실은 놀랄 정도로 단순한데도 사람들은 너무 복잡하게 생각한다. 그래서 사람들은 정교한 설명과 복잡한 해결책을 찾는다.
현실이 복잡하다고 믿으면 문제, 특히 큰 문제가 발생했을 경우 당연히 복잡한 해결책을 찾을 것이다. 하지만 대부분 복잡한 해결책은 효과가 없고 계속해서 이런 문제를 해결하는 데 실패한다.
큰 문제를 위장하면서도 상황을 더 좋게 만들고 싶을 때 나는 그것들을 외면한체 작은 문제에 집중한다.
작은 문제에 집착하면 상황은 개선되지 않는다. 들인 노력에 비해 제한된 결과만을 얻을 뿐이어서, 나는 무엇을 성취할 수 있는지에 대한 기대치를 서서히 낮추게 된다.
과학자의 눈에 근본 원인이 적을수록 (즉 자유도가 적을수록) 시스템은 단순하다. 그들의 관점에서 '단순하다'는 것은 전체 시스템에 영향을 주기 위해 건드려야 할 지점의 개수가 적음을 의미한다.
갈등에 타협하는 대신 통째로 갈등을 제거할 방법을 찾아봐야 한다.
갈등이 문제의 근본 원인이고 갈등이 제거될 수 있다는 믿음에서 얻어지는 또 다른 소득은, 이런 갈등을 찾아보는 습관이 표준 절차가 된다는 사실이다.
근본적인 것들을 변화시킬수록 더 많은 결과를 기대할 수 있다.
관계에는 두 가지 모습이 존재한다. 남 탓을 하며 상대가 바꾸도록 강요하지만 관계가 더 악화되는 모습과 내재적 단순함에 따라 더 좋은 해결책으로 조화로운 관계를 추구하는 모습이 있다. 우리는 여기서 남을 탓하는 태도는 관계를 잘못된 방향으로 이끈다는 사실을 분명하게 알 수 있다.
윈-윈 해결책이 존재한다는 확신을 갖고 있다면 자신의 승리 못지않게 상대의 승리를 생각하는 해결책을 반드시 찾게 될 것이다. 서로의 갈등이 제거된 해결책이야 말로 윈-윈 해결책이다.
'잘 알고 있다'는 인식이 비약적 도약을 찾아내려는 우리의 노력을 가로막는 것으로 보인다.
우리는 모든 상황을 안다고 생각하지 않도록 계속 조심해야 하고, 모든 것을 원점에서 다시 생각해보는 자세를 가져야 한다.
성과가 있었다고 해서 이것들에 집착해서는 안 된다.
"어떤 원인을 입증하려 할 때 순환논리, 즉 'X가 Y의 원인인지 어떻게 아는가? 왜냐하면 Y가 존재하기 때문이다'로 끝나기가 쉽다. 따라서 합당한 원인을 찾고자 한다면 순환논리, 즉 같은 말 반복하기를 피해야 한다.
문제는 남 탓이 곧 내가 옳다는 것을 증명하는 수단이 된다는 데 있다. 즉 남 탓을 부정하는 예상 결과들은 모두 걸러내 버리고 결국에는 모두 남 탓을 뒷받침하는 예상 결과만 남겨둔다.
우리가 누군가에 대해 인격 모독적 용어를 쓰는 것을 자각했다면, 현재의 추상 원인을 폐기하고 다른 원인을 찾아봐야 한다.

자 이 정도면 충분히 뽐뿌질이 되었는가? 얇지만 나름 생각을 많이 하도록 만드는 책이므로 여러 번 읽어서 세상을 바라보고 판단하는 방법을 교정해보자.

EOB

일요일, 5월 27, 2012

[B급 프로그래머] What makes a good engineering culture?

Quora에 다음과 같은 질문이 올라왔다.

Quora and Facebook both have strong, well-known engineering cultures. What makes a "good" engineering culture - free time to commit to projects, a commitment to open source, or is it the leadership being technical by trade?

한글로 번역하자면... "쿠오라와 페이스북에는 강력하고 잘 알려진 공학적인 문화가 있습니다. '훌륭한' 공학적인 문화를 만드는 요인은 무엇일까요? 프로젝트에 전념하기 위한 시간? 오픈 소스에 대한 기여? 전문가가 되기 위한 리더십?"

여러 가지 다양한 의견이 나왔지만, 질문의 당사자(아니 해당 회사)로 쿠오라 엔지니어인 Edmond Lau가 직접 대답한 내용이 대박이다. 그냥 읽고 넘어가기에 좋은 정보이기에(라 쓰고 '나중에 참조할 목적으로'라고 읽는다. ㅋㅋ) 간략하게 요점을 정리해보았다

  1. 반복 속력을 최적화한다: 빠른 반복 속력은 작업 동기와 흥미를 유발한다. 코드 배포와 기능 출시를 방해하는 구조적이며 관료적인 장벽은 엔지니어가 회사를 떠나는 이유 중에 가장 짜증나며 공통적인 요인으로 작용한다. 조직적인 관점에서 보면, 빠른 반복 속력은 엔지니어와 디자이너에게 매일 일어나는 결정을 허가를 얻지 않고 자율적이고 유연하게 내리도록 만든다. 반복 속력은 또한 제품 개발을 시작하기 위한 잘 정의된 프로세스가 정립되어 투자가 많이 일어났을 경우에 개발 취소가 기대치 않은 방식으로 일어나지 않음을 의미한다. 팀 관점에서, 빠른 반복 속력은 팀 노력을 조율하고 이끌어내기 위한 강력한 리더십을 의미한다.
  2. 무지막지하게 자동화를 추구한다: 제품이 커저나감에 따라, 엔지니어당 운영 부하도 커져나간다. 페이스북은 엔지니어당 백만 가입자를 뒷받침하는 확장 측정 기준을 내세우는 것으로 유명하다. 자동화와 스크립트화는 개발팀이 실제 제품에 전념하도록 만들어주므로, 단기적인 땜빵이라는 유혹에서 벗어나 장기적인 수정과 테스트에 집중해야 한다.
  3. 올바른 소프트웨어 추상화를 이룬다: MIT 교수인 다니엘 잭슨은 소프트웨어 추상화의 중요성을 다음과 같이 말했다. "올바른 추상화를 고른다면, 설계부터 자연스럽게 프로그램이 흘러가도록 만들며, 모듈을 작고 단순한 인터페이스로 유지하며, 새로운 기능은 광범위한 재조직화 없이 기존 틀에 맞아 떨어지게 된다." 팀이 땜방질 해법으로 추상화를 조각내는 대신 소수의 핵심 추상화에 집중하게 되면 공통 라이브러리가 좀더 튼튼해지며, 모니터링이 지능화되며, 성능 지표를 쉽게 이해할 수 있게 되며, 포괄적인 테스트가 가능하게 된다.
  4. 코드 검토로 고품질 코드에 집중한다: 고품질 코드 기반을 유지하면 전체 엔지니어링 팀의 생산성을 높인다. 깨끗한 코드는 이해하기 쉽고, 개발하기 쉽고, 변경하기 쉽고 버그를 (미리) 노출하기 쉽다. (커밋 전이 되었든 커밋 후가 되었든) 시의 적절한 코드 검토를 위한 프로세스 수립은 코드 품질을 여러 가지 방식으로 개선한다. 누군가 코드를 검토한다는 사실이 엉망인 코드 작성에 대한 유혹을 강하게 압박하며, 코드 검토자와 코드 작성자가 더 나은 코드를 작성하는 방법을 배울 기회가 생기기 때문이다.
  5. (서로) 존중하는 작업 환경을 유지한다: 동료 사이의 존중은 열린 의사 소통의 토대를 형성한다. 서로의 생각에 도전하는 행위가 다연스러운 장소에서 건전한 아이디어가 나온다. 서로 물고 뜯는 환경에서는 제대로 된 피드백이 존재하지 않는다. 엔지니어들은 다양한 범위에서 전문가이며, 모든 사람이 각 분야마다 경험치가 다르다. 강력한 팀은 특정 분야에는 강하지만 다른 분야에는 약한 개인들로 구성되지만, 서로 존중하는 문화가 강점을 살려준다.
  6. 코드의 소유권을 공유하자: 코드 소유권을 공유할 경우, 유지 보수 담당이 자리를 비운 상황에서도 유지 보수 담당과 해당 팀원의 스트레스가 줄어든다(백업 요원이 있기 때문에). 또한 팀원들이 특정 분야에 너무 깊이 빠져들지 않기에(예: 난 이 모듈만 책임진다!) 참신한 통찰력을 제공할 수 있게 된다. 마지막으로 전략적인 목표를 빨리 끝내야 할 필요가 있는 시급한 문제를 여러 명이 함께 해결할 수 있게 된다.
  7. 자동화된 테스트에 투자하자: 단위 테스트 커버리지와 통합 테스트 커버리지는 끊임없이 빌드나 제품을 깨먹지 않고서도 대규모 개발자들이 대규모 코드 기반을 관리하도록 만드는 확장 가능한 유일한 방법이다. 자동화 테스트는 팀이 커짐에 따라 지속적인 배포 작업이 가능하도록 만드는 핵심이다.
  8. 20% 시간을 할당하자: 구글, 아틀라시안, 페이스북, 쿠오라는 모두 엔지니어들에게 20%의 시간을 줘서 일반적인 프로젝트 이외에 하고 싶은 뭔가를 하도록 유도한다. 미친 듯이 보이는 아이디어를 실행할 수 있는 시간을 주게 되면 뭔가 색다른 결과를 만들어내며, 장기적으로는 서비스나 제품에 많은 도움을 준다.
  9. 지속적인 개선과 학습 문화를 만들자: 주간 기술 회의는 엔지니어들에게 설계안과 작성 중인 코드를 공유하는 장을 만들어줘서 엔지니어들이 자신들의 작업에 긍지를 느끼고 팀이 당면한 작업 범위를 벗어나 넓게 볼 기회를 제공한다. 배우는 문화를 구축하려면 기초적인 알고리즘, 시스템, 제품 기술을 모든 직원이 보유할 수 있도록 멘터링하고 훈련하는데 집중한다. 엔지니어링 조직이 커지고 사람을 뽑는 노력이 더 들어갈 수록 멘터링과 훈련에 투자하는 노력도 커진다. 새로 뽑은 신입에 대해 매일 한 시간씩 멘터가 시간을 투자하는 행위가 부담으로 느껴질지 모르겠지만, 신입이 성공을 위한 준비를 마치는 과정에서 상당히 큰 지렛대 구실을 한다.
  10. 최고 개발자를 고용하자: 스티브 잡스는 다음과 같이 말했다. "A급은 A급을 뽑고, B급은 C급을 뽑는다" 페이스북 Yishan Wong은 "최고 개발자를 고용하는" 것과 "인터뷰한 최고 후보를 고용하는" 것 사이에는 차이가 있음을 강조한다. 쿠오라도 처음에는 엄청난 고객 요청에 압도 당해 고용 기준을 낮출뻔 했지만 그렇게 하지 않았다. 낮은 품질의 코드와 취약한 엔지니어로 기인한 기술 빚은 팀과 제품을 망가 뜨리기 때문이다.

이 정도면 아주 좋은 출발점으로 보인다. 하지만 훌륭한 문화를 만들기 위해서는 무엇보다 _실천_이 우선이다. 아무리 좋아도 이론은 이론일 뿐이니까. 그런 의미에서 바쁘다는 핑계로 차일피일 미루던 (사내 정보 공유를 위한) 수요 기술 세미나를 내주부터 다시 열어야 겠다. :)

EOB

금요일, 5월 25, 2012

[독서광] 부의 기원(3)

다른 책을 소개하느라 부의 기원을 잊어먹고 있었다. 오늘은 3부 '진화는 어떻게 부를 창출하는가'를 간략하게 정리해보겠다. 3부는 게임이론으로 많이 소개된 '죄수의 딜레마'를 다루며 시작한다. 죄수의 딜레마는 '비제로섬 게임'이라는 측면에서 무척 흥미롭다. 다시 말해 둘 이상의 사람들이 협력하면 모두에게 유리한 결과를 얻을 수 있게 된다. 하지만 현실은 어떨까? 내가 도우려고 했지만 남이 나를 속인다면? 그냥 제로섬 게임으로 흘러갈 가능성이 높다. 1970년대 후반 로버트 액설로드가 수학적인 계산 대신 실제 경연 대회를 열어 어떤 전략을 써야 가장 유리할지 알아내는 놀라운 실험을 했는데, 놀랍게도 결과는 '일단 처음 만난 상대에게는 무조건 협조하는 편을 선택하며, 그 다음부터는 상대방이 내린 결정을 보고 그대로 반복한다'는 팃포탯 전략이 최고로 좋은 결과를 얻었다. 내가 먼저 남을 '신뢰'해야 남도 나를 '신뢰'한다는 원칙이 그래도 적용된 사례다. 이를 컴퓨터 상으로 가져와서 인생(Life) 게임에 죄수의 딜레머 규칙을 적용한 방법으로 시물레이션을 진행한 결과 영원히 승리하는 전략은 없었다. 물론 시간이 아주 오래 지속된다면 팃포탯과 같은 단순한 전략이 계속해서 살아남게 되긴하지만 절대 판을 독식할 수는 없다.

단순한 시물레이션이 아닌 실제 경제에서도 승리의 규칙을 찾아내려면 어떤 사고 실험을 해야할까? 대니얼 데닛이 제안한 '바벨의 도서관'이라는 디자인 공간을 사용하면 어느 정도 힌트를 얻을 수 있을 듯이 보인다. '바벨의 도서관'은 영어로 쓰일 수 있는 500페이지 분량의 모든 책들이 소장된 초대형 도서관이다. 500쪽 분량이라면 권당 문자가 약 100만개 들어 있으며, 대소문자, 숫자, 구두점을 포함하면 영문자가 총 100자가 넘으므로, 도서관에는 100의 1,000,000승 만큼 책이 소장되어 있다. 이런 책을 뒤지다보면 별의별 책이 다 나오기 마련이다. 예를 들어, 윌리엄 세익스피어의 작품과 2042년의 베스트 셀러 작품, 심지어 여러분의 자서전까지 존재한다. 여기서 만일 이 도서관에서 특정 기업의 사업 계획서를 찾는다고 가정하자. 공격적인 내용, 보수적인 내용, 수익성이 높은 내용, 수익성이 떨어지는 내용 등 온갖 종류의 사업 계획서가 존재하지만, 현재 특정 기업의 상황에 맞는 사업 계획서가 아니라면 효용이 떨어진다. 하지만 시간이 흘러감에 따라 점진적으로 사업 계획서의 형태는 성공을 위한 공진화를 밟아왔다는 사실은 확실하다. 엄청나게 많은 경로(책) 중에서 성공적인 사업을 위한 경로(책)는 자연계의 진화와 유사한 방식으로 선택이 이뤄지게 된다.

다음으로 물리적인 기술을 설명한다. 구석기 시대 말에 이르러 다양한 도구가 등장하게 된 배경을 인간 언어 능력의 형성에 기인한다고 설명한다. 물리적 기술이 대대손손 이어져 내려오는 과정에서 정보 전달에 최소한의 신뢰성이 있어야 하는데, 언어의 출현이 복잡한 대규모 기술을 코드화하고 전달하고 정확하게 수행하는 데 돌파구를 마련했기 때문이다. 이렇게 물리적인 기술을 요소와 구조를 코드화했다고 추상화하면, 요즘 나오는 수많은 제품들에 대한 설명이 가능해진다. 자동차의 경우 엔진, 본체, 의자, 문과 같은 다양한 구성 요소와 배기량, 토크, 시트 제질, 문 개수와 같은 다양한 구조가 결합되어 나타난다. 따라서, 인텔이 새로운 마이크로프로세서를 만들 때마다 가능한 SKU(Stock Keeping Unit)이 늘어나며 물리적인 기술 공간이 늘어난다. 여기서 물리적인 기술 혁신이 일어나는 이유 역시 진화를 사용해 설명이 전개된다. 연역적인 논리적 사고, 실험으로 추론하는 방법, (연역도 아니고 귀납도 아닌) 뭔가에 열광하는 인간의 속성(임의 점프가 가능해진다)이 결합해 현존하는 디자인의 범위를 넓혀나가게 된다. 그렇다면 선택 받고 살아 남는 기술은 무엇일까? 주어진 환경에서 벅찰 정도로 많은 디자인이 출현해 경쟁이 불가피한 상태가 될 경우 선택이 일어나고, 기록이 돌에 새겨지거나 책으로 인쇄되거나 웹 페이지에 올려지며 복제되며 확산되면 살아 남은 성공한 기술이 된다. 나머지 복제가 일어나지 않는 (즉 모방되지 않는) 기술은 급격히 사라져버린다. 하지만 영원히 살아남는 기술이 없는 이유를 '파괴적 기술' 관점에서 바라볼 필요가 있다. 기존 기술로 성공할 기업일수록 기술 적합도 지형에서 새로운 기술로 갈아타기가 어렵다. 즉 정상에 있을 때는 다른 정상으로 올라가기보다 밑으로 내려가기가 훨씬 쉬울 뿐 아니라, 다른 정상으로 점프는 정말 위험하다. 새로운 시장에 진입하는 벤처 입장에서 보면 산 위로 올라갈 수 있는 새로운 길도 많고 도전할 수 있는 정상도 많지만, 계곡에서 산 위로 올라가 정상에 이르기 전에 깊은 계곡으로 빠져들거나 낮은 봉우리에 만족해 끝나는 경우도 많기에 그렇게 엄청난 성공을 거두기가 힘들다고 볼 수 있다.

물리적인 기술에 이어 사회적인 기술을 설명한다. 미국 경제의 생산성이 빠르게 증가한 이유를 물리적인 기술에서 찾으려던 학자들은 생산성을 증가시킨 요인이 회사들이 스스로를 조직화하고 관리하는 방식의 변화, 즉 사회적 기술의 혁신임을 알고 깜짝 놀랐다. 월마트의 경우 1980년대와 1990년대 초반에 경쟁 업체에 비해 40%나 더 생산적으로, 1990년대말까지 생산성을 22%나 더 향상시켜 경쟁 업체를 따돌렸다(B급 프로그래머: 지금은 아마존이 그 자리를 차지하고 있다. 낄낄). 그렇다면 사회적 기술이 무엇일까? "목표를 추구하면서 사람들을 조직하는 방법과 디자인"이라는 정의가 있다. 앞서 설명한 도서관과 유사한 사회적 도서관을 구성해 비슷한 방법으로 사고 실험을 하게 되면 역시 사회적 기술에도 진화가 개입될 수 있음을 알 수 있다. 돈이 발명되자 회계학이 만들어졌고, 이에 따라 주식 회사가 생겼고, 주식을 팔고 사는 주식 시장이 활성화되었다. 사회적 기술 공간에서도 연역적 추론과 실험적 추론이 역시 적용된다. 하지만 물리적인 기술과는 달리 사회적 기술에서는 실험적 추론이 우세하다. 시간이 지날수록 성공적인 디자인은 계속 지속되고 복제 되어 더 많은 자원을 끌어 당기고 확산되면서 증폭된다. 이렇게 물리적인 기술과 사회적인 기술이 공진화하며 농업 혁명, 산업 혁명, 정보 혁명을 이끌어 내게 되었다. 사회적인 기술에서도 앞서 설명한 협력이 아주 중요하다. 상호 협력을 기초로 하는 팃포탯과 같은 전략이 성공을 이끌어낸다는 사실은 서로 협력하는 사람들이 사기꾼을 몰아내어 건전한 사회를 만드는 과정을 설명할 수 있다. 마지막으로 경제적인 성공과 계층적인 구조가 존재하는 이유를 설명한다. 분업과 규모의 경제적 장점을 이용하려면 업무를 분할하고 실행을 조정하고 상황을 다시 결합해 결과물을 할당해야 하는데, 일단 계층 구조가 만들어지자 이런 계층 구조 내에 다시 계층 구조를 충첩해 분업과 정보 처리를 촉진하는 방법을 고안하게 되었다. 이런 계층 구조는 수렵/채집 부족부터 지역 볼링 리그와 대기업에 이르기까지 사회를 지배하는 기본적인 구조에 스며들게 되었다.

다음 주제인 '경제적 진화' 상당히 복잡하므로 오늘은 여기까지.

토요일, 5월 19, 2012

[독서광] 네트워크 속의 유령

최근 EBS 해킹 사고로 인해 다시 한번 보안에 대한 경각심이 높아지는 상황이다. 따라서 오늘은 정말 간만에 보안 관련 책을 하나 소개하려고 한다. 컴퓨터 보안에 관심이 있는 분이라면 누구나 한번 쯤 케빈 미트닉이라는 이름을 들어봤을 것이다. 1995년 체포될 당시 미국에서 1급 수배자로서 악명을 떨쳤으며 대규모 보안 사건이 터질 때마다 언론에서 유력 용의자로 지목했던 보안 분야의 유명인이다. 이 책은 바로 전설의 블랙 해커인 케빈 미트닉이 펼치는 화려한(어지간한 책과는 스케일과 레벨이 다르다. 낄낄. 이중 스파이에 헬리콥터 추격전까지 나오는 한 편의 영화다.) 무용담을 장장 600페이지에 걸쳐 숨가쁘게 펼쳐내고 있다. 보안 쪽에 관심이 있고 시스템(특히 유닉스) 관리 지식이 있으며 평상시 사회 공학적인 장난(?)을 좋아하는 분들이라면 이 책을 정말 재미있게 읽을 수 있으리라는 생각이다.

미트닉의 어린 시절(어린 시절부터 이미 선수(?)였음을 알 수 있다)부터 결국 FBI에 잡혀 풀려날 때까지 연대기 순으로 미트닉의 관점에서 이야기를 서술하고 있으므로 기존 언론이나 영화에서 그려진 미트닉의 모습과는 또 다른 흥미로운 여러 가지 사실을 알 수 있다. 예를 들어, 미트닉은 해킹한 정보를 토대로 금전적인 이익을 얻거나 정부와 기업에 엄청난 피해를 입혔다고 주장하는 내용을 일관성 있게 부인하고 있으며, 자신을 잡는데 결정적인 기여를 했다고 알려진 시모무라도 사실상 FBI의 도움을 받았기에 다른 책이나 영화에 나오는 해커를 때려잡는(?) 영웅과는 거리가 멀다고 주장한다.

이 책은 미트닉이 사용한 사회 공학적인 접근 방법이 아주 상세하게 연대기 순으로 (게다가 서로 연관을 맺으며) 등장하므로 훌륭한 보안 지침서로 생각해도 무방할 정도다. 물론 미트닉이 쓴 다른 책인 '해킹: 침입의 드라마'를 보면 좀더 체계적이고 정리된 설명이 나오지만, 아무래도 실제 현장에서 벌어지는 가감없는 자신의 경험담이 훨씬 더 현장감이 느껴지므로 따분한 보안 관련 표준안을 읽느니 이 책을 읽는 편이 실제 보안 사고를 줄일 확률이 높다는 생각을 잠시 해봤다. 미트닉은 10명이 지켜도 1명 도둑을 못막는다는 옛말이 있듯이 완벽한 보안 정책과 기법과 제품이라는 존재하지 않는다는 사실을 적나라하게 보여준다.

미트닉이 사용한 기법을 잠시 같이 살펴볼까?

-------------
"혹시 .rhosts 파일이 있나요?"

"그게 뭐죠?"

하하 내가 기대하던 답변이었다. .rhosts 파일을 모른다는 말은 해킹을 하기 딱 좋은 대상이라는 의미였다. <중간 생략>

나는 제프에게 다음과 같이 입력하라고 말했다.

echo "+ +" > ~/.rhosts (B급 프로그래머: 번역서에는 ~.rhosts라고 나와있지만 명백한 오탈자다. .rhosts라는 사용자의 홈을 덮어쓰라니... T_T)

맞다. 이것은 .rhosts 해킹에 사용되는 명령이다. 나는 제프에게 입력을 지시할 때마다 매번 아주 태연하게 그럴싸한 설명을 해줬고, 따라서 제프는 자신이 지금 시스템에 어떤 명령을 내리는지 안다고 착각했다. <이하 생략>
-------------

뭐 요즘이야 누구나 알고 있는 전형적인 .rhosts 해킹이지? ㅋㅋ

-------------
나는 진저에게 전화로 도움을 줄 수 있다고 말했다. 나는 문제를 해결하는 절차를 가르쳐주면서 진저에게 시스템에 다음과 같은 명령문을 입력하게 했다.

nc -l -p 53 -e /bin/sh&

진저는 그 명령문을 입력하면 내가 법률사무소의 게이트웨이 서버에 접속할 수 있는 권한을 가지게 된다는 걸 몰랐다. <이하 생략>
-------------

netcat 명령은 B급 프로그래머도 즐겨쓰기에 미트닉의 순발력에 한참을 웃었다. 미트닉이 사용하는 수법은 위 사례를 보면 알겠지만 절대 어려운 공격 방법이 아니다. 그런데 이런 내용이 정말 말이 된다는 사실은 B급 프로그래머 경험으로 보증할 수 있다. 10년 전(아니 그보다 더 오래 전이구나)에 모 프로젝트를 진행하며 Solaris 운영체제로 동작하는 시스템에 소프트웨어를 설치해줬는데, 문제가 생겨 지원이 필요했다. 직접 들어가서 해결하는 방법이 최선이지만 거리상 원격으로 해결하려 마음먹고 생각해보니 외부에서 접속할 방법이 마땅치 않았다. 시스템 담당자가 문헌_정보_학과를 나온 신입 사서(상당히 귀여운 미인이었던 걸로 기억한다)라서 유닉스와 시스템에 대해 그야말로 기초적인 지식(로그인 방법 정도 T_T)만 알고 있었기에 전화를 붙잡고 즉석에서 vi 명령어도 가르치고 간단한 셸 스크립트도 작성하게 만들고 무려 root 권한으로 데몬을 재시작하고... 여튼 성공리에 문제를 해결했다. 물론 다음 번에도 여러 번 이 친절한 미인 사서의 도움을 받았던 걸로 기억한다(나의 시스템 관리 아바타라고나 할까? 응?). 만일 이런 상황에서 정상적인 업무가 아니라 사회 공학적인 공격을 마음먹었다면 어떻게 될까? 그냥 내부 시스템을 다 뒤지고 다니고도 충분할 상황이라고 생각하면 틀림없다.

내 맘대로 교훈: 요즘에는 기업과 기관들이 USB 장치를 막고 와이파이 재머를 가동하고 휴대폰 카메라에 스티커를 붙이고 온갖 보안 정책을 다 세우지만, 트럭이랑 탱크가 지나다닐 구멍은 도처에 존재한다. '도구'와 '기교'가 아니라 '사람'이 핵심이라는 평범한 진리를 다시 한번 곱씹어보자.

토요일, 5월 12, 2012

[일상다반사] 방문객 30만명 돌파 이벤트

지난 2006년 6월에 블로거로 이전한 다음에 지속적으로 애독자 여러분들께서 찾아주신 덕분에 지난 주에 30만명을 돌파했다. 딱딱한(매일 책 이야기만 하니... T_T) 내용에도 불구하고 블로그를 방문해주신 여러분들께 다시 한번 감사 말씀을 드리며, (피드버너 통계에 따르면) 2790분 정도 되는 RSS 구독자분들께는 감사를 두 배로 드린다. 그래서 오늘은 색다른 이벤트를 한번 기획해보겠다. ㅋㅋ

RSS 구독자와 애독자 중에 _세 분_을 모시고 맛있는 저녁 식사를 대접하려 한다(정확한 날짜와 장소는 아직 미정이다. 단, 장소는 이동이 편리한 서울 강남 지역으로 정할 예정이다). 지금까지 이벤트만 하면 매번 걸리는 분들만 걸린다는(진짜로 그렇다! 부지런한 분들이 늘 책을 가져가셨다) 민원이 많이 들어왔기에 이번에는 공정하게 난수를 발생시켜(응?) 독자분을 뽑을 예정인데, 선정 규칙에 약간 변화를 가하기로 했다.

행사에 참여하시는 분들께서는 반드시 성함(이번 이벤트에는 개인적으로 알고 있는 지인분들이 신청하실 경우 우선 순위가 뒤로 간다. 설마 동명이인이 많기야 할까? ㅋㅋ)과 자기 출생 연도 4자리(예: 1980)를 알려주시기 바란다(이 네자리 숫자가 작을수록 확실히 우선 순위가 앞으로 온다. 단, 미성년자분들께서는 아쉽지만 다른 기회를...). 젊은 분들과 이야기를 나누고 싶기에 이런 규칙을 만들었으므로 어르신(!)들께서는 양보를 부탁드리겠다. 아, 컴퓨터 관련 직종에 근무하거나 관련 학과에 다니시지 않아도 신청 가능하다. 다른 분야에 계신 분들을 더욱 환영한다.

jrogue 애뜨 gmail 닷컴으로 5월 15일(화)까지 신청해주시기 바란다. 다른 이벤트와는 달리 블로그 댓글은 필요하지 않다. 당첨자 명단과 이벤트 안내는 개별적으로 5월 19일(토)에 알려드리겠다.

EOB

토요일, 5월 05, 2012

[독서광] 생각의 속도로 실행하라

간만에 경제/경영 블로그답게 흥미로운 책을 하나 소개하겠다. 번역서 제목을 다소 자극적인 '생각의 속도로 실행하라'고 바꾼 이 책은 원서 제목인 'Knowing-Doing Gap'(한국어로 번역하자면 '지행격차' 정도가 되지 않을까 싶다)을 집중적으로 다루고 있다. '말보다 실천이 어렵다'는 명제를 기업의 흥망성쇠와 연결해 소개하는 책 중에서는 최고봉이 아닐까 싶다.

이 책은 조직 성과와 성과를 내는 방법을 잘 아는 경영자들이 나름 일도 열심히 하고 있음에도 불구하고 망가지는 이유를 아는 것과 실행하는 것의 격차라는 관점에서 설명하고 있다. 실제로 지금까지 엄청나게 많은 경영/경제/자기 계발서가 쏟아져 나왔고, 하버드 비즈니스 리뷰를 비롯한 각종 논문과 연구 결과들이 속속들이 출간되고 있음에도 불구하고 망가지는 회사들은 어김없이 망가지고 있다(심지어 유명한 컨설팅 업체의 도움을 받아 회생하려 노력하다 더 망가진 회사들도 많다). 하지만 모든 실패는 '개인'의 문제로 치부하는 경우가 많다. 최고 경영진이 무능해서, 직원들이 복지부동해서, 부정부패가 만연해서, ... 이렇게 설명을 하면 명쾌하고 단순하긴 하지만 문제를 풀 가능성은 점점 멀어지고 만다. 희생양을 하나 잡은 다음 죽도록 비판하고는 다시 예전으로 돌아갈테니까. 하지만 이 책에서는 다른 각도로 접근한다. 망가지는 회사들의 특징 중 하나로 지행격차가 크다는 사실을 날카롭게 파해치면서 어떻게 하면 지와 행을 가까이 붙일 수 있는지 사례를 들어 설명한다.

지행격차라는 제목부터 센스 작열인데, 이 책의 각 장 제목을 보면 손발이 더욱 오그라 든다. 간단하게 핵심 목차를 살펴볼까?

  1. 지식의 부족이 아닌 실행의 부족이 문제
  2. 말이 행동을 대신할 때
  3. 기억이 생각을 대신할 때
  4. 두려움이 지식 실행을 가로막을 때
  5. 숫자가 판단을 가로막을 때
  6. 내부 경쟁이 친구를 적으로 만들 때

우리들은 지금까지 묵묵히 일하는 사람보다는 말만 번지르한 빅마우스(!)를 대접하고, '우리는 이렇게 하지 않소!'라며 과거 관행을 집착하며, '내 말 안 들으면 모가지야' 공포감을 조성해 직원들을 복지 부동 모드로 만들고, 객관적이고 정량적인 평가가 필요하다는 명분을 새워 이리 꼬고 저리 꼬은 BSC나 KPI와 같은 시스템을 도입해 내부 인력들을 동지가 아니라 적으로 만들고, 철저하게 내부 경쟁을 붙여 조직내 정보 교류를 막고 타인을 방해해야만 성과급을 받도록 만드는 회사를 얼마나 많이 목격해왔는가! 이 책은 알면서도 실천하지 못하도록 이리 막고 저리 막는 기업의 나쁜 관행을 시원하게 까발린다. 물론 사례 연구에 BP를 넣은 심각한 오류를 범했지만(참고로 이 책이 나온지 10년 넘었을거다), 이 정도는 용서하고 봐주자. 평생 승리하는 회사는 없으며 모든 회사는 실수를 극복하면서 성장하니까 말이다.

자, 그러면 책에서 나온 재미있는 내용을 함께 살펴보자.

실행되는 지식은 독서/경청/생각을 통해 학습한 지식일 가능성이 낮다. 그보다는 행동을 통해 학습한 지식일 가능성이 훨씬 높다.
위대한 기업들은 보통 사람으로부터 위대한 성과를 뽑아낸다. 위대하지 않은 기업들은 재능있는 사람을 뽑아 그 인재의 재능과 통찰과 의욕이 줄 수 있는 혜택을 어떻게든 무력화한다.
적어도 미국에서는 '하면 알게 된다'라는 철학이 일을 잘못하면 목숨을 잃을 수도 있는 직업에서 가장 일관성 있게 적용되고 있는데, 이는 시사하는 바가 크다.
많은 기업에서 사람들은 똑똑하고 생산적인 것들을 '실행'하면서가 아니라, 똑똑하게 '말함'으로써 남을 앞서가는 것 같다.
사람들은 이견을 공공연히 표현하지 않고 공적으로는 결정을 수용하지만, 실행을 위해서라면 아무 것도 하지 않을 수도 있다.
용기를 내어 실질적인 뭔가를 제안한 사람들이 밀려난다면, 조직은 영리한 반박꾼들로 넘치고 행동이라고는 전혀 찾아볼 수 없게 될 것이다.
발언 내용의 질과는 무관하게 더 길게 더 많은 논평을 한 사람들이 덜 수다스러운 집단 구성원들보다 새로운 집단에서 리더로 떠오를 가능성이 크다.
경영 컨설팅은 말을 파는 직업이다.
모두와 정보를 공유하려면 남이 모르는 것을 알기 때문에 누릴 수 있는 힘과 특권을 포기해야 함을 의미한다.
SAS에는 모든 간부가 '일하는 간부'다. 이는 심지어 공동창립자이자 CEO인 제임스 굿나이트에게도 적용된다.
루소는 사람은 언제나 뭔가를 하지 않을 구실을 찾을 수 있다고 말했다.
유용하고 필요한 뭔가가 왜 되지 않는지에 대해 늘어 놓는 말을 어떻게 할 수 있을까에 대한 말로 바꿔놓아야 한다.
기존 방식에 의문을 제기할 만큼 용기를 내고 기존 관행이 폐기되고 새로운 관행을 세워야 하는 그럴듯한 이유를 제시하는 사람들은 무시되거나 혼나기 쉽상이다.
두려움은 과거의 실수를 되풀이하고 과거의 문제를 재발시킨다. 더 좋은 일처리 방식을 알 때조차 두려움에 사로잡힌 사람은 과거를 반복하곤 한다.
'상황이 어쩔 수 없었다'라는 생각은 정당성이 없다.
기업들이 전략, 문화, 인센티브 제도 등에서는 엄청나게 다르면서, 관리적 측정과 보고 시스템에서는 본질적으로 비슷하다는 것이 이치에 맞아 보이는가?
사람들을 다양한 유닛에서 경험을 쌓도록 하는 것도 팀 중심 문화를 강화하는 데 도움이 된다.
어느 사회나 회사에서든 경쟁은 대체로 선택 사항이지 인간 본성의 어떤 성질 때문에 필연적으로 빚어지는 결과는 아니다.
회사(마이크로소프트 사)가 인지하는 대로 개인의 전문성에 따라 연봉과 보너스가 결정되기 때문에 자신의 결점을 다른 사람에게 들키지 않으려는 경향이 커진다.
불안 속에서 생존을 다퉈야 하는 경쟁적 환경에서는 기존의 사람들은 새로운 사람들로부터 배우려는 노력이 아닌 그들을 깔보고 헐뜯음으로써 새로운 사람들의 능력을 폄하하려는 노력을 하게 된다.
연구에 따르면, 일단 어느 개인, 집단 또는 부문이 성과 경쟁에 져서 '패배자'라는 꼬리표가 붙고 나면, 그 후 성과는 더 나빠진다.
되풀이되는 일상적 과업을 잘 하기 위해 필요한 것과 새로운 지적 과업을 잘 하기 위해 필요한 것, 이 두 가지를 사람들은 헷갈리곤 한다.
과업이 매우 어렵거나 복잡해 타인의 도움이 필요하고 정보 공유가 요구될 때 내부 경쟁은 특히 더 파괴적이다.
보통 조직 내 여러 구성원들 간의 상호의존성이 높을수록 개별 기여의 측정이 어려워진다.
대체로 우리 회사의 리더들이 그 자리까지 오를 수 있었던 것은 리더십 능력뿐만 아니라 경쟁 능력도 뛰어난 덕분이었다. 따라서 리더들 대부분이 업무 환경에 경쟁을 도입하면 성과가 높아질 거라고 믿는 것은 당연하다.
지행격차에 대해 아는 것과 지행격차에 대해 어떤 읽을 '하는 것'은 다르다. 원인을 이해하면 그 이해를 바탕으로 행동의 방향을 잡을 수 있기 때문에 도움은 된다. 그러나 아는 것만으로는 충분치 않다. 행동이 반드시 따라야 한다.

오늘은 보너스로 지식 실천을 위한 8가지 지침을 정리하며 마무리하겠다. 여러분이 지금 다니는 회사는 얼마나 '실천'에 강한지 다시 한번 점검해보시기(그리고 지금 회사의 실천 능력이 0에 가깝다는 사실을 알게 되면 아까운 인생을 더 이상 낭비하지 마시고 얼른 다른 길을 찾아보시기) 바란다.

  1. '어떻게'보다 '왜'가 먼저이다: 철학이 중요하다
  2. 실행하고 가르치면서 지식을 얻는다
  3. 계획과 개념보다 행동이 중요하다
  4. 실수 없는 실행 없다. 회사의 반응은?
  5. 두려움은 지행격차를 벌린다. 두려움을 몰아내라
  6. 끼리끼리 싸우지 말고 경쟁사와 싸우라
  7. 지식 실천에 도움이 되는 것을 측정하라
  8. 리더가 어떻게 시간과 자원을 쓰는지 중요하다
EOB

토요일, 4월 28, 2012

[독서광] 읽기 좋은 코드가 좋은 코드다

봄바람이 불어 바깥 나들이 가기 좋은 날씨가 계속되고 있지만, 책상에 산더미처럼 쌓인 책의 유혹을 이기지 못하고 요즘 계속 기술서를 집중적으로 읽고 있는 상황이다. 오늘은 한빛미디어에서 따끈따끈하게 신간으로 보내준 '읽기 좋은 코드가 좋은 코드다'라는 책을 독자 여러분께 소개해보려 한다.

2년 전에 클린 코드: 애자일 소프트웨어 장인 정신이라는 책을 번역해서 독자 여러분들께 선보인 적이 있다. 물론 여러 가지 이유로 인해 흥행은 참패했지만(흑흑흑), 구입한 몇몇 분들로부터 책 내용 정말 좋다는 칭찬을 받아 기분이 좋긴했다. 엉클 밥 마틴의 공력이 느껴지는 이 책이 다루는 주제는 "깨끗한 코드"인데, 실제 코드 쓰기보다 코드 읽기를 훨씬 더 많이 하는 우리 프로그래머 관점에서 깨끗한 코드야 말로 축복이자 성전이라 말해도 과언이 아니다. '클린 코드'는 다소 주관적인 특성이 있긴하지만(저자가 엉클 밥이라는 사실을 기억하자. ㅋㅋ) 자바를 집중적으로 다루기 때문에 깊이도 있고 분량도 만만하지 않으므로 갓 자바에 입문한 초급 개발자가 읽기에는 애로 사항이 여기저기서 꽃필 가능성이 높다. 하지만 오늘 소개할 '읽기 좋은 코드가 좋은 코드다'는 그림과 쉬운 설명을 곁들여 여러 가지 프로그래밍 언어를 대상으로 초보 개발자에 적합한 방식으로 내용을 전개하므로 "클린 코드"에 앞서 워밍업으로 읽어보면 좋을 것 같다는 생각이 들었다.

'읽기 좋은 코드가...'는 10%의 노력으로 90%의 효과를 발휘하는 방법을 기술하는 책이라고 보면 틀림없다. 각 장에서 설명하는 내용은 난이도가 엄청나게 높지도 않고 실천하기도 크게 어렵지는 않지만 일단 실천하게 되면 당장 본전을 뽑을 수 있는 내용이 많기 때문에 개발 과정에서 자주 틀리는 부분을 포스트 잇으로 붙여 두고 주기적으로 복습하는 방법을 사용하면 좋은 성과를 얻을 수 있다. 게다가 실용적인 방식으로 접근하므로 뭔가 치밀한 규칙을 정해놓고 여기에 딱 맞춰 숨도 쉬기 어렵게 강제하는 대신 상식선에서 생각하는 방안을 제시한다는 또 다른 장점도 있다(늘 그렇듯 규칙이 너무 엄격하면 지키기가 어렵다). 물론 실천이 가장 중요하다는 사실은 절대로 변하지 않으므로 이 책을 읽는 당시에만 기분 좋다가 끝나버리면 안 된다는 사실도 명심하자.

자 그러면, 이 책의 구성은 어떤 식일까? 우선 '핵심 아이디어'에 간결하게 골자를 제시하고 실제 나쁜 코드를 예로 들어 좋은 코드로 바꾸는 방법을 설명한다. 그리고 나서 조금 더 어려운 내용으로 넘어가며 앞서 배운 내용을 확장한다. 마지막에는 요약을 둬서 앞에 나온 내용을 일괄 정리하고 있다. 이 책에서 구체적으로 다루는 내용은 1) 표면적인 수준에서 개선이 필요한 이름, 미학, 주석, 2) 루프와 논리를 단순화하기 위해 필요한 흐름 제어, 복잡한 논리, 변수와 가독성, 3) 코드 리펙터링을 위한 하위 문제 추출, 작은 작업, 생각을 코드로 만드는 방법, 코드 분량을 줄이는 방법, 4) 마지막으로 테스트와 가독성, '분/시간 카운터' 사례다. 분량이 250페이지도 채 안 되므로 부담없이 각자 관심 있는 부분부터 즐겁게 읽으며 남에게 보여도 부끄럽지 않을 정도로 코드 수준을 높이면 좋겠다.

EOB

일요일, 4월 22, 2012

[독서광] Make Vol 3.

이번에 새로 나온 Make Vol 3.(한국어판 4월호)를 받고서 출퇴근하며 재미있는 시간을 보냈다. 이번 호는 아두이노에 집중한 지난 호와는 달리 전통적인 루베 골드버그 기계식 내용이 많아 조금 고전적인 냄새를 풍겼다. 표지에 강조한 부제가 '잃어버린 과거의 지식을 찾아서'니 당연히 여기에 부합해야 하지 않을까?

이번 호에서 가장 재미있게 읽었던 내용은 역시 '잃어버린 과거의 지식을 찾아서'에 나오는 몇 가지 고전적인 Make 프로젝트였다. 특히 스티브 잡스도 즐겨 읽은 시를 지은 윌리엄 블레이크 소개가 가장 흥미로웠다. 이번 호 Make를 보지 않았으면, 블레이크가 시인인 줄로만 생각했을텐데, 자기 시에 삽화를 컬러로 인쇄하기 위해 조판 시스템을 개발한 업적을 비롯해 선구적인 Maker라는 사실을 처음 알았다(이래서 사람을 배워야 해. ㅋㅋ). 그 다음으로 흥미로웠던 내용은 커피광의 호기심을 증폭시키는 '플로렌스 사이폰 아라비카 커피 추출기'였다. 드립 커피보다 좀더 탁월한 커피 맛을 제공한다는 설명에 홀려 잠시 만들까 생각했는데, 이건 손재주 없는 내가 만들 수 있는 물건이 절대로 아니었다(유리관 가열해서 구부리는 모습을 보고는 바로 좌절 모드로...). 그래서 에소프레소 커피에 만족하고 살기로 했다. T_T

Make 책을 보면서 늘 드는 생각이지만 나도 손재주가 좋았으면 좋겠다. 손재주도 연습하면 좋아진다는 이야기를 하시는 분들도 계시지만, 프로그래밍도 연습하면 좋아지긴 한다. 하지만 어느 수준 이상(예: Make 잡지를 보고 바로 공구 챙겨 뚝닥거리는 수준, 프로그래밍 분야에서 예를 들자면 C언어로 간단한 BASIC 인터프리터를 바로 만드는 수준)을 뛰어넘기가 너무 어렵기 때문에 그냥 눈팅만 하고 지내련다.

EOB

토요일, 4월 14, 2012

[독서광] 자바스크립트 성능 최적화

요즘 자바스크립트가 여기저기서 뜨고 있다. Ajax를 사용한 동적인 웹 프로그래밍의 기본 스크립팅 언어로 자리잡은지는 한참 되었고, MongoDB 대화식 셸과 Node.js에서는 서버 쪽 언어로 자바스크립트를 사용하고 있기에 개발자들 사이에 관심이 집중되고 있다. TIOBE 인기 순위에 따르면 자바스크립트는 작년 10위에서 올해 9위로 올라섰고 파이썬의 위치를 위협하고 있다. 그렇다면 개발자 입장에서 자바스크립트를 접했을 때 가장 머리 아픈 점은 무엇일까? 여러 가지 대답이 나오겠지만, 그 중 하나는 성능이다. 특히 웹의 대화식 특성으로 인해 조금이라도 페이지 로딩이 느려지면 바로 벗어나므로, 자바스크립트가 병목으로 작용하지 않도록 개발자들은 각별히 주의해야 한다. 하지만 C/C++/Java와 같은 다른 전통적인 프로그래밍 언어에 비해 자바스크립트와 관련해 성능을 높이는 방법을 익히기란 쉽지 않다. 웹 브라우저라는 (사실상 가상이 아닌) 가상 기계에서 동작하기 때문에 브라우저별로 특성이 제각각이기 때문이다.

오늘 소개할 책인 '자바스크립트 성능 최적화'는 자바스크립트 관련 성능 문제로 고민하기 시작한 중급(스크립트 키드나 초급 개발자들이 보기에는 조금 난이도가 높을지도 모르겠다. 물론 고급 개발자들이라면 다른 프로그래밍 언어에서 겪은 내용이 데자뷰로 펑펑 터지기 때문에 그냥 이틀 정도면 다 읽고나서 "뭐 자바스크립트도 별거 없네!"라고 말할지도... T_T) 개발자들에게 성능 관점에서 자바스크립트 언어를 새롭게 바라보는 좋은 기회를 제공할 것이다. 본문 중에 은총알은 나오지 않지만, 평상시에 무심코 지나가면서 작성한 코드가 성능에 어떤 식으로 치명타를 가했는지 여러 가지 나쁜 관례를 예로 들어 설명하므로 "내가 만든 웹 페이지는 왜 이렇게 느려?"라고 고민하는 개발자분들께 많은 도움이 될 것 같다.

목차를 보면, 스크립트를 내려받아 실행할 때까지 웹 브라우저가 어떤 삽질을 하는지 설명하는 '로딩과 실행', 그리고 프로그래밍 언어 관점에서 자바스크립트가 다른 프로그래밍 언어에 비해 독특한 특성이 있으므로 '스코프와 객체 관리'에 경각심을 불러 일으키는 '데이터 접근', 원래부터 느려터진 DOM과 조금이라도 친해지기 위한 각종 테크닉을 제시하는 'DOM 스크립팅'으로 시작한다. 그리고 나서 웹 브라우저뿐만 아니라 서버 쪽 언어에서도 도움이 될만한 일반적인 내용인 '알고리즘과 흐름 제어', '문자열과 정규 표현식'을 설명하고 나서 다시 웹과 밀접한 관련이 있는 주제인 '응답성 좋은 인터페이스', 'Ajax'를 설명한다. 그리고 다시 일반적인 내용인 '프로그래밍 사례'를 소개하고 나서 마지막으로 '애플리케이션 빌드와 배포', 프로파일링에 필요한 '도구'를 설명하며 마무리한다.

참고로 자바스크립트는 컴파일 언어가 아니며(물론 요즘 나오는 브라우저는 사정이 다르다. 파이어폭스는 JIT로 실행 중에 필요한 부분을 컴파일하는 TraceMonkey라는 엔진을 탑재하고 있고, 크롬은 아예 대놓고 자바스크립트를 컴파일해서 사용하는 V8이라는 엔진을 탑재하고 있다), 브라우저와 얽힌 여러 가지 특성으로 인해 기존 컴파일 방식의 언어에 비해 저주순 최적화 내용은 기대하기 어렵다는 사실을 감안하면, 책의 목차에서 일반적인 순수 자바스크립트 코드 최적화에 할당된 페이지 분량이 적은 이유를 이해하리라 본다. 이 책을 다 읽고 나도 웬지 섭섭한 독자분들께서는 Chrome V8 Design ElementsTamarin Tracing 페이지를 참조해 내부 동작 방식에 대한 지식을 쌓으면 좋겠다.

그러면 즐거운 자바스크립트 프로그래밍을 즐기시기 바라며!

EOB

토요일, 4월 07, 2012

[독서광] START! 링크드인 LinkedIn

한국에서야 페이스북이랑 트위터에 눌려 그리 널리 알려진 편은 아니지만 비즈니스 세계에서 가장 유명한 SNS는 뭐니뭐니해도 링크드인이 아닐까 싶다. 국내에 들어오기 상당히 오래 전부터 가입해서 사용해오던 서비스라(물론 적극적인 활동은 요즘에 들어와서야 가속 페달을 밟고 있긴 하지만...) 언제 한번 독자 여러분들께 링크드인의 놀라운 세상을 소개할까했지만 몇 년이 흘러버렸다. T_T 하지만 가장 늦었을 때가 가장 빠르다고 했던가? 오늘은 링크드인을 소재로 (놀랍게도 국내서!) 나온 START! 링크드인이라는 책을 한번 소개해보려고 한다.

이 책에는 '세계로 향하는 개인과 기업의 필수 비즈니스 SNS 가이드'라는 부제가 붙어있는데, 과장이라고 생각하면 오산이다. 과장 전혀 안 보태 전세계적으로 놀려면 반드시 링크드인 가입해 영어로 자기 이력서를 다듬어야 한다는 생각이다(물론 한국에서 직장을 구할 강력한 목표를 삼은 분들이께서는 잡코리아에만 의존하면 된다는 이야기는 절대 아니다). IT 기업을 비롯해 잘 나간다는 상당수 회사들은 혹시 자신들이 필요한 인재가 없는지 지금 여러분들이 이 글을 읽고 있는 순간에도 자체 HR 팀에서 링크드인을 이잡듯 뒤지고 있을테니까, 링크드인이 없다는 사실 하나만으로 상당히 불리한 출발선에 놓일지도 모른다는 생각이다. 영어로 링크드인을 운영하는 블로그 주인장인 B급 프로그래머 역시 외국 회사 몇 군데(사생활 보호를 위해 꼭 찍어 어디라고는 말하지 않겠다. 여튼 독자 여러분들도 알고 나도 아는 유명한 몇몇 회사가 있다. ㅋㅋ)서 '면접 한번 볼래?'라는 편지를 링크드인을 거쳐 받은 경험이 있을 정도니까 정말로 영어 잘하고 능력 좋으신 분이라면 눈 딱 감고 하루 투자해보면 어떨까 싶다.

자 여기까지 뽐뿌질을 했으니, 이미 링크드인 사이트에 가입했을테고... 구체적인 활용 방안에 대해 궁금하실텐데, 가장 좋은 방법은 직접 써보는거다. 하지만 황금 같은 시간을 아끼기 위해 남들의 경험을 활용하는 방법을 동원하면 더욱 좋을 것이다. 이 책이 바로 링크드인 초보자들에게 좋은 나침반이 되어주리라는 생각이다. 다행스럽게 책 분량도 적고 내용도 이해하기 쉬우므로(약간 중복되는 내용이 있긴 하지만, 모든 독자가 책을 첫페이지부터 끝페이지까지 읽지는 않으므로 이런 구성을 이해할만 하다), 책을 읽으면서 필요에 따라 웹 브라우저로 링크드인 내용을 채워나가기 시작하면 어느 순간 전문적인(때깔나는) 전자 이력서를 하나 확보하게 되리라 확신한다.

이렇게 이력서를 꾸며놓은 다음에, 자신이 아는 사람들의 네트워크를 하나씩 구성해보자. 주로 친한 친구들을 중심으로 네트워크가 형성되는 페이스북과는 달리, 링크드인은 $이 걸린 비즈니스 네트워크를 구축할 수 있기 때문에 자신의 이력이나 경력을 제대로 관리하고 싶은 분이라면 이 멋진 도구를 사용해 인맥을 형성해나가는 재미를 쏠쏠하게 느낄 것이다. 취업, 프로젝트 진행, 전문가 찾기와 같은 활동 과정에서 오히려 근처에 있는 아주 친한 사람보다는 약간 느슨한 네트워크에서 도움을 받을 확률이 높다는 사실을 기억하면 좋겠다.

혹시 필요한 독자분들을 위해 부끄럽지만... (에구 이 글 쓰기 전에 번개처럼 몇 가지 더 추가하고 다듬고 난리를 쳤다) B급 프로그래머의 링크드인 주소를 공유해드린다. 채울 건 대충 다 채웠으므로 어떤 구성 요소가 있는지 확인 차원에서 귀엽게 봐주시면 감사하겠다. 그러면 여러분들도 모두 링크드인 시민으로 즐거운 SNS 생활하시기 기원하며 뽐뿌질은 여기까지.

뱀다리: 이력서를 멋지게 관리하고 싶은 개인 뿐만 아니라, 회사 역시 링크드인을 활용해 회사의 가치를 높일 수 있기 때문에 만일 이 글을 읽는 애독자분들 중에서 애사심이 크신 분들께서는 지금 당장 링크드인에 로그인해 회사가 등록되어 있는지 확인하고, 그렇지 않다면 회사 HR 팀을 졸라서 링크드인에 회사 프로필 등을 등록하도록 요청하면 좋겠다.

EOB

토요일, 3월 31, 2012

[일상다반사] 새로 합류한 회사 소개...

어쩌다보니 B급 프로그래머가 새로 합류한 회사에 대해 아직 소개한 적이 없었다(라고 쓰고 '홈 페이지' 구축이 좀 늦어져서...라고 읽는다. ㅋㅋ). 며칠 전에 가개통을 한 상태지만, 오늘 DNS를 변경해 실제로 홈 페이지를 개통한(아직 공사 중인 곳이 많아 이렇게 알려드리기가 조금 부끄럽긴 하다) 기념으로 이노디에스(INNODS)를 소개하겠다. 아 여기서, 한 가지 주의할 사항이 있다. 바로 회사 이름과 동일한 이름으로 파일 전송 컴포넌트 소프트웨어를 다른 회사에서 출시했기 때문에 조금 혼란스러울지도 모르겠는데, 사명으로서 인지도를 높이기 위해 앞으로 열심히 노력할 계획이다.

간략하게 이노디에스에 대한 소개를 하자면, (클라우드 포함) 고성능/고가용성 시스템과 차량용 임베디드 시스템을 개발하는 회사다. 신생(이라고 쓰고 신장 개업이라고 읽자) 회사라 아직 솔루션이나 패키지 형태로 된 제품을 본격적으로 소개하기는 조금 이른 감은 있지만, 올해 안으로 뭔가 흥미로운 제품을 여러분들께 선보일 수 있지 않을까 강하게 희망하는 중이다. 기술 회사라는 특성에 맞춰 홈 페이지를 구축할 때도 최대한 도움이 되는 내용을 많이 제공할 수 있도록 워드프레스를 기반으로 만들었는데, 스마트카, 클라우드, 오픈소스 등을 다루는 기술 블로그를 중심으로 여러분들을 찾아뵙겠다.

가장 최근에 올린 [스마트카] CAN 표준이 차량에만 쓰일까요?를 읽어보시면 이 기술 블로그의 성격을 눈치챌 수 있지 않을까 싶다. 앞으로 '컴퓨터 vs 책' 블로그에서는 기술적인 내용을 줄이고(하긴 요즘은 계속 '책'만 줄기차게 다루고 있긴 하다. 낄낄. 경영/경제 블로그로서 여러분들을 계속해서 찾아 뵙겠다.), 이노디에스 기술 블로그에서 유익하면서도 흥미로운 여러 기술 관련 블로그 포스트를 올려드릴 계획이므로 많은 성원 부탁드리겠다.

뱀다리) 애독자 여러분들께 늘 감사드리며, eXtreMe TRACKING 기준으로 30만명 돌파가 머지 않았기에(그냥 평상시처럼 방문해주시면 4월 말이면 가능할 것으로 보인다) 조만간 재미있는 이벤트(!)를 약속드린다.

EOB

일요일, 3월 25, 2012

[독서광] Nginx HTTP Server

오늘은 간만에 기술 서적 하나 소개해보자. 부제가 '아파치를 대체할 강력한 차세대 HTTP 서버 엔진엑스'라고 길게 붙어있는 'Nginx HTTP Server'는 최근에 인터넷에서 급속도로 인기를 얻고 있는(심지어 아파치 2.4에서도 다분히 견재하기 시작한) 엔진 엑스를 설명하는 책이다. IT 기술 분야에 종사하시는 분들이라면 한두번 정도 이야기를 들어보셨겠지만 Nginx는 전세계 도메인 중 12.2%(22.2M) 정도를 호스팅하는 인터넷을 지탱하는 오픈 소스 소프트웨어라고 보면 틀림없다. 물론 LAMP가 절대적인 우위를 점하는 한국 상황에서야 아파치의 아성이 절대적이지만 고성능 웹 서버를 구축하려면 분들께서는 반드시 엔진엑스에 대한 내용을 숙지하고 넘어갈 필요가 있다.

엔진엑스의 설계 사상은 복잡한 기능을 줄이는 대신 10k(동접 만 명)를 목표로 최대한 많은 사용자를 지원하려는 데 있다. 500,000 Request/sec - Modern HTTP Servers Are Fast라는 글을 읽어보면 알겠지만, Nginx를 사용할 경우 24G 램을 장착한 인텔 핵사 코어 제온 서버에서 정적 파일을 서비스할 때 커넥션 1000개로 초당 500,000건을 서비스하는 성능이 나온다. latency는 1.5ms 정도라고 하니까 사실상 번개처럼 페이지를 날리는 셈이다. 말이 초당 50만건이지, 하드웨어 성능을 고려하더라도 인상적인 결과를 보여준다(물론 어디까지나 정적 HTML 파일을 대상으로 하는 벤치마크니까 현실에서 이런 성능이 완벽하게 나오기를 기대하지는 마시라. 낄낄). 아파치와는 달리 엔진엑스의 구성 파일은 아주 단순해서 일반적인 상황이라면 스무 줄을 넘기지 않으며, 문제 해결이나 튜닝 과정 역시 제법 단순하다. 물론 단순함을 위해 복잡성을 버렸기에 아파치에서 가능한 모든 작업을 엔진엑스에서도 지원하리라고 생각하면 오산이다. 엔진엑스는 동적인 모듈 추가도 불가능하고(오직 컴파일 시점에서만! 프로그래머 천국이다. ㅋ), 엄청나게 다양한 기능을 제공하는 모듈도 부족하며, 엄청나게 강력한 환경 설정도 불가능하다. PHP 연동 역시 FastCGI를 사용하도록 PHP 엔진을 패치해야 하므로 기존 LAMP에 푹 빠진 개발자분들의 강력한 저항을 불러일으킬 가능성도 높다. 하지만 아주 뛰어난 리버스 프록시로 동작하는 기능, 정적 파일 서비스 성능, 마스터-작업자라는 프로세스 구조(아파치처럼 HTTP 요청을 받아들이는 과정에서 느려터지는 바람에 사람 애간장을 태우지는 않는다 ㅋㅋ) 등은 요구 사항만 맞다면 엄청나게 성능을 높여주는 위력을 발휘한다.

뭐 어쩌다보니 거의 엔진엑스 자랑질 모드로 삼천포행 티켓을 끊은 느낌인데, 이 책은 엔진엑스를 사용하기 위한 설치부터 기본 환경 설정을 시작으로 개별 모듈 소개와 모듈별 환경 설정, FastCGI를 사용한 PHP/파이썬 연동, 리버시 프록시 기능을 활용한 아파치와 병행 사용, 아파치로부터 엔진엑스로 이전하는 방안을 차례로 다룬다. 'Nginx HTTP Server'는 사실상 엔진엑스를 다루는 첫 책이므로 다른 대안은 없어 보이며(물론 이 책 이외에도 쿡북이 원서로 나와있지만 어디까지나 단편적인 기법 소개일테니...), 막 시작하는 분들께서 짧은 호흡으로 전반적인 구조와 모듈 기능을 훑고 지나가기에는 부족함이 없으리라는 생각이다. 물론 환경 설정 중심으로 책이 구성되다 보니까 실제 활용 사례 연구와 응용 방안이 부족하다는 느낌이 들긴 하지만, 아파치 세상에서 갈고 닦은 실력이 있는 독자라면 어렵지 않게 엔진엑스 플랫폼에서도 자신의 지식을 응용할테니 환경 설정 중심의 설명이 아주 고약하지만은 않다는 생각이다. 아파치에 익숙하지 않은 독자라도 단계별 설명에 따라 단순한 초기 설정을 토대로 필요한 설정을 하나씩 넣었다 뺐다 하면서 테스트하면 될 것 같다. 개인적으로는 아파치 쪽과 비교 설명하는 8장이 가장 실용적이고 실질적인 정보를 많이 제공하고 있다는 생각이다(앞 부분 읽다가 환경 설정에 지쳐 책을 덮어버리지는 말기 바란다).

이 책의 번역 상태는 상당히 좋으며(번역하신 분이 B급 프로그래머 보다 연배가 높다는 이야기를 듣고서 화들짝 놀랐다), 자습서처럼 읽고 나서 참조 매뉴얼처럼 보면 되기 때문에 책 한 권으로 입문서부터 참고서까지 모두 해결할 수 있다는 장점도 언급해드린다. 복잡하고 느린 아파치에 질린 개발자 분들이라면 슬쩍 곁눈질을 하리라는 생각을 하며 오늘 뽐뿌질은 여기까지!

EOB

토요일, 3월 17, 2012

[독서광] 당근과 채찍

계속 어려운 부의 기원만 소개하다보니 독자 여러분들께서 힘들어하시는 듯 보여(이런 의미에서 중간에 노트북 뽐뿌질은 아주 시의적절했다.), 오늘은 잠깐 다른 책을 하나 소개하고 넘어가겠다. 제목만 봐도 읽고 싶어지는 '당근과 채찍'이다. 하지만 책 표지에는 '2009 넛지에 이어 전 세계가 주목한 행동 경제학의 실천편!'이라고 적혀 있는데, 뭐 시간 아까운 애독자 여러분을 위해 결론부터 정리하자면... 과장 광고다. 앞으로 표지에 과장 광고하는 출판사들은 주의 깊게 관찰해서 블랙리스트에 올려놓을 테다. 낄낄...

이 책의 결론을 아주 간단하게 요약하자면 다음과 같다.

스스로에게 약속을 하고 나서 이를 지키기가 너무 어려우므로, 스틱K닷컴에서 제공하는 서비스를 이용해 약속을 지키지 못하고 실패할 경우 걸었던(자기가 싫어하는 단체나 개인에게 기부하기로 되어있더) 돈을 빼앗기도록 상황을 만들어 자발(?)적으로 약속을 이행해 행복해진다.

놀랍게도 이게 전부다. 사촌이 논을 사면 배가 아프듯 자기가 싫어하는 사람이나 단체에 돈을 줘야 한다는 사실 자체가 어마어마한 구속력을 발휘한다는 사실은 뭐 굳이 거창한 행동 경제학이니 심리학이니 하는 이론을 끄집어 내지 않더라도 충분히 이해가 간다. 따라서 이 책의 분량이 360페이지라는 사실을 감안할 때, 내용이 너무 지루하고 중복되고 재미가 없다는 치명적인 결함은 불보듯 뻔하다. 넛지가 위에서 사람들을 유리한 쪽으로 이끌기 위한 설계한 하향식(위로부터 개입) 제도라면 이 책은 동일한 목적으로 설계한 상향식(아래로부터 개입) 제도를 설명하고 있는데, 넛지와 비교하기에는 풀어낼 소재도 작고 재미있는 이야기거리도 작다는 원천적인 문제를 해결하는 데 그리 성공을 거두지 못했다는 생각이다(불어난 살을 빼고 나쁜 습관을 고치는 지루한 개인의 경험을 듣고 있는 자체가 일종의 고문이다). 따라서 애독자 여러분들께 이 책은 추천하지 않는다.

그래도 본문 중 생각나는 문구는 몇 가지 정리해드리겠다. 정리하고 봐도 크게 재미있는 이야기는 없네? T_T

낭만적인 사람이 좋은 일을 하려다 실패하면 사람들은 그에게 훈장을 준다. 실용주의자가 성공하면 사람들은 그에게 저주를 퍼붓는다. - 스티븐 킹, <금연주식회사> 중에서
간단하게 말하겠다는 사람치고 정말 그렇게 하는 사람은 거의 없다. 회의에서 누군가가 짧게 끝내겠다고 하면 보나마나 끝없이 말이 이어진다.
주택 담보 대출 계약은 전형적인 약속 실천 도구다. 매월 대출금을 갚지 못하면 집에서 쫓겨난다.
이미 스탬프가 2개 찍힌 12개짜리 쿠폰을 받은 고객들이 무료 커피를 얻는데 걸리는 시간은 10개짜리 쿠폰을 사용한 고객들의 경우보다 20퍼센트 정도 짧았다.
많은 사람들이 돈에 대해 거짓말하는 것을 힘들어한다.
효과적인 자기 통제 전략을 사용할 줄 아는 아이들이 인생 초기 단계에서부터 뚜렷한 장점을 지니게 된다.
EOB

토요일, 3월 10, 2012

[끝없는 뽐뿌질] 레노버 ideapad B570(셀러론 B800)

이번에 어떻게 하다보니 노트북을 하나 구매하게 되어 사용기를 간략하게 정리해본다. 현 시점(2012년 3월 초)에서 가격 대비 성능이 가장 좋다고 생각하는(아니 추정하는) 녀석을 골라 봤는데, 뽐뿌질에 휩쓸리지 않도록 하기 위해 이 노트북을 사면 안 되는 분들을 먼저 정리하고 넘어가겠다. 다음과 같은 목적이 있는 분들은 절대 이 노트북을 사면 안 된다.

  • 이동성이 강하고 크기가 작은 노트북을 원하는 분들은 이 노트북 사면 안 된다. 큼직한 15인치다.
  • CPU intensive한 작업을 하시는 분들은 이 노트북 사면 안 된다. 셀러론 B800은 샌디브릿지 계열이긴 하지만 코어i5에는 미치지 못한다. 게다가 가상화 명령어(Vx-T는 들어있고 Vx-D가 빠져 있음. 지적해주신 익명님께 감사)가 빠져 있으므로 가상화 관련 소프트웨어 구동 과정에서 애로 사항이 생길지도 모르겠다.
  • 3차원 오락을 즐기실 분들은 이 노트북 사면 안 된다. 내장 그래픽으로 3차원 돌리면 어떤 일이 벌어질지 다들 알고 계실거다.
  • 베터리 수명을 중요하게 생각하실 분들은 절대로 이 노트북을 사면 안 된다. 무게는 2kg 초반이라서 15인치 치고는 상당히 가볍지만 6셀 배터리 수명이... CPU 전력 소모와 맞물려 스펙상 3시간이 채 안 될거다! (버럭!)
  • 화면 해상도가 높아야 성이 풀리시는 분들은 이 노트북 사면 안 된다. 1366x768이라 15인치에서 시원하게 보이긴 한데 HD급 영화를 제대로 재생하려면 화면이 좁아 터져 특수 효과가 바깥으로 나올 기세다. 이런 분들은 그냥 신형 아이패드를 사시라.
  • 터치 패드가 강력해야 한다면 이 노트북 사면 안 된다. 그냥 맥북 에어를 사시라.

자 여기까지 이야기하면 이 노트북 살 마음이 뚝 떨어질 것이다(작전 성공). 하지만 무게 2.2kg에 HDD 500G에 윈도우 7 홈 에디션(64비트!)정품이 설치되어 있고 VGA 포트 이외에 HDMI 포트도 넉넉하게 붙어있고 블루투스 2.1에 USB 포트 4개에 4-in-1 메모리 카드에 11n 무선랜까지 다 지원하는 녀석을 40만원에 살 수 있다면(g**shop 특판가(쿠폰)에 신용카드 할인까지 붙여 구입했다. 지금은 가격이 원상복구 된 듯) 이야기가 완전히 달라진다. RAM이 2G지만, 요즘 RAM 가격 다들 알고 계시죠? ㅋㅋ 큰 부담 없이 돌려보고 좀 느리다 싶으면 2G 모듈 하나 사서 확장하면 된다(B570 램 슬롯이 2개인데, 2G짜리 램 하나만 슬롯에 꽃혀 있으므로 메모리 확장할 때 아주 편하다). 원래 B5x0이 에센셜 시리즈로 나올 때 인텔 코어 i5를 장착하고 나왔는데, 저가 시장을 노리기 위해 B800이라는 CPU를 넣어 B570이라는 모델을 만들었다고 보면 된다. 인텔 코어 i5 장착 모델도 판매 중인데, 역시 가격은 착한 듯이 보인다. 또 다른 외전으로 AMD 자카테 듀얼이 탑재된 575 모델도 있는데(이 모델은 그래픽이 강할 듯), 나머지 사양은 비슷한데 운영체제가 언번들되어 있다.

자, 그러면 사용 후기를 한번 정리해보자. 15인치라는 크기에 비해 무게는 2.2kg으로 만족스럽다(물론 배터리 수명 3시간이라는 압박이 엄청나게 다가올테다.). 전원 어댑터가 보통 벽돌만한 녀석이 따라오지만, 이 모델에는 한 손에 쏙 들어갈 길고 얇은 전원 어댑터가 따라오므로 더욱 만족스럽다. 우선 부팅 속력은 그리 빠르지 않다. Rapid Boost 어쩌구 하는데, 중간 중간 calibration을 해야하는 번거로움을 무릅쓰고서도 30초 이상 부팅 시간이 걸린다. 40초 넘어가면 calibration해라는 귀찮은 문구가 나오는데 그 때마다 맥북 에어가 생각난다. T_T 다음으로 성능인데 윈도우 7 환경에서 웹 브라우징, 동영상 감상, 워드프로세싱/스프레드시트 작업에는 특별한 애로 사항을 느끼지 못할 것이다. 하지만 묵직한 게임 등을 하려면 분명히 문제 생길 것 같다는 느낌이 든다(ㅋㅋㅋ). 키보드는 15인치 넉넉한 공간을 활용해 키 간 거리를 떨어뜨리고 옆에는 10키까지 제공하므로 확실히 여유로움을 느낄 수 있다. 하지만 트랙패드 성능은 실망스럽고(또 다시 맥북 에어가 생각났다. T_T) 씽크패드 시리즈에 들어있는 빨간콩이 없어서 마우스 지참 필수라는 생각이 들었다. USB 포트는 좌우 적당히 잘 분산했기에 다른 노트북과 비교해 상당히 만족스러운 위치를 차지하고 있다. 웹캠을 잘 쓰지는 않지만 30만 화소라 더욱 쓸 일이 없어 보이기는 한다.

번들된 소프트웨어를 보니까 노턴 고스트의 번들 판인 원키 레스큐 시스템이 설치되어 있고 디스크가 C와 D로 파티션되어, D 영역에 운영체제 이미지를 만들어 넣을 수 있도록 되어 있다. 물론 D 파티션 영역이 상당히 작기 때문에(30G인가 그랬다), 운영체제 설치 후 필요한 프로그램을 설치하고 바로 원키 레스큐로 이미지를 뜨기 바란다(아주 간단하며 시간도 얼마 안 걸린다). 또한 놀랍게도 마이크로소프트 오피스 스타터가 들어있었다. 광고를 보는 답답함만 참을 수 있다면 가정에서 워드와 엑셀을 바로 사용할 수 있게 된다. 안티바이러스 프로그램도 설치되어 있었는데, 마이크로소프트에서 나온 녀석으로 바로 교체하는 편이 정신 건강에 이롭다는 생각이다(귀찮게 등록해야 하고 유효 기간도 있고 하니까...). 기타 번들로 DVD 라이터, 지문 인식 소프트웨어 등등이 들어있는데 그냥 쓰기에는 나쁘지 않아 보인다. 웹 브라우저는 IE9과 크롬(!)이 둘 다 기본으로 들어 있어 편하다.

이제 최종 정리해보자. B570 모델은 가격 대비 성능이 아주(!) 뛰어난 세컨드 노트북으로 사용 목적에만 맞다면 상위 노트북을 대신해 잘 굴려 먹을 수 있다는 생각이다. 하지만 뽐뿌질에 홀라당 넘어가지 않도록 위에 정리해놓은 경고 문구를 다시 한번 잘 읽어보고 필요에 따라 구입하시기 바란다.

EOB

토요일, 3월 03, 2012

[독서광] 부의 기원(2)

오늘은 부의 기원 2부 '복잡계 생태학'에 대해 독후감을 정리하려고 한다. 2부는 슈거스케이프라는 설탕 따먹기 게임을 설명하면서 시작한다. 오픈소스로도 나와 있는 이 간단한 게임은 설탕이 흩어져 있는 가상의 섬에 사람들이 난파될 경우 어떤 현상이 생기는지를 시물레이션한다. 초기에는 평등하더라도 시간이 지남에 따라 부익부 빈익빈이 생기는 현상을 물리적 환경, 유전, 우연, 행운, 출생 등 모든 것이 작용하면서 일어나는 파레토 법칙으로 설명한다. 여기서 핵심은 어떤 한 지점에서 조그만 차이(행운 또는 불행 등)가 엄청난 결과의 차이가 나는 길로 접어 들게 한다는 사실이다. 가난과 불평등을 이끄는 인과 관계는 "흔히 XXX 때문이다"라는 단순한 문구로 설명하기가 결코 녹녹하지 않다. 다시 말해, 가난은 착취하는 사람들 때문이라는 이론과 멍청하거나 게으르기 때문이라는 이론 모두 오답일 가능성이 높다는 사실을 이 책에서 강조하고 들어간다(그래서 이 책 가장 마지막 부분에서는 다시 한번 좌파와 우파의 대결에 대해 다룬다).

그리고 나서 머리 아픈 비선형적인 성질에 대해 설명을 시작한다. 비선형성은 초기 조건상에는 조그만 차이에 불과한 사건이 시간이 감에 따라 크게 확대되는 결과를 만들어내고, 경로에 의존(역사가 중요)하므로 예측이 아주 어려워진다. 경제는 이렇게 동태적인 시스템이자 비선형 시스템이지만 카오스가 아니라는 점(주의: 내가 한 말이 아니라 이 책에서 하는 말이다)이 우리를 괴롭힌다. 아예 무작위적이라면 사람들은 그냥 포기하고 말텐데, 분명히 뭔가 규칙이 있기 때문에 사람들은 주식 차트의 추세선도 보고 금 시세 변동 그래프도 보고 난리법썩을 떤다. 하지만 단기 예측은 가능하지만 장기 예측이 무척 어렵다는(기상 예보보다 못하다는...) 이유로 인해 어떤 패턴과 추세를 파악해 돈을 벌기란 결코 만만하지 않다.

여기까지 설명을 끝낸 다음에 행위자들이 개입하는 심리 게임으로 넘어간다. 스타트랙의 스폭이 아닌 평범한 사람들이 경제 활동을 하기 때문에 일어나는 여러 가지 흥미로운 현상을 설명한다. 공평성과 상호주의로 인한 의사 결정의 불합리성, 인간의 다양한 약점으로 인해 벌어지는 불합리성, 귀납적 패턴 인식 능력으로 인해 이야기를 좋아하는 성향(그래서 예측은 어렵지만 사건 설명은 쉽다)을 설명하면서 전통적인 경제학자들이 가정하는 완전 합리성에 대해 반기를 든다. 전통적인 경제학의 설명에 따르면 차익거래가 절대로 존재할 수 없는데(차익 거래가 존재한다는 사실이 밝혀지는 바로 그 순간 차익 거래가 사라지기 때문이다), 현실에서는 존재하는 모순에 대해 조금씩 납득이 가기 시작했다.

그리고 나서 행위자를 연결하는 네트워크에 대한 설명이 전개된다. 사회적 네트워크야 요즘 SNS로 대표되는 새로운 미디어로 인해 한결 관심이 높아지고 있는데, 사회적 네트워크가 개인에게 중요할 뿐만 아니라 거대한 조직의 기능과 관련해서도 매우 중요하다는 사실을 강조한다. 인간의 경제 조직이 시간이 지남에 따라 규모가 커지고 혁신이 일어나는 이유를 조직 내부에 가능한 상태의 수가 많이 존재하기 때문이라고 설명한다. 하지만 규모가 작은 회사가 종종 규모가 큰 조직을 압도하는 이유는 무엇일까? 조직이 복잡해질 경우 네트워크를 연결하는 상호 의존의 수가 늘어나야 하기 때문에 이런 부하를 줄이기 위해 등장한 관료주의가 역효과를 내기 때문이라고 설명한다. 상호 의존의 수가 늘어나면 네트워크 한 부분에서는 긍정적이던 변화가 단계적 반응을 거쳐 다른 곳에서는 부정적인 변화를 야기할 확률이 노드 수에 따라 기하 급수적으로 커진다는 문제가 발생한다. 많은 기업들이 관료주의를 없애려고 필사적으로 노력하지만 네트워크에서 자신들의 담당 영역만 최적화하려고 드는 순간 다시 관료주의가 고개를 내민다. 무엇하나 변화시키는 데 필요한 상호 작용이 많으면 많을수록 충돌과 제약의 확률이 더 높아지며, 결국 "아니오"라는 보신주의가 판을 치게 되어버린다. 조직의 적응성을 높이고 상충하는 제약 조건을 피하려면 조직을 쪼개고(스핀오프) 네트워크 안의 네트워크로 구조화하기 위한 계층적 구조로 바꿔야 한다고 카우프만이 주장하는 내용이 나오는데, (솔직히 까놓고 말해) 이 책을 읽기 전까지 계층적 구조가 관료주의의 산물이라고 생각했었다. 하지만 계층적 구조는 상호 의존성을 낮추고 조직 전체가 자리잡기 전에 조직이 더 큰 규모가 될 수 있게 만들어주기에 관료주의 때문에 발생하는 문제를 해결하기 위한 고안물이라고 보는 편이 정확하다. 마지막으로 예측할 수 없는 행동, 평평한 계층 조직, 매우 밀도 높은 상호 연결을 혼합할 경우 무슨 일을 벌여도 성공하기 어렵다는, 직관에 반하는 통찰력을 설명한다. 많은 사람들이 조직이 너무 질서 잡힌 체제에 깊이 박혀버리면 환경에 제대로 적응하지 못하는 공룡처럼 되어버리기에 혁신을 추가적으로 자극하려면 카오스적인 요소를 조직에 침투시켜야 한다고 말하는데... 그러면 100% 망한다. T_T 요약 정리해주자면... 관료주의의 현상과 해악과 해법에 대해 궁금한 독자라면 꼭 7장을 읽어보기 바란다.

여기까지 설명을 풀어놓고 나서... 이제 본 게임인 창발성에 대해 설명이 전개된다. 복합 적응 시스템들에게 공통적으로 나타나는 진동, 단속 균형, 거듭제곱의 법칙을 설명하면서 경제의 사이클(불황과 호황이 오가는), 본질적으로 기술이 모듈적인 이유(모듈의 조립이 아키텍처이며, 모듈의 혁신이 일어나면 새로운 아키텍처가 탄생해 엄청난 파급 효과를 불러일으킨다), 지진과 주식 시장의 유사성(랜덤워크가 아니라 거듭 제곱 법칙에 따른 분포를 보인다. 따라서 랜덤워크를 사용하는 전통 경제학으로는 블랙스완으로 대변되는 주식 시장의 엄청난 변동성을 설명하지 못한다)을 설명한다.

마지막으로 디자이너 없는 디자인을 가능하게 만드는 주인공인 진화에 대해 설명한다. 디자인된 것과 그렇지 않은 것을 구분하는 기준은 바로 목적에 대한 적합성과 복잡성의 결합이다. 따라서 디자인된 것들은 엔트로피가 낮다(이런 엔트로피 문제 때문에 폐차장에 태풍이 불어쳐서 부품이 이리저리 결합되어 보잉 747이 나올 확률은... 사실상 0%다). 그렇다면 생물이 되었든 사회 구조가 되었든 제품이 되었든 다양한 디자인 공간에서 특정 설계 안을 선호하게 만들어 이 부분을 집중적으로 개선하게 만드는 보이지 않는 손은 누구인가? 바로 진화다. 진화는 기질 중립적인 하나의 알고리즘이며, 디자인에 대한 정보를 토대로 정해진 대로 일련의 과정을 거쳐 정보를 처리한다. 진화는 많은 디자인들을 시험해보면서 어떻게 작동하는지 보고, 그 중 좋은 것은 더 많이 채택하고 그렇지 못한 것은 버리는 작업을 반복한다. 하지만 여기에는 예측, 계획, 합리성, 의도는 존재하지 않으며 기계적인 절차(알고리즘)만 존재할 뿐이다. 어떻게 기계적인 알고리즘만으로 디자인이 가능해질까? 높은 정점을 향해 가는 적합도 지형을 탐색하는 예를 들어 설명을 전개한다. 가장 먼저 임의의 방향으로 한걸음 움직여 기존 위치보다 낮을 경우에만 다시 다른 지형을 탐색하고 높을 경우 되돌아가지 않고 올라가는 적응적 보행 기법을 설명한다. 하지만 이런 방식으로는 지역적인 최적화라는 덫에 걸려 에베레스트 등정은 커녕 동네 뒷동산에 갇혀버리기 딱 쉽다. 이런 문제점을 해결하기 위해 랜덤 점프(임의 거리 임의 방향으로 한번에 이동)라는 기법을 설명한다. 물론 랜덤 점프에는 무시무시한 단점(계곡에 빠지면 죽는다)이 있긴 하지만, 일단 제대로만 점프하면 지역적인 최적화에서 가뿐하게 벗어날 수 있게 된다. 현실에서는 적응적 보행 기법에 랜덤 점프를 섞어서 사용하는 방법을 택한다. 여러 명을 풀어 일부는 적응적 보행 기법으로 탐색을 하도록 만들고, 종종 배포 좋은 몇 명을 뽑아 베팅(랜덤 점프)을 하게 만들면 국지적인 위험에 빠질 위험도 줄이고 무모한 시도로 인한 계곡 점프도 막을 수 있다. 여기까지 설명하면 바로 진화가 떠오를 것이다. 돌연변이가 위험하긴 하지만... 만의 하나라도 베팅에 성공하면 대박이 터지는 셈이니까. 진화는 도박꾼이지만 가능성을 매우 잘 활용하는 훌륭한 도박군으로 볼 수 있다. 자 그렇다면 경제와 진화를 어떻게 연결할까? 진화가 부를 창출하는 방법에 대해서는 다음에 소개하기로 하겠다. 설계에 대해 관심이 많은 독자라면 9장을 반드시 짚고 넘어가기 바란다.

EOB

토요일, 2월 25, 2012

[독서광] 부의 기원(1)

속독법을 배우지 않았음에도 불구하고 상당히 책을 빨리 읽는 편이라, 어지간한 책은 일주일이면 독파가 가능한데, 오늘 소개하는 '부의 기원'은 구입해놓고 완독할 때까지 몇 달이 걸리고 말았다. 책이 두꺼운(본문만 700페이지!) 관계로 집에서만 틈틈이 읽어서 그런 이유도 있지만, 들고 다뎠더라도 책과 함께 아마 상당한 시간을 보냈으리라는 생각이다. 읽으면서 생각해볼만한 내용도 많았고 고민할 내용도 많았기에, 이 책은 몇 번에 걸쳐 독후감을 써볼 생각이다(지금까지 블로그를 쓰면서 이런 경우는 없었는데, 앞으로도 이런 경우는 드물겠지?). 다른 사람들은 이 책을 다 읽고서 어떤 생각을 했는지 구글을 뒤져보았지만, 완독하신 분이 드문지 아니면 이 주제에 대해 관심이 없는지 그도 아니면 이 책의 내용에 감동 먹고 독후감 쓰기를 포기했는지 의외로 특별한 내용이 없었다. 지금부터 슬슬 이야기를 풀어놓겠다.

먼저 이 책의 성격을 규정해보자. 이 책은 복잡계 경제학 이론을 토대로 이 세상이 돌아가는 원리에 대해 설명하는 책이다. 서문에서 저자가 이야기하듯, '당신이 무엇을 해야 하는지를 알려주는 책이 아니라 어떻게 생각해야 하는지 알려주는 책, 다시 말해 생각하는 방법을 바꾸는 책'이다. 따라서 현실에 바로 적용 가능한 10단계 프로그램이 담겨 있거나 XXX가 알아야 할 100가지 규칙을 설명하는 책은 절대로 아니다. 바로 이 점 때문에 일반적인 독자들이 이 책을 호기심에서 구입했다가(자그마치 제목이 '부의 기원'이니... 돈 버는 역사와 방법을 소개하는 책이라고 착각을 하기가 딱 쉽다) 바로 떡실신하고 gg치는 상황이 벌어졌으리라 예측이 가능하다(낄낄). 이 책은 복잡계, 행동 경제학, 네트워크 이론, 진화 이론을 바탕으로 시장, 정부, 기업, 사회에 대한 명쾌한 설명을 전개하고 있으므로 경영/경제에 관심이 많은 분들이라면 _반드시_ 읽어봐야할 필독서라 보면 틀림없다.

책은 크게 4부로 나뉘어져 있으며, 비교적 짧은 1부에서는 '패러다임의 이동'이라는 제목으로 부가 어디서 오는지, 전통 경제학에서는 부의 기원을 어떻게 설명하는지, 이런 전통 경제학의 한계가 무엇인지를 다룬다. 2부 '복잡계 경제학'에서는 슈가스케이프라는 설탕 따먹기 게임을 예로 들면서 부익부 빈익빈이 일어나는 사회적 진화를 설명하고 나서 동태성, 행동 심리학, 네트워크, 창발성, 진화 이론을 토대로 기존 고전적인 경제학에서 벗어나 현상을 좀더 제대로 설명할 수 있는 새로운 경제학 연구 성과를 소개한다. 3부 '진화는 어떻게 부를 창출하는가'에서는 디자인 공간이라는 경제의 진화 모델을 제시한 다음에 물리적 기술, 사회적 기술, 경제적 진화라는 3부분으로 경제적인 발전을 설명하고, 최종적으로 엔트로피와 불가역성을 토대로 기존의 균형잡힌 경제관에서 벗어나 부에 대해 새로운 정의를 내린다. 4부 '기업과 사회에 대한 의미'에서는 진화를 위한 전략, 사고하는 사람들의 조직, 기대의 생태계인 금융, 요즘같이 왼쪽이니 오른쪽이니 시끌법적한 상황에 딱 어룰리는 마무리인 정치와 정책을 두고 벌어지는 좌우 대결의 종말을 다룬다.

자, 그러면 오늘은 1부에서 나오는 아름다운 말을 정리해보자. 1부가 수요와 공급의 균형, 한계 효용의 법칙, 일몰일가 법칙으로 대표되는 전통적인 경제학이 주장하는 이론의 한계에 대해 설명한다는 사실을 알고 읽어보면 더욱 감이 잘 올 것이다.

이 책에서 부는, 간단하지만 매우 강력한 3단계 공식, 즉 차별화, 선택, 증식이라는 진화의 공식에서 나온 산물이라고 주장할 것이다.
경제 시스템과 생물학적 시스템 모두 보다 일반적이고 보편적인 진화 시스템의 부분 시스템이라 보면 그것은 우리에게 많은 것을 말해줄 수 있다.
진화철학자 대니얼 데닛은 진화에 대해 '디자이너 없는 디자인'을 만드는 다목적용 알고리즘이라고 말한다.
진화는 시행착오를 통해 디자인을 창조한다.
진화는 가능성이라는 건초 더미에서 좋은 디자인이라는 바늘 몇 개를 발견하는 그런 알고리즘이다.
합리성과 창의력은 경제에서 진화 알고리즘의 작동에 영양분을 주고 그 행태에 영향을 미치지만 그 자체를 대체하는 것은 아니다.
경제와 같은 복잡한 시스템에서의 예측은 매우 단기적인 경우를 제외하고는 거의 불가능하다.
역사적으로 보면 경제학자들이 씨름을 해왔던 가장 근본적인 의문은 두 가지다. 하나는 부는 어떻게 창출되는가, 다른 하나는 이 부가 어떻게 배분되는가 하는 것이다. 스미스는 '국부론'에서 이 두가지 문제를 다 다뤘다.
생산에서의 한계 수익 체감과 소비에서의 한계 효용 체감을 결합하게 되면 시장은 자연스럽게 가격이라는 균형 메커니즘을 갖게 된다. 가격은 생산자와 소비자들이 공유하는 가장 중요한 정보다.
어떤 상품과 효용 구조, 그리고 생산 과정이 모두 주어졌다고 가정할 때 가격은 정확히 얼마인가? 우리는 이 가격을 계산(또는 예측)할 수 있는가?
슘페터는 경제 성장은 단순히 이미 생산되고 있는 제품의 양을 증가시키는 차원의 문제가 아니라는 점을 관찰해 냈다. 즉 혁신의 역할이 있다는 얘기다.
국가를 부유하게 하는 것은 그 나라가 얼마나 많은 자본을 가지고 있느냐가 아니라 그 자본이 얼마나 생산적이냐에 달렸다는 얘기다. 생산성을 높이는 핵심은 기술이다.
대부분의 전통 경제 모델은 실제로 시간을 고려하지 않는다. 대신 경제는 하나의 균형에서 다른 균형으로 순식간에 이동하며, 균형 간의 이행 조건은 중요하지 않다고 간단히 가정해버린다. ... 그러나 시간은 현실 세계의 경제 현상에서는 의심할 여지도 없이 중요한 변수다.
대부분의 전통 경제학 모델들은 비현실적인 가정에서 출발해 수학적 불가피성에 따라 어떤 결론에 도달했다면 그 역시 비현실적인 결론이 되기 십상이라는 얘기다.
현실 세계는 '매우 복잡한 상황에 직면해 있는 정말 단순한 사람들'로 표현하는 것이 정확할텐데도 전통 경제학은 '믿을 수 없을 정도로 단순한 상황에 너무나 머리 좋은 사람들'로 모델화하고 있다는 것이다.
정보가 그 획득에 비용이 들고, 불완전하며, 급속히 변화하는 세계에서는 우리의 뇌가 '완전환 최적'보다는 '충분히 좋은' 것을 빨리 고르는 의사 결정 쪽에 맞춰질 것이라는 주장이 더 설득력 있다.
현실 시장은 공급과 수요가 같아지는 상황이 결코 있지 않으며, 시장은 거의 균형에 이르지 못한다는 사실을 알 수 있다. 실제로 많은 시장들은 균형보다는 불균형이라는 가정을 중심으로 형성되고 있다. 이런 시장에는 재고, 주문 잔고, 여유 생산 능력, 불균형을 완화시키는 데 도움을 주는 중개자들이 존재한다.
심지어 주식 시장에서 재고의 존재는 휘발성의 변동성이 매우 높은 주식 시장을 설명하는 데 도움을 준다.
주식 시장이 더 이상 랜덤워크가 아니라는 사실은 시장이 크게 움직일 때, 다시 말하면 시장이 균형에서 가장 멀리 떨어져 있을 때 통계적으로 가장 분명하다. 주식 가격 데이터에는 확실히 동적인 구조와 정보가 있다.
사실상 시스템이 결국 균형에 이른다면 그 시스템은 안정적이지 못하고 죽은 것이나 마찬가지다.

다음 번에는 2부에서 주장하는 바와 느낀 바에 대해 요약하고, 여기서 나오는 몇 가지 흥미로운 내용을 정리해보겠다.

EOB

토요일, 2월 18, 2012

[독서광] 프리젠테이션 마스터

프리젠테이션 젠을 출간한 에이콘 출판사에서 이번에 새로 프리젠테이션 관련 서적이 나왔다고 한 권 보내줬기에, 독후감을 정리해보았다. 오늘 소개할 책은 '프리젠테이션 마스터'라는 책인데, 현란한 프리젠테이션에 앞서 기본기가 되는 의사 소통 기술을 80가지 사례를 들어 잘 설명하고 있다. IT 회사의 중역들이 발표하는 내용을 정리했다면 따분했을 텐데, 이 책 저자인 (할아버지뻘...) 와이즈먼은 현명하게도 정치, 경제, 사회, 문화의 여러 분야에서 얻은 사례와 교훈을 정리해준다. 즉, 의사 소통이라는 보편적인 기술 위에서 프리젠테이션을 강력하게 밀고 나가는 방법을 소개하므로 이 책을 잘 읽고 응용하면 기존 프리젠테이션 책과는 차원이 다른 효과를 얻을 수 있겠다. 바꿔말하면 당장 프리젠테이션에 적용 가능한 내용은 아니라는 말도 된다.

이 책은 스토리텔링, 슬라이드 디자인, 발표력, 질문과 답변 방법, 프리젠테이션 완성이라는 다섯 가지 범주를 놓고 각 범주에 어울리는 흥미로운 이야기를 풀어놓고 있다. 와이즈먼 스스로도 훌륭한 연사이기도 하므로, 소개하는 각 일화가 분량이 짧음에도 불구하고 아주 재미있다. 게다가 스스로 반성하고 생각할 거리도 많이 주므로 B급 관리자도 예전에 실수한 내용을 떠올리며 얼굴이 붉어지기도 했다. ㅋㅋ

그러면 오늘은 좋은 글을 그대로 따오는 대신, 이 책을 읽다가 배운(아니 깨달은) 몇 가지 교훈을 정리해보겠다.

  • 가장 설득력 있는 단어는 '여러분'이다. 이는 술자리든 발표장이든 공개 회의 석상이든 어디서든 통하는 단어다. 술자리에서 '나'라는 단어만 이야기하는 사람 곁에 가고 싶지 않지? 발표장이라고 다를까? '내'가 아니라 '상대방'에게 발표의 초점을 맞춰야 한다.
  • 발표 길이를 스스로 조정할 수 있다면? 아리송하면 무조건 짧게하라. 15분이면 족하다.
  • 확신을 주는 단어를 사용하라. '~를 자신합니다.', '~를 확신합니다.', '~를 기대합니다.' 스티브 잡스의 방법이다.
  • 발표자는 슬라이드가 아니라 바로 나다.
  • 영업을 뛸 때는 발표자료만 email로 내던지지지 말고 직접 만나서 의사소통하라.
  • 효과적인 파워포인트 활용법의 핵심은 찰나의 멈춤이다. 매트릭스 블릿 타임을 생각하자.
  • 빠르게 말하는 습관을 고치려면... 문장이 끝날 때마다 잠시 멈추면 된다. T_T
  • 눈맞춤을 하려면 눈높이와 각도가 맞아야 한다. 강연장이나 회의실에서 어떻게 동선을 탈지 미리 계산하자.
  • 업무상 중요한 발표를 할 때는 한치의 떨림도 없이 자신의 사업을 확신에 찬 태도로 이야기해야 한다. 이렇게 하려면 능숙해져야 한다.
  • 모든 프리젠테이션은 사람과 사람이 직접 나누는 대화로 만들어야 한다.
  • '음', '어'와 같은 무의한 삽입어는 절대로 금물. 중간에 잠시 멈추면 해결된다.
  • 여러 가지 질문이 나올 때는, 한 가지 질문에 먼저 대답하고 질문자에게 다시 한번 다른 질문을 정리해달라고 요청하자. 밑져야 본전인 훌륭한 전술이다.
  • '당신의 가장 큰 약점은 무엇인가요?'에 대한 대답은 '저의 약점은 ___ 입니다. 그러나 이를 해결하기 위해 저는 _____를 하고 있습니다.'다.
  • '왜 당신 회사 제품은 경쟁사 제품에 비해 더 비싼 가격을 받나요?'에 대한 대답은 '<중요한 제품 특징>이기 때문입니다. 저희 제품을 구매하시면 결과적으로 가격 대비 만족도를 크게 얻을 수 있습니다.'다.
  • 잘못된 추정에 따른 질문이 나올 경우 이를 아주 강력하게 부정해야 한다. 이런 상황에서는 무조건 '아니오', '아닙니다. 그렇지 않습니다.'라고 단호하게 말해야 한다.
  • 질문에 대해서는 최대한 짧게 대답해야 한다.
  • 연사를 보고 슬라이드를 읽도록 유도하기 위해(일부 나라를 제외한 대다수 사람들은 글을 왼쪽에서 오른쪽으로 읽는다) 발표를 할 때 항상 스크린을 좌측에 두고 청중을 바라봐야 한다. 이 부분은 정말 중요한데, 유감스럽지만 단상이 청중이 바라보는 쪽에서 오른쪽에 가 있는 경우를 너무나도 많이 목격했다.

결론: 명연사/명연설/명강의, 프리젠테이션 젠, slide:logy와 함께 발표를 많이 하시는 분이라면 이 책을 꼭 읽어보시기 바란다.

EOB

토요일, 2월 11, 2012

[독서광] 백트랙 5로 시작하는 무선 해킹

지난 번에 올린 [독서광] 공포의 해킹 툴 백트랙 4이 너무나도 인기가 좋아(좌측 순위를 봐라! 무려 3위를...) 백트랙 5 책을 읽고나서 독자 여러분을 위해 서평을 올리지 않을 수 없었다. 오늘 소개할 책은 '백트랙 5로 시작하는 무선 해킹'으로 지난번 백트랙 4 책에서 살짝 맛을 보여줬던 무선 네트워크 해킹에 집중하고 있다.

지난번 백트랙 4 서평에도 지나가는 말로 설명하고 넘어갔지만, (특히 자기 집이나 사무실이 아닌 외부에서) 무선 AP에 접속해 뭔가를 하는 행위는 사실상 클라이언트 종류(아이폰, 아이패드, 맥북에어 등등)나 암호화 종류와 유무에 상관없이 위험에 노출된다고 보면 틀림없다. 사람들이 착해서 다행이지(이럴 때는 선성설을 믿는다. T_T), 정말로 마음먹고 덤비면 사실상 무선 네트워크 보안에는 장사가 없다. 어느 정도 보안 지식이 있는 분들이 이 책을 읽다보면 정말 손발이 오그라 들면서 되도록 무선 AP 접속을 자제하고자 하는 욕구가 강하게 들지도 모르겠다. 맞아... 무선 AP는 필요악이였어. T_T

도대체 무슨 내용이 담겨 있기에 이리도 호들갑을 떠느냐구? 이 책은 백트랙 5 배포판과 저가 무선 랜 카드를 사용해 공개되거나 공개되지 않거나 암호화 되거나 암호화 되지 않은 AP들을 이리 뚫고 저리 뚫고, 클라이언트를 이리 속이고 저리 속이는 내용이 처음부터 끝까지 이어진다. 스크립트 키드용 책이라고 생각들지도 모르겠지만, 컨퍼런스에서도 발표한 저자의 독창적인(?) 공격 방법을 읽다보면 왜/어째서 이런 보안 취약점이 벌어지는지 뒷 배경도 어느 정도 이해할 수 있다. 다행스럽게도 복잡한 암호 알고리즘이나 수식은 나오지 않으므로, 이해에 큰 어려움은 없으리라는 생각이다. 백트랙 4 책과 마찬기지로 보안과 관련해 이론적인 내용이 궁금하면 다른 책과 자료를 찾아보기 바란다.

자 그렇다면 친절하게 이 책에서 설명하는 내용을 문답식으로 정리해봤다.

  • Q: SSID를 숨겨 놓으면 크래커들이 공유기를 못 찾으니 안전하지 않을까? A: 30초면 찾는다. ㅋㅋ
  • Q: 느려 터지게 무신 암호화야! 공개로 두는 대신 MAC 주소로 보안을 걸어 놓아도 안전하지 않을까? A: 1분이면 MAC 주소 파악한 다음에 MAC 주소를 위조해서 이미 접속이 끝난 상태가 된다.
  • Q: WEP 정도만 써도 일반 해커가 뚫기는 어렵지 않나? A: 10 ~ 15분이면 WEP 암호 자체를 따 낼 수 있다. 물론 어떤 악조건하에서도.
  • Q: WPA2/PSK와 같은 초강력(?) 암호화 기법을 사용하면 절대 못 뚫지 않나? A: 충분한 사전을 확보하고 사회공학적인 정보까지 여기에 추가하면 끝장이다. SSID 이름을 알면 프리컴파일 기법으로 현장에서 뚫을 수 있도록 시간 단축까지 가능하다. 심지어 무선 AP를 꺼놓거나 물리적으로 떨어진 장소에서라도 하니팟을 사용해 클라이언트 접속을 유도해 암호를 유추할 수도 있다. (허걱)
  • Q: DoS 공격은 치기 어린 20대 청년들이 룸싸롱에서 술마시다 의기가 투합해야지만 가능한거지? 따라서 물리적으로 분산된 무선 AP는 DoS 공격에서 안전하겠네? A: 인증 해제, 결합 해제 공격으로 20대가 아니라 70대 할아버지 할머니도 강아지가 짖어대는 옆집 AP를 간단하게 먹통으로 만들 수 있다.
  • Q: 물리적인 AP 복제는 불가능하니까 안심할 수 있지 않나? A: 소프트웨어적으로 AP를 복제해놓고 인증 해제로 재접속을 유도하면 중간자 공격까지 가능하다.
  • Q: 공유기 관리자 암호는 못 풀지? A: 절대 안 그렇다는 생각이 슬슬 들기 시작하지?
  • Q: 아니 이렇게 해도 문제 저렇게 해도 문제면 아예 AP를 쓰지 마라는 이야기냐? A: 자나깨나 불조심. 늘 조심하고 의심하면서 잘 쓰셔.

자, 이 정도면 백트랙 5가 얼마나 무시무시한 도구인지 짐작이 가능할 것이다. 불장난에 각별히 조심하고(다시 한번 말하지만 세상은 넓고 고수는 많다.) 자신의 보안 환경이 안전한지 점검하는 차원에서만 백트랙을 조심스럽게 활용하기 바란다.

EOB

토요일, 2월 04, 2012

[독서광] 대한민국 소프트웨어, 리스타트

신승환님께서 '대한민국 소프트웨어, 리스타트: 위기를 넘어 도약으로'라는 책을 보내주셨기에 읽은 기념으로 독후감을 정리해보았다. 수필식으로 되어 있어 조금 방심했는데, 출퇴근 시간을 노려 읽는 과정에서 일주일 정도 걸렸다(주의: 생각만큼 읽기가 쉽지 않다!). 읽는 중간 중간에 옛날 생각이 났기 때문일까?

이 책은 소프트웨어 프로젝트를 수행하며 겪은 노하우를 정리한 책이라고 보면 틀림없겠다. 목차를 보면 상당히 재미있어 보이는 내용이 많은데, 실제로도 재미가 있다. 물론 패키지나 게임 소프트웨어 개발이 아니라 SI성 프로젝트를 주로 다루고 있기에 기술 이야기보다는 사람 이야기가 많이 나온다. SI를 다루면서 '갑', '을', '병', '정' 놀이가 빠지면 곤란하지 암암. 소프트웨어를 개발하고 사용하는 주체는 모두 사람이므로, 어떤 사람이 '갑', '을', '병', '정'을 맡느냐에 따라 프로젝트의 승패가 좌우된다고 해도 과언은 아니다. 이 책 역시 이런 점을 파고 들고 있기 때문에, 은총알과 무공 비급이 책장 가득 난무하는 모습을 상상한 독자들이라면 실망할지도 모르겠다. 그렇다고 해서 단순한 처세술로 떡칠한 타인 계발서는 _절대_ 아니며 중급 이상 개발자들이 읽으며 같이 킬킬거리고 우울해지다가도 어느 순간 자신이 걸어 왔던 길을 한번 되돌아보는 기회를 제공하는 내용을 담고 있다.

이 글을 쓰기 위해 다시 한번 휙휙 넘기며 책을 검토(?)해봤는데, 역시 아무리 생각해도 가장 흥미로운 부분은 'CMMI가 적당한 조직이 있다!'(122페이지부터 129페이지까지)다. 이 내용을 초간단 버전으로 요약하자면... 조선 중기로 돌아가 불량 망치가 사회적인 문제로 떠오르자, 공조판서의 명을 받아 망치 품질을 개선하기 위한 '망치 제조 성숙도 모형' 인증이 등장해 이를 인증받기 위한 대장간들의 눈물나는 싸움과 혈투 끝에 중국산 망치가 판치는 레드오션을 뚫고 '망치 제조 성숙도 모형'을 포기한 어떤 대장간이 장도리로 대박을 치는 이야기는 이 책을 구입하지 않더라도 서점에서 꼭 한번씩 읽어보시기 바란다. ㅋㅋ

EOB