2016년 11월 13일 일요일

2016년 3분기 읽은책들

druby book (분산 루비)

ruby 로 동시성(멀티 쓰레딩) 문제를 해결하는 책입니다.
이전에 자동화 환경을 soap 를 이용해서 클라이언트 서버를 구현을 하려고 하다가 무척 까다롭고 복잡해서
druby 로 바꾼적이 있었습니다. 그때 무척 편리하기는 했었으나, 여러가지 디버깅이 어려운 문제에 부딪혀서 시간이 많이 잡아먹었던 기억이 있습니다.
이책을 먼저 읽어보았다면 좋았을것 같습니다.
특히 rinda 라는 분산서버 시스템을 보았을때는 , 이런 느낌이었습니다.
(아~ java concurrency programming 책을 괜히 샀다... )
이제는 lock, semaphone 같은 컨셉으로 동시성을 처리하는 시대는 가고,
깔끔하게 Actor 모델로 가는것 같습니다.
진작에 rinda를 알았더라면,  좋았을것 같습니다.

cucumber














문서화된 명세를 테스트 하는 시스템입니다.
처음에는 verilog 에 어떻게 적용하나 하고 고민했었으나, 하다보니 방법도 있고,
학술계에서도 연구하고 있더군요..
testplan 을 범용화 한다는 입장에서보면 cucumber 이식성이 매우 높아보입니다.
일단 시험삼아서 몇개의 verilog test 를 cucumber 기반으로 바꿔보았습니다.
제 생각에는 전체 개발에 대한 기반 환경을 cucumber로 하면 어떨게 하고 생각이 들정도 입니다.
사람들에게 cucumber 를 소개하고 verilog 검증도 cucumber 로 명세하고나서 테스트 하자고하니까...
반응이 안좋군요... 뭐... 혁신은 공감이 안되는거니까...

xbox canba














xbox  관리자가 직접 칸반을 수행한 결과로 책을 만들었습니다. 
와우! 책의 내용이 너무 좋습니다. Xbox를 어떻게 개발했는지 관리노하우를 많이 배우게 되었네요.
일단 이책을 읽고나서 회사에서 '스크럼' 을 사용하다가 '칸반'으로 전격 교체하였고, 매우 만족스럽습니다.
SoC개발하면서 스크럼을 6년정도 사용했습니다. 스스로 많은 문제점을 느끼고 있었는데...
우리의 문제점이 어쩜 이책하고 똑같은지... 모르겠습니다.
하여간 칸반으로 넘어가고 나서 많이 관리하기 수월합니다.

칸반













저자가 너무 많은 이야기를 하려고 합니다. 차라리 Xbox  관리자가 만든책이 더 실용적입니다.






칸반과 스크럼 




책이 얇아서 이책만 봐도 대충 칸반이 뭔지 알수 있습니다.
하지만 Xbox관리자가 만든책을 한번더 보는게 좋습니다.

scala














요즘 functional programming 에 빠져서 scala를 공부하게 되었습니다. 
어떻게 !!! ruby보다 간결한 코드가 static (정적) 언어에서 나올수 있는지 ... 놀라울 따름입니다.
ruby 대비 실행속도가 10배이상 빨라서, 느린 쪽은 scala로 scripting 을 해야할것 같습니다.

7 language 7 weeks (브루스 테이트의 세븐 랭귀지)
















이책은 여러가지 언어 ruby, scala 및 .closure , 하스켈 라는 언어를 소개합니다.
동적언어를 사용하고 싶으면closure를 정적으로 가고싶으면scala 로 하면 될것 같습니다.
하스켈은 뭔가 쫌... 어렵네요.
동시성이 중요하면 얼랭을 
1~4명정도가 개발하려면closure 로 좀더 대규모로 개발하려면 scala가 낫지 않나 싶습니다.
정적언어와 동적언어의 장단점이 있으니까요.
하여간 앞으로는functional programming 을 모르면 안되겠네요.


해커와 화가

lisp 를 사용한 개발자의 생산성이 perl 을 사용한 개발자들보다 훨씬 뛰어났다는 일화가 나옵니다.
흠... 역시 회사에는 생산성에대한 비밀이 있어야하는구나...
좀더 남들보다 적은 인원으로 빨리 만들기위한 무언가를 가지고 있어야 하겠습니다.
그런면에서 우리회사도 이미 비밀이 많은것 같습니다. ㅎㅎ

폴리그랏 프로그래밍














와우! 우리나라 개발자가 쓴 책중에 단연 최고라고 할수 있네요. (해외에서 근무하고 있으니 우리나라라고 하기는 그렇긴 하지만)
제생각에는 쫄트상을 받은책들과 당당히 비교해도 되겠습니다.
결론을 말하자면, java 는 앞으로 계속 갈것이지만, scala로의 세대교체가 이루어질것이다.
미국에서는 금융권 개발이 java에서 scala로 많이 갈아탔나봅니다.
그리고 ruby 같은 동적언어가 java개발 쪽에서는 위험한 것으로 인식되고 있습니다. 아무래도 type checking이라는것이 안정성에 있어서 중요한 부분이 되니까요.
ruby 와 같은 언어가 최고라고 생각하고 있던 저에게, 다시한번 다른 언어를 생각하게된 계기가 되었습니다.
하지만 scala로 좀 코딩을 하다보니 ,typing checking 때문에 너무 짜증납니다!
따라서 제가 내린 결론은 간단한 스크립트는 ruby로 짜고, 속도를 요하는 경우는scala로 짠다로 생각하고 있습니다.





비폭력 대화












직원들간에도 이야기하면서 화가나서 얼굴을 화끈거리며 이야기하는 사람들을 종종 보게됩니다.
이책을 읽으면 화내지 않고 서로 대화하는 방법을 배우게 됩니다.
또한 자기자신의 욕구를 외부로 잘 표현하는 방법도 배우게 됩니다.
이책을 읽고나니, 집사람이나, 아이들에게나 대화하기가 더 편해지고, 그들의 욕구를 더 잘 이해하게 되었습니다.
폭력 대화란 무엇인가 하면 옳고 그름이 있다고 가정하고 하는 모든 대화를 포함합니다.
우리는 어릴때부터 권선징악을 배우다 보니, 대화할때도 너의 사고방식이 옳다 또는, 나쁘다고 판단하며 이야기하게 되는 습관이 있더군요. 이책에서는 옳고 그름이란 없다고 말합니다.
이 책을 읽으면 서로에게 담백하게 있는 사실만을 이야기하는 화법을 구사하게 됩니다.



러닝 스파크 

















하둡을 공부하다가 하도 복잡시러워서,  최근 하둡대신 spark를 많이 사용하고 있다는 사실에 공부하게되었습니다. 하둡과 비교하면 spark는 정말 편하더군요.
하둡으로 구현한 코드는 정말 복잡한데요. spark 를 사용하면 마치 ruby 를 사용하듯 우아하고 간결한코드가 나오게 되더군요.
spark로 할수 있는것은 빅 데이터를 다루는데 용이합니다. linear regression 이라던가 이런게 아주 간단하게 구현됩니다.





2016년 10월 9일 일요일

맥북 15인치 13인치중에 뭘 선택할까?

개발자에게는 맥북 15인치 강추!


맥북 13인치와 15인치를 고민하다가 15인치로 최종 결정했습니다.

한 6개월 사용하고나서 느낌점은 15인치를 선택하기를 잘했다는겁니다..

약간 무겁다고는 하지만 나름 들고다닐만 합니다.  (자주는 아니고 가끔씩 필요할때만 들고 다닙니다.)

하지만 13인치 15인치를 떠나서 맥북은 정말 끝내주네요.

오픈소스들이 그냥 잘 깔립니다.

아래와 같이 하면 pip 같은게 그냥 슥슥 깔립니다.

% brew install pip

% make install 을 쳐도 쓱쓱 되는게 윈도우에서는 느끼지 못했던겁니다.

스티브 잡스가 생전에 mac os 를 개발하면서 포지셔닝에 대해서 이야기했던 동영상입니다.

ui 가 기가막히게 좋은 워크스테이션... 이 스티브가 원했던 포지션입니다.

바로 제가 현재 맥북을 쓰면서 느끼는 그 느낌 그자체 입니다.

훌륭합니다.!!! 맥북은 워크스테이션입니다.!!

스티브 잡스가 살아있었더라면 더 좋았을것 같네요... 이렇게 잘 만들어 놓다니...






2016년 7월 23일 토요일

2016.07월 까지 읽은 책들

요즘은 너무 바쁘기도하고 좀 어려운 내용을 공부하다보니 시간이 없어서 책을 많이 못읽고 있습니다.

인사이드 안드로이드



사놨다가 짱밖아놨던 오래된 책입니다.
갑자기 안드로이드 구조가 궁금해져서 보게되었습니다.
오래된 책이기는 합니다. 버전도 이전것이구요...
하지만 다른 책들보다는 훨씬 기초설명이 잘되어있는 책인것 같습니다.
아마 안드로이드 처음 접하시는 분들은 이책을 보시는 것이 좋을것 같습니다.
안드로이드 버전이 낮기는 하지만.
init 나 zygote등 기초적인 부분을 아주잘 설명합니다.
이걸보다보니 os에서 돌아가는게 어떤식으로 이루어지는지 감이 잡히네요.
저는 개인적으로 국내 저자들이 쓴 책을 안보는 편입니다만,
이책의 내용은 아주 좋습니다. 저자들이 너무 잘썼어요...

피플웨어




이런 명작을 이제야 읽어보게되었습니다. 몇년전에 사두고 짱밖아 놓다가 이제야 시간이 나서 읽어보게 되었습니다.
내용은 생각했던것보다 기대 이상이였던것 같습니다.
특히 직원들이 읽할 사무실을 건축하는 방식에 대한 부분은... 정말 많은 생각을하게 만드는 군요. 직원들이 일하고 싶은 사무실을 만들어주는게 중요하네요. 그럴려면 직원들이 직접 디자인 해야합니다.

다만 책의 내용중 공감이 가지 않는 부분은 사무실이 조용해야한다는 것이였습니다.

아래 2개의 회사는 사무실 분위기가 다릅니다.
마이크로 소프트웨어 (차단된 공간) ... 피플웨어 스타일.
구글 (open된 공간) ... 피플웨어의 반대 스타일.

구글은 외향적 프로그래머를 지향하기 때문이기도 한것 같습니다.
저도 조용한것보다는 어느정도 오픈된것이 커뮤니케이션 비용을 줄일것 같기도합니다.

하지만 조용한게 중요할때가 있습니다. 정말 집중해야 일해야 할때가 있는데 너무 많은 방해가 될때가 있습니다.

조용한곳을 찾으려고 휴가를 내고 커피숍 등에가서 일한다는 문구를 봤을때..
"띠용~이거..나잖아... " 하고 공감했습니다.

저도 가끔은 휴가내놓고 자택 근무 할때가 더 효율이 좋게 나오곤 합니다.
회사에서는 너무 방해가 많아요.

이책의 단점은
개정판을 만들면서 너무 현대적으로 바꾼것이 마음에 안듭니다. 왜냐하면 30년 전에 사건들이 공감이 가면 아하~ 이런것은 시대가 바뀌어도 불변하는것이구나 하고 느낌이 오는데요. 너무 현대적으로 바꿔놔서 약간 시간을 초월하는 감동이 부족했습니다.


넥스트 소사이어티



제가 존경하는 피터드러커의 책입니다.
이책은 답은 없고, 미래 회사의 모습을 상당부분 고민하도록 만듭니다.
그런데 바로 구글이 그런 회사에 모습에 가깝더군요.
제 느낌에는 삼성이 20세기 회사였다면 구글은 21세기 회사같습니다.

미래기업은 지식인들을 끌어들일수 있어야하고, 이직률을 낮춰야하는데, 그게 돈 만으로 해결되는 문제는  아닙니다.

미래기업은 공동체적인 성격이 강할것이라고 했습니다.

실재로 구글은 해적선(?) 같은 구조의 팀을 유지하고 있기때문에 미래기업의 형태를 갖추고 있다고 보입니다.


상상하지마라



국내에서 잘나가는 빅데이터 전문가의 책입니다. 이미 해외시장 CEO로부터도 초청받아서 강연을 하는등 잘나가고 있네요.
중요한것은 빅데이터 보다 그것을 바라보는 사람의 시각이 매우 중요했습니다.
이른바 통찰 이라고 하는것입니다.
특히 여성용품등을 분석해서 시장을 만들어 나가는 부분에서는 정말 끝내준다는 생각이 드네요.
앞으로는 꼭 빅데이터 분석과 함께 마케팅이 이루어져야하겠습니다.
그건 그렇고 우리회사는 어떻게하지? 라는 생각이 드네요...
빅데이터를 스스로 다루기는 어려울것 같고 전문 업체에 의뢰해야할까요?








2016년 5월 14일 토요일

2016.5월까지 읽은 책들

grunt (원서)

Product Details
자동화 프레임워크인데, 상당히 회사에서 내가 경험한 부분과 유사함을 느꼈다.
우리회사도 잘하고 있다는건가. 솔직히 말하면 이 책보다 더 진보된 부분도 있다.
Grunt는 makefile 이나 rakefile 등에서 생기는 지저분함(?) 을 제거하고 target의 reuse를 극대화 하기위해서 아래 방법을 도입한다.

  • data의 분리 (jason)
  • tarket(task)의 재활용 (plugin 이라고 부름)

위에것을 보니 내가만든 makefile이나 rakefile이 갈수록 지저분해지는 이유를 알게된것 같다. 하여간 많은 도움을 얻게 된 책이고.
자동화에 있어서는 최근에서 가장 진보된 방식으로 하는것 같다.
그런데 경험이 없으면 이책을 읽어도 별반 도움이 되지 않는다.
아는게 있어야 보인다고...


오픈소스 소프트웨어 아키텍처 


오픈 소스 소프트웨어 아키텍처
상당히 해석이 잘되어있어 번역자의 레벨을 높게 평가하게 되었다. 다른 오픈소스 성능 최적화 보고서 (류광번역) 보다 훨씬 쉽게 읽혔다. 역시 전문 번역가 보다는 현업에 종사하는 사람이 변역한것이 읽기 쉽다.
사실 open소스는 구조를 잘 설명한 책이 없고 스스로 소스를 분석해야한다.
그런데 이책을 보면 여러가지 open소스들에 대한 구조를 잘 이해할수 있도록 설명해 두었다.
특히 지금까지 잘 모르고 사용했던것들을 쏙쏙 이해할수 있게 설명하고 있어서
전반적으로 많이 도움이 되었다.
특히 이클립스는 여러가지 책을 봤지만, 도통 이클립스의 역사적 철학이나, 역사적변화에 대해서 모르다 보니, 이퀴낙스 가 뭔지 이런걸 도통 알수가 없었는데, 이책을 보니 너무너무 잘 설명을 해주고 있었다.
그리고 오픈소스쪽에 새로운 툴들을 많이 소개받는 기회가 되어서 저자들에게 매우 감사하는 마음이 들었다.




chef Solo

Chef Solo 입문
회사에서 자동화 프레임웍을 구축하는것은 영원히 끊이지 않는과제이므로
힌트를 얻기위해서 보고있다.
솔직히 말하면 chef Solo 스타일보다는 grunt쪽이 도움이된다.
chef는 클라우딩 컴퓨팅용 install을 도와주는 도우미 정도로 보면 되겠다.
ruby로 만든 DSL에 가깝다 보니 Grunt처럼 jason을 사용하는게 더 낫지 않나 싶다.
나는 DSL보다는 Data Driven이 더 바람직하다고 본다.
결국 DSL도 스크립트이기 때문이다. Data Driven은 명세다.
나는 아래와 같은 철학을 가지고 개발하고 있다.
"궁극적으로 모든 스크립트는 없애고 실행가능한 명세만으로 개발 되어야한다."


대체 뭐가 문제야 ? 

대체 뭐가 문제야
프로그래밍 심리학의 저자가 내어놓은 책인데, 정말 좋다.
(돌아가셔서 슬프다. 나는 이분에 책에서 가장 많은 가르침을 받았다.)
정말 생각하게 하는 부분이 많다.
읽어보고나서 나의 문제점을 알것같다. 나는 너무 문제를 돌직구로 해결하려고 한다.
(왜냐하면 나는 정통파 우완 투수.... 스타일이라서 그렇다.)
하지만  문제를 해결하면 다른 문제가 나온다.
하지만 이 책에서는 아래와 같이 말한다.
"과연 나의 문제인가? 그들의 문제인가?"
과연 내가 원하는게 문제의 해결인가? 를 다시한번 고민해 보았다.
이책을 읽고나서 말하고 행동하는게 좀 달라졌다.
역시 끝내주는 책이다.
마지막으로 아래와 같은 말이 가장 마음에 와닸는다.

"문제를 이해하고 해결할때, 해결책으로 인해 유발되는 3가지 이상의 문제를 떠올릴수 없다면 그 문제를 완벽히 이해한것이아니다."

이제부터 면접볼때도 지원자들에게 어떤 문제를 아는지 물어보지만 말고,
3가지 이상의 문제를 떠올리라고 해야겠다. 우리회사의 면접 시험문제가 점점 어려워 지는중이다. (욕심 같아서는 구글 입사 수준으로 맞추고 싶지만... 사장님이 싫어하신다..)

질문이 있는 식탁 유대인 교육의 비밀

질문이 있는 식탁, 유대인 교육의 비밀
아이를 교육시키다 보니 한국식 공부방법이 맞는지 자꾸 의문이 들어서
유대인식 공부방법을 보고 있다.
유대인이 너무너무 부럽다. 그들의 가정에서의 토론은 전통적으로 해오지 않으면
실행하기가 매우 어려운데, 우리나라에서는 하고싶어도 여건상 상당히 힘들것 같다.
성적에 연연하지 않고 아이의 사고방법을 키워주는 방식이다.
어떻게 보면 이런 방식으로 사고하는 법은 구글의 면접문제와도 상통한다고 보인다.
"이책을 읽고 아빠들이 아이들과 좀더 대화할 시간을 가졌으면 좋겠다."

당신은 구글에 갈만큼 똑똑한가 


당신은 구글에서 일할 만큼 똑똑한가?
구글 면접관들의 마음가짐을 알게됬다.
나는 면접관으로서 지원자를 시험해오면서, 여태까지, 나는 내가 아는 답만 물어보았던것 같다.
하지만 구글은 면접관도 모르는 답이 없는 질문을 한다는 사실을 알았다.
"나는 모르지만 너는 대답해봐. 그것도 끝내주게... 나를 감동시키면 채용시켜주지"
나도 지원자들의 한계를 시험해보도록, 답을 모르는 문제를 물어봐야겠다.


컴파일러 구조와 원리 

컴파일러 구조와 원리
역시 컴파일러를 만들고 싶어서 보았다. 여태까지 보았던 컴파일러 책중에는
가장 설명이 잘되어있다.
기존에는 lex,yacc밖에 몰라서 답답했었는데
이책을 읽으니 컴파일러의 backend까지 컨셉을 알게됬다.
아주 쉽게 말하면 추상트리(node)를 만들어놓고, visitor 패턴을 돌려가면서 optimize 하면 된다.
이제 LLVM만 공부하면 컴파일러를 만들수 있겠다.!!!


LLVM Core Library (원서)


Product Details


컴파일러를 한번 만들어보고 싶어서 공부중이다.
LLVM의 신기한점 하나가 JIT-compile (just in time) 이라는데 이게 컴파일러 자체를
실시간으로 만드는 기능이다.
아마도 nvidia의 cuda를 이전에 공부할때 한가지 이상한점이있었다.
register 의 갯수를 마음대로 바꿀수가 있었다. (그것도 자동으로 바뀌는것 같았다.)
어떻게 하는지 몰랐는데 JIT를 사용하면 되는구나...
역시 사람은 공부를 해야한다.








2016년 3월 12일 토요일

2016.년 1-2월 읽은책

21세기 지식 경영 (피터드러커)

21세기 지식경영
읽어본 피터드러커 책중에 가장 난해하고 어렵습니다.
왜냐하면 피터드러커도 답을 잘 모르니 너희들이 알아서 찾아라는 것입니다.
하지만 점점 피터드러커가 예언한대로 세상이 바뀌고 있어서 정말 대단하네요.


위대한 비즈니스 게임

위대한 비즈니스 게임

직원들에게 오너십을 주는 경영전략을 20~30년 전부터 고민해서 성공적으로 완성해나가고 있는 회사의 이야기입니다. 실전을 바탕으로 적혀있기때문에, 아주 유용하구요.
회사마다 경영은 다르기때문에 고민하면서 각자 알맞게 바꿔가야하는것이 중요하다고 말합니다.
결국 CEO는 계속 고민하면서 직원들의 오너십을 이끌어 내야합니다.
ESOP(주식 신탁 제도) 라는것을 알게되었는데요. 경영권이 있는 주식은 아니구, 사고 팔수 있고, 배당가능한 주식입니다.
직원들이 주인이 되려면 먼저 주식을 주어야합니다. 그리고 나서 직원들이 주식의 가치를 높이게끔 유도해주면 됩니다.


직원우선주의


직원 우선주의

읽어보니 제목이 맘에 안듭니다. 야간 오해의 여지가 있을수 있구요.
위대한 비즈니스 게임과 비슷한 내용인데, 회사의 주인이 되려면 꼭 주식이 없어도 가능할것 같은 향기가 납니다.  지식 노동자들은 자기의 의견이 반영되는것을 가지고 만족해하면서 더 좋은 의견을 낼수 있기 때문이지요.
이책에서는 각종 feedback을 어떻게 받고, 직원들의 의견을 반영하는 방법에 대해서 이야기 합니다. SoC기업에는 이 책의 내용이 좀더 적용가능해 보입니다.
재미있는것은 직원들이 상사 "관리자" 를 평가하는 평가 방식등이 있다는것이 재미있었습니다. 직원들의 의견이 무시되지 않는 회사는 직원들이 주인이 될수 있는것 같습니다.
꼭 주식을 가지고 있지 않아도 되니까요...

단순함의 원리

단순함의 원리
재미있습니다. 왜 tool 만드는 회사들이 그렇게 tool을 복잡하게 만드는지 알았습니다.
복잡해야 팔리니까요. 쉬운 방법론을 만들면 tool을 사지 않아도 스스로 만들어 버리게 됩니다.
따라서 복잡한 gui툴을 부러워 하기보다는, 실용적인 스크립트를 짜는편이 더 현명하다는 생각을 배우게 되었습니다.
이책을 보고나서
새로운 방법론(Methodology)가 나왔을때 다시한번 의심해보게 되는 시각을 가지게 되었습니다.

contributing to eclipse
Contributing To Eclipse
한번 나도 gui툴을 만들어 보려고 다시 읽어보았습니다.
벌써 3번째 읽는것인데... 이제야 eclipse가 이해가 갑니다.
각종 예제들도 돌리게 되었구요. 재미가 있더군요.
eclipse 책중에 단연 최고라 생각됩니다.



2달동안 달랑 5권을 읽었네요...  eclipse공부하느라 시간을 너무 소비했네요...
좋은 gui툴을 만들어서 회사에 릴리즈하면 뭐... 시간이 아꺼울것 같지는 않습니다.







2016년 3월 1일 화요일

화장실에가서 스마트폰을 하는게 좋은가?

요즘 화장실에 갈때 스마트폰을 안가지고 가고 있습니다.

사색하기도 좋구요. 이전 10~20년전에 화장실 가서 이것 저것 생각하던것도 떠오르고 해서 같아서 좋습니다.

요즘 사람들은 스마트폰의 노예가 되어가고 있어보입니다.

이걸 생물학적으로 보면 도파민 중독으로 볼수 있겠습니다.

밥먹으로 갈때 조차도 한마디 대화 없이 엘리베이터 앞에서 스마트 폰들을 하고 있습니다.

물론 스스로 자신을 통제하려는 몇몇 사람들은 스마트 폰을 잡고 있지 않습니다.

몇몇 남들보다 뛰어난 직원들은 스마트폰의 노예가 되지 않으려는 경향이 있는것 같습니다.

화장실에 갈때는 스마트폰을 잠시 멀리하는것도 좋습니다.