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 이라던가 이런게 아주 간단하게 구현됩니다.