SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
54
“나에게 책은 올라설 수 있는 거인의 어깨”
Book selector 이철혁
아이작 뉴턴이 인용한 “내가 더 멀리 봤다면, 그것은 거인들의 어깨에
올라섰기 때문이다”( if i have seen further it is by standing on the
shoulders of giants)는 나의 성과가 오롯이 나의 재능에 기인한 것이
아니라, 이전 세대의 결과,경험을 바탕으로 얻은 것임을 이야기합니다.
훌륭한 책을 통해 다양한 지식,경험을 얻을 수 있기에, 책이야말로 그 어떤
것 보다 쉽게 올라설 수 있는 거인의 어깨가 아닐까요? 많이 읽고,생각을
나누고, 조금씩 실행하며 자신만의 경험을 쌓을 때, 조금 더 멀리 볼 수
있으리라 생각합니다.
55
Book selector’s pick
이철혁 | blog.naver.com/msql | facebook.com/nemofinder
어린시절 우연히 접한 컴퓨터에 사로잡혀 그 외의 길은 생각도 못해보고 컴퓨터공학과를
나와 IT회사에서만 15년째 일하고 있는 개발자. 개발 서적 외에도 다양한 책을 읽고 의견
나누는 것을 좋아해 함께 책을 읽고 토론하는 모임을 개설/운영 중!
1
리팩토링 코드 품질을 개선하는 객체지향 사고법
2
빅데이터의 충격
(거대한 데이터의 파도가 사업 전략을 바꾼다)
3
헤드 퍼스트 데이터 분석
(당신을 최고의 데이터 분석가로 이끌어줄 마법 같은 학습서)
4
왓슨 인간의 사고를 시작하다
5
소프트웨어 누가 이렇게 개떡같이 만든 거야
6
앱만장자
(부를 거머쥔 인디 개발자들의 성공 비법)
7
애자일 마스터
(프로젝트 인셉션 추정과 계획 그리고 실행)
8
읽기 좋은 코드가 좋은 코드다
(더 나은 코드를 작성하는 간단하고 실전적인 테크닉)
9
프로그래머, 열정을 말하다
56
리팩토링 (REFACTORING)
최근 화제인 린스타트업에서는 비즈니스의 방향을 기존의 “Ready-
Aim-Fire” 구조에서 “Ready-Fire-Aim”로의 전환을 이야기하고
있습니다. 가설을 완벽히 실험하고 검증한 후 시장에 출시할 수 없기에
출시한 후 실제 시장의 피드백을 반영하는 것인데요. 이는 이미 마틴
파울러가 1999년에 쓴 이 책에 나와있는 “완벽한 설계를 할 수 없고 완벽한
설계를 한다고 해도 시간의 흐름에 따라 변화가 일어나기에 리팩토링이
필수”라는 글을 떠올리게 합니다. 리팩토링은 겉으로 드러나는 기능은
그대로 둔 채, 알아보기 쉽고 수정하기 간편하게 소프트웨어를 수정/
구조를 변경하는 작업으로 이를 통해 소프트웨어 설계가 개선되어
이해가 쉬워지고 버그를 찾기가 쉬워집니다. 또한 빈틈없는 코드를 훨씬
효과적으로 작성할 수 있기에 저자가 리팩토링을 코드를 깔끔하게 만드는
것 이상의 순기능을 하며 소프트웨어 개발 과정의 핵심 요소라고 강조하는
이유입니다. 하지만 실무에서는 아직 많이 정착되지 않았는데 이는 이 책의
13장에서 언급한 4가지 이유와 해법이 바로 현장의 상황을 말하는 것 같아
요약해 옮겨 봅니다.
1) 리팩토링을 어떻게 해야 할지 모르겠다.
: 사람은 경험 없이 깨닫지 못하고 도구와 기법도 사용할 때나 도움이
되기에 코드를 리팩토링하면 할수록 더 깊게 넓게 이해하게 됩니다. 따라서
가볍고 작은 리팩토링부터 시도해보기를 권장합니다.
이철혁 | 코드 품질을 개선하는 객체지향 사고법
57
리팩토링 | 마틴 파울러 지음, 김지원 역
출판사 한빛미디어 2010
참고할 책 GOF의 디자인 패턴 (에릭 감마, 리처드 헬름 외 2명)
2) 리팩토링 장점은 오랜 시간이 흘러야 가시화될 테고, 그때가 되면
프로젝트 팀원도 아닐텐데 해야 하나?
: 리팩토링을 하면 단기적인 긍정적 효과를 얻을 수 있고 수정과 유지보수가
간편해집니다.켄드 백 처럼 훌륭한 프로그래머도 “난 뛰어난 프로그래머는
아니고, 단지 습관을 잘 들인 착실한 프로그래머다”라고 말하는 것을 볼 때,
리팩토링을 습관처럼 있다면 훌륭한 프로그래머라고 할 수 있을 것입니다.
3) 코드를 리팩토링 하는 일은 추가적인 부담이다.
: 경험상 리팩토링으로 인한 추가 부담은 프로그램의 각 개발 단계마다
줄어든 수고와 시간을 상쇄하고도 남습니다.
4) 리팩토링하다가 괜히 멀쩡한 프로그램을 망가뜨릴까 걱정된다.
: 리팩토링을 하면 이전부터 있던 버그도 쉽게 찾아 수정할 수 있습니다.
이 책은 중복코드, 장황한 메서드, 방대한 클래스 등 코드에서 많이 볼 수
있었던 구린내로 표현되는 22가지 리팩토링이 필요한 상태를 제시하고,
해당의 상황에 대해 저자와 주변 분들이 몇 년간 수정하고 보완한 리팩토링
목록에서 찾아서 적용하는 방식으로 사용할 수 있습니다. 하지만 리팩토링이
꼭 필요한 시점이나 상황에 대한 정확한 기준을 제시하진 않습니다. 이는
사람의 직감보다 뛰어난 기준은 없기 때문에 충분한 연습을 통해 감을 잡는
방법 외에는 없지만 이 책을 참고하면 최소한 방향만큼은 제대로 잡게 될
것입니다.
58
빅데이터의 충격
파코 언더힐의 저서 <쇼핑의 과학>에서 고객을 분석하기 위해 매년
5~7만 명의 쇼핑객들을 인터뷰하고 2만 시간이 넘는 비디오 촬영을 통해
고객과 매장의 모습을 기록했습니다. 또한 복장, 손짓, 눈짓 등 우리가
생각할 수 있는 모든 행동을 낱낱이 분석하여 제품과 매장의 개혁에 꼭
필요한 정보를 추출한다고 하였습니다. 여기서 인터뷰와 비디오 등 메모는
전부 데이터(Data) 입니다.
데이터(Data)는 사전적 의미가 단순히 의미 없는 기록에 불과하듯,
데이터는 아무리 많아도 정보가 되지 못한다면 의미가 없습니다.
데이터들을 분석, 추출, 가공 등의 작업을 통해 판단에 도움이 되고 의미가
부여될 때 비로소 정보(Information)가 됩니다. 하지만 데이터가 없거나
충분하지 않다면 정보의 품질에도 문제가 생길 수 있을 것입니다. 앞의
예에서는 많은 데이터를 사람이 모으고 분석, 추출, 가공하였지만 스마트폰
등 디바이스와 센서 등이 발전하여 폭발적으로 생성되는 데이터를 사람이
다루기에는 한계가 있는 것 같습니다.
빅데이터(Big Data)라는 단어 때문에 데이터의 양만 생각하기 쉽지만
책에서는 데이터의 양(Volume)이 너무 많고, 몇 가지 형식에 맞출 수 없는
데이터의 다양성(Variety), 데이터가 쌓이는 속도(Velocity)를 따라 잡을 수
없어서 사용할 수 없었던 데이터들을 ‘빅데이터’라 정의합니다.
이철혁 | 거대한 데이터의 파도가 사업 전략을 바꾼다
59
빅데이터의 충격 | 시로타 마코토 지음, 김성재 역
출판사 한빛미디어 2013
참고할 책 시작하세요 하둡 프로그래밍 (정재화)
또한 넓게는 처리 기술과 인재, 조직 등을 다 포함하는 단어로 정의하고자
합니다. 이런 데이터들이 컴퓨터의 가격 대비 성능이 향상되고, 저장장치의
가격 하락의 바탕에 하둡 등 대규모 데이터분산처리 기술이 등장함으로써
다룰 수 있게 되었다고 합니다. 이 책은 이렇게 빅데이터에 대해 안내하고
이해를 높이면서 기반 기술을 소개하고 있는데 빅데이터에 대해 궁금했던
분들이라면 꼭 IT업계 종사자가 아니더라도 쉽게 설명하고 있어서 편하게
볼 수 있을 것 같습니다.
264페이지의 얇은 책에서 빅데이터를 얼마나 다룰 수 있을지에 대한
의문이 있었지만 전문적인 기술적인 부분을 제외하고 이해와 실제 사례,
활용패턴, 개인정보보호 등 많은 부분에 대한 자료와 통찰을 쉽게 볼
수 있었고 회사에서 사용되는 사례 소개에서 IT 회사가 아닌 건설기계
제조회사, 맥도날드, 운송회사 등도 소개 되고 있기에 해당 사례를 통해
우리 회사, 내가 적용해 볼 수 있는 부분도 생각해보는 동기가 되었습니다.
특히 개인정보보호 부분은 데이터를 이용하려는 회사가 아닌 이용자로서
수집되는 데이터에 대한 경각심과 생각을 해보는 시간이 되었습니다. 책을
다 읽고 가장 중요한 것은 이제까지 무시했던 데이터의 가치를 깨닫는
것이고 이를 통해 더욱 정확한 판단을 위한 정보로 사용하는 것이라는 것을
배울 수 있었습니다.
60
헤드 퍼스트 데이터 분석
점점 사회가 정보화로 진행되고, 정보의 공개및 공유가 많아지면서
사용할 수 있는 데이터의 양은 폭발적으로 증가하고 있습니다. 이제는
데이터가 없거나 충분하지 못해 문제가 생기는 경우보다 어떠한 데이터를,
어떻게 사용해야 할지에 대한 고민이 커지는 것 같습니다. 이러한 시점에
데이터 분석에 대한 기본을 배울 수 있지 않을까 하는 기대로 책을 읽기
시작했는데 결과부터 말하자면 만족할 만한 결과를 얻을 수 있었습니다.
1장 입문에서 가상 회사의 데이터를 이용해 매출의 시장 목표치를
넘어서는 방안을 도출함으로써 데이터 분석이 효과를 거둔 것으로 보이게
하지만 바로 2장에서는 관찰한 데이터, 기존의 데이터가 아닌 실험을 통해
얻은 데이터로 문제를 해결하는 것을 보여줌으로써 데이터 분석 작업이
기존 데이터를 분석하는 것에 그치는 것이 아님을 알려 주고 있습니다.
가상의 커피 회사의 매출 인상을 위해 커피의 가치를 설득한 그룹, 가격을
인하한 그룹, 아무것도 시행하지 않은 그룹을 바탕으로 커피의 가치를
설득하는 것이 매출을 늘리는 것임을 결정하며 분석 및 통계의 가장
기본적인 원칙은 비교법이라 말하는 이유를 알게 해 줍니다.
6장 베이지안 통계와 8장 휴리스틱 분석은 행동 경제학 서적을 읽었다면
너무나 반가울 만한 부분으로 희소병에 걸린 확률에 대한 문제가 도마뱀
독감으로, 휴리스틱과 알고리즘 사고를 쓰레기 배출량을 줄이기 위한
캠페인으로 설명되고 있습니다.
이철혁 | 당신을 최고의 데이터 분석가로 이끌어줄 마법 같은 학습서
61
헤드 퍼스트 데이터 분석 | 마이클 밀튼, 김경태 역
출판사 한빛미디어 2013
참고할 책 Head First Statistics (돈 그리피스)
또한, 이론적인 부분이나 각자 종이로 해보는 것뿐만 아니라 각종 툴에
대해서도 소개하고 실습할 수 있도록 다루고 있습니다.
3장에서 요인을 조작해 원하는 것을 최대한으로 얻을 수 있는 최적점을
찾는 최적화를 배우며 MS 오피스의 엑셀의 해찾기 기능을 통해 복잡한
계산 없이 최적점을 찾는 과정을 배울 수 있었습니다. 9장에서 데이터의
분포, 변동성 중심 집중 경향을 측정할 수 있도록 사용되는 히스토그램을
배우며 통계 계산 도구의 미래가 될 수 있는 무료 오픈 소스 프로그램 R을
소개, 설치, 사용하게 됩니다. 예상외로 데이터 분석에만 속한 것이 아니라
전반적으로 사고하는 법, 문제 해결에 대한 과정들을 배울 수 있을 뿐만
아니라 4장의 데이터 시각화에서 제일 중요한 것은 적절한 비교를 말한다는
부분과 5장 가설 검증에서 확인되지 않은 가설을 제거하는 반증법을 배운
것이 저에게 제일 유익했습니다.
Head First의 서적답게 많은 사진과 그림, 도표가 가득하기에 488
페이지라는 게 믿기지 않을 정도로 쉽게 읽을 수 있었고, 각 장에서 배워야
할 내용은 실무에서도 있을 법한 해결해야 할 목표가 스토리로 제공되기에
지루하지 않게 읽고 배울 수 있었습니다. 스토리에 몰입해서 예제를 같이
실습하고, 결과를 보기 전에 한번 더 생각해본다면 실제 업무에서도 큰
도움을 줄 수 있으라 봅니다.
62
왓슨 인간의 사고를 시작하다
1997년 5월 7일, IBM이 체스 세계챔피언 게리 카스파로프와의 대결을
위해 개발한 컴퓨터 딥블루로 승리함으로써 인간을 이긴 컴퓨터로서
유명합니다. 그로부터 14년이 흐른 2011년, IBM은 체스에 이어 퀴즈쇼
‘제퍼디’ 에 컴퓨터 왓슨을 퀴즈쇼 역사상 가장 뛰어난 2명의 챔피언과
나란히 대결할 도전자로 내놓았습니다. 이는 딥블루와 비교가 되지 않을
엄청난 일이라고 할 수 있습니다. 딥블루는 과거 챔피언들의 기록과
현재 상황을 비교하고 시뮬레이션함으로써 최적의 수를 뽑아내는
수준이었습니다. 하지만 퀴즈쇼에서는 단답형의 질문이 아닌 복잡하고
은유적인 표현과 위트, 말장난 등 인간으로서도 어려운 문제를 제대로
이해하여야 하고 인터넷사용 없이 내장된 지식만으로 답을 찾아내야만
합니다.
초창기 컴퓨터 과학자들은 인간의 언어를 학습시키고 그걸 바탕으로
책과 지식을 공부하면 인공지능이 곧 완성될 것으로 생각하였으나, 여전히
인간의 언어조차 제대로 이해하지도 못하는 수준입니다. 결국, 왓슨도
인간의 언어를 정확하고 이해하고 그에 필요한 정답을 찾는 시스템으로
완성되지 못했습니다. 여러 시행착오 끝에 100가지 이상의 알고리즘을
동시에 실행시켜서 나온 결과물 중 가장 신뢰도가 높은 답을 정답으로
선택하는 방식으로 개발하게 돼 확신하는 만큼 금액을 베팅하고 운영하는
부분을 추가하여 퀴즈쇼에 출전하게 됩니다.
이철혁 | MAN VS MACHINE
63
왓슨 인간의 사고를 시작하다 | 스티븐 베이커 지음, 이창희 역
출판사 세종서적 2011
실제 퀴즈쇼 “제퍼디” 의 진행 모습
하지만 이렇게 시스템이 점점 발전하면 어떻게 될까요? 콜센터의
전화상담 등 많은 일을 왓슨이 대신할 수 있지 않을까요? 그러면 인간은
좀 더 인간만이 할 수 있는 쪽의 일에 집중할 수 있게 되는지, 단순히
산업혁명처럼 일자리를 뺏기는 것인지 생각할 부분을 남겨두게 됩니다. 이
책은 점점 퀴즈에 강해지는 왓슨을 보면서 현재 인공지능 기술 수준과 문제
해결방법을 흥미롭게 보고 배울 수 있어서 추천하게 되었습니다.
64
소프트웨어 누가 이렇게 개떡같이 만든 거야
이 책은 상당히 자극적인 제목에 비해 ‘사용성을 제대로 이해하는 유쾌한
통찰’ 이라는 얌전한 부제를 가지고 소프트웨어를 사용하면서 겪는 불편한
여러 가지 상황을 통해 사용자가 진정 원하는 것이 무엇인지 생각하게
해줍니다. 많은 UX관련 책들과 다른 점은 개발자와 사용자를 위주로 쓰인
책이라는 점인데, 저자가 마이크로소프트가 선정한 ‘Software Legend’
로서 많은 프로그래밍 책과 강의를 하는 것을 안다면 당연하다고 여길
부분이기도 합니다. 개발자에게도 사용성을 생각하는 능력이 요구되는
시대에 한 번쯤 읽어보시길 권하고 싶습니다.
불편한 상황이라고 소개를 하는 많은 예 중 가장 인상 깊었던 하나를
소개합니다. MS Windows 환경에서 가장 많이 쓰이는 문서작성 도구인
메모장은 내용을 입력하고 닫기를 누르면 저장하겠느냐고 물어봅니다.
사용자가 명시적으로 저장하기 전에는, 입력한 내용을 메모리에만
기록하고 하드디스크에는 기록하지 않도록 프로그램을 만들었기
때문입니다. 그렇게 개발된 이유는 읽기/쓰기 속도가 하드 디스크보다
1,000배 이상 빠른 메모리에 기록하면 사용자의 작업 속도가 빨라지기
때문입니다. 하지만 사용자는 자신이 입력한 내용이 메모리에 저장되는지
하드디스크에 저장되는지 알 필요도 없고, 알지 못하는 경우가 많습니다.
컴퓨터의 메모장을 쓸 때는 실제 종이 메모장처럼 쓰면 언제나 내용이
남아있을 것으로 생각할 수 있습니다.
이철혁 | Why Software Sucks
65
소프트웨어 누가 이렇게 개떡같이 만든 거야 | 데이비드 S. 플랫 지음, 윤성준 역
출판사 인사이트 2008
참고할 책 오래가는 UX 디자인 (반준철)
개떡 같은 소프트웨어로 인한 사용자의 분노를 보여주는 책 표지
만약 실수로 아니오를 누른다면 열심히 작업한 내용이 하나도 남지 않고
사라지게 되는 상황이 저자는 사용자의 잘못이 아니라 소프트웨어가 개떡
같이 만들어져서라고 말하고 있습니다. 이외에도 소프트웨어와 웹페이지에
대한 여러 불편한 상황들을 설명하고 있는데 이 책 초반에 나오며, 책
뒤에 크게 강조되어 표시돼 있는 “그대의 사용자를 알라. 사용자는 그대가
아닐지니” 라는 말을 계속 떠오르게 합니다.
66
앱만장자
앱만장자라는 책 이름을 봤을 때 절묘하게 잘 지었다 하는 생각이
들었습니다. 억만장자와 비슷하게 들리는 이 책은 애플의 아이폰과 관련된
짧은 역사와 앱스토어의 탄생 배경을 설명하고 앱스토어를 통해 성공한
개발자들의 이야기를 알려주고 있습니다. 책 표지에 자극적으로 쓰여 있는
‘부를 거머쥔 인디 개발자들의 성공 비법’은 집중적으로 소개해주고 있는 5
개의 앱 개발자, 개발사들의 사례를 통해서 본다면 뜻밖에 단순하다는 것을
알 수 있게 됩니다.
그들에게는 왕도나 어떠한 은 총알(Silver Bullet)이 있었던 것은
아니었습니다.
일부는 애플이 앱스토어를 만들고 SDK를 공개하기 전부터 열정적으로
연구, 개발하여 미리 탈옥을 통해서 자신의 앱을 올리면서 재미를 느꼈던
준비된 자들이었습니다. 그리고 대부분 처음부터 성공하지 않았습니다.
누구나 알고 있으며 책의 표지로도 사용된 앵그리버드는 해당 개발사의
53번째 작품이었고, 그전의 52개의 작품은 조명 한 번 받아보지 못하고
실패하였습니다.
이 책은 다 읽었을 때 확실하게 앱 개발로 백만장자가 되는 법을
알려주지는 못하고, 특히나 [앱의 미래]편은 6페이지에 불과한 시류에
편승한 깊이 없는 책 같다는 생각이 들기도 합니다.
이철혁 | 부를 거머쥔 인디 개발자들의 성공 비법
67
앱만장자 | 크리스 스티븐스 지음, 김지량 역
출판사 제이펍 2012
책표지에 사용된 핀란드 벤처기업 로비오(ROVIO)사의 앵그리버드
하지만 기존의 성공사례가 미리 준비하고 최선을 다한 후에도 운이
좋아서 좋은 결과가 있었다는 점들은 깊이 생각해 볼만한 것으로
보입니다.
결국, 성공한 앱은 미리 준비하고 최선을 다하고 수많은 실패를 견디는
개발자를 통해서 나오는 것으로 알 수 있었습니다.
68
애자일 마스터
애자일이란 무엇인가요? 라는 질문을 받으면 주저 없이 술술 대답 할
수 있는 사람이 뜻밖에 많이 없으리라고 생각합니다. 많이 이야기되지만
위키에 언급된 대로 애자일 개발 프로세스란 어느 특정 개발 방법론을
가리키는 말은 아니고 애자일(Agile=기민한, 좋은 것을 빠르고 낭비 없게
만드는 것) 개발을 가능하게 해 주는 다양한 방법론 전체를 일컫는 말이기
때문일 것입니다.
애자일 마스터는 애자일에 대한 궁금증을 가진 사람이라면 직군과
관계없이 쉽게 볼 수 있게 설명된 책입니다. 초반 ‘애자일 팀 만나기’에서
팀원들이 자신의 담당 부분을 정해 전담하는 기존 방식과 다른 부분을
이야기하며, 우리는 하나의 팀이라는 마음 갖기, 스페셜리스트보다는
제너널리스트가 더 중요한 배경을 설명합니다. 실천 방안 중에서는 같은
공간에서 일하기가 있는데, PIXAR의 토이스토리2의 실패의 원인으로
같은 공간에서 일하지 않아 협동이 제대로 되지 않은 것으로 보고 새로운
스튜디오를 지어서 모두 한지붕 아래서 일하도록 하였다고 합니다. 최근
페이스북의 새로운 캠퍼스가 비슷한 방식으로 만들어진다고 하니, 한
팀이 같은 공간에서 일하는 것이 가장 기본적인 시작이라고 볼 수 있을 것
같습니다.
이철혁 | 프로젝트 인셉션 추정과 계획 그리고 실행
69
애자일 마스터 | 조너선 라스무슨 지음, 최보나 역
출판사 인사이트 2012
원서 제목이 AGILE SAMURAI 이기에 사무라이가 표지그림이다.
그리고 많은 프로젝트가 실패하는 이유를 초반에 서로의 성공에 대한
생각을 일치시키지 못한 상태에서 진행되어서 그런 것이라고 판단하고
‘인셉션덱’이라는 도구를 이용해서 프로젝트를 진행하는 초기에 확인하고
점검하는 것을 권장합니다. 엘리베이터 피치 등 10가지의 질문으로
이루어진 ‘인셉션덱’은 책에 자세히 설명되어 있습니다. 평소 애자일에
관심이 많다면 그림과 표가 많이 있어서 지루하지 않게 내용을 확인할 수
있습니다.
70
읽기 좋은 코드가 좋은 코드다
프로그래밍을 모르는 분들이 프로그램 코드를 본다면 “우와~ 이게
다 뭐야” 라는 소리를 내며 이해하기가 어려울 것입니다. 거의 모든
프로그래밍 언어는 영어로 되어 있기 때문에, 일단 모국어가 영어가 아닌
곳에서는 쉽게 접근/이해하기가 어렵습니다. 우리나라의 경우 1994년에
탄생한 ‘씨앗’이라는 한글로 프로그래밍할 수 있는 언어가 발표되었지만,
크게 인기를 끌지는 못하였습니다. 하지만 프로그래밍 언어를 아는
프로그래머들도 다른 프로그래머가 짠 코드를 볼 때 똑같은 상황이 발생할
수도 있습니다. 그래서 정부기관이나 회사에서 프로젝트를 진행할 때
기존 프로그램의 코드들을 유지/보수하지 못해서 막대한 비용을 들여가며
새롭게 개발하는 경우도 많이 발생합니다. 그 이유는 무엇 때문일까요?
먼저 프로그래밍 언어의 코드는 숨겨져 있고 결과만 드러나게 되기에,
내부 코드가 상관없이 어떻게든 결과만 나오면 된다는 결과 지상주의에
빠지기 쉽습니다. 그래서 나오는 화면/결과와 코드 품질과의 관련은 없을
수 있습니다. 또한, 프로그래머가 되기 위해서 프로그래밍 언어를 사용하는
방법과 개발방법론, 보안, 최적화에 대한 교육과 노력을 하는 데 비해
코딩스타일에 대한 부분은 거의 진행이 되지 않기 때문에 각자만의 방법과
스타일에 익숙해지게 됩니다. 따라서 프로그래밍을 막 시작한 이들에게
아주 좋은 책이 되리라 생각합니다.
이철혁 | 더 나은 코드를 작성하는 간단하고 실전적인 테크닉
71
읽기 좋은 코드가 좋은 코드다 | 더스틴 보즈웰, 트레버 파우커 지음, 임백준 역
출판사 한빛미디어 2012
참고할 책 완벽한 코드작성을 위한 클린 코드 (로버트 C 마틴)
얇은 책이지만 왜 읽기 좋은 코드가 좋은 코드인지를 설명하고,
실제로 프로그래밍에 적용하는 방법과 팁들, 그리고 실제 코드를 바탕으로
바꾸는 모습을 보여줌으로써 자연스럽게 자신의 프로그래밍에 적용하게
끔 유도하고 있습니다. 또한, 간간히 나오는 삽화가 너무 재미있어서 책을
보는 또 하나의 재미를 선사해줍니다.
꼭 코드를 다른 사람을 위해서 잘 짜야 하는 것은 아닙니다. 일관된
규칙과 스타일을 가지고 있지 않다면, 좋지 않는 습관과 스타일을 가지고
있다면, 세월이 흐른 뒤에 자신의 코드를 보고도 이해하지 못하는 상황은
발생할 수 있습니다. 남을 위해서라도 자신을 위해서라도 읽기 좋은 코드가
좋은 코드라는 말을 명심하고 프로그래밍을 하도록 합시다.
72
프로그래머, 열정을 말하다
먼저 책 표지에 다른 IT서적과 다르게 악기인 색소폰이 등장합니다.
번역본의 표지는 원서의 책 표지와 크게 다르지 않은 느낌을 주지만
색소폰의 방향이 반대이며 번역본에는 없는 부제가 적혀 있습니다.
부제인 ‘CREATING A REMARKABLE CAREER IN SOFTWARE
DEVELOPMENT’ (소프트웨어 개발에서 뛰어난 경력 만들기)를 보면
자기 개발서 같다는 생각이 듭니다. 이렇게 남다른 표지 뒤에는 한때 전문
색소폰 연주자였다가 프로그래머가 된 저자의 이력이 숨어있습니다. 다소
독특한 경력이 있기에 처음부터 프로그래머의 길을 선택한 사람들이 보지
못한 부분을 이야기로 만들어 설득력 있게 전달하고 있습니다.
출판업계에는 수많은 자기계발서 들이 출간되고 있고, 어찌 보면 이
책도 프로그래머만을 대상으로 만들어지는 자기계발서 중 한 권에 불과
할 수 있습니다. 하지만 다른 자기계발서에서 볼 수 없는 프로그래머만의
이야기를 하고 있기 때문에 이 책 자체가 1장에 언급한 ‘당신의 시장을
선택하라’ 중 틈새시장을 잘 공략한 것으로 보입니다. 이 책에서 제공하는
53개의 짧은 이야기들은 프로그래머가 되고 싶어하는 분들에게는 훌륭한
방향성을 제공해주고, 이미 본업에서 근무하고 계신 분들에게는 신선한
자극이 되어 줄 것입니다.
이철혁 | The passionate programmer
73
프로그래머, 열정을 말하다 | 채드 파울러 지음,송우일 역
출판사 인사이트 2012
참고할 책 프로그래머로 사는 법 (샘 라이트스톤)
이번 개정판 전 한국어판 책 제목이기도 했던 10장 “사랑하지 않으면
떠나라”는 재즈 색소폰의 대가 존 콜트레인이 입술에 피가 나도록 연습한
이야기를 소개하면서 프로그래머가 지녀야 할 열정에 대해 따끔하게
지적하고 있습니다.
또한, 중간에 나오는 다른 프로그래머들의 훌륭한 사례들은 본문의
내용이 없다 하더라도 이 책을 읽는 이유가 되기에 충분합니다.
특히 Github 에서 전업으로 일하려고 MS의 연봉 외 30만 달러 추가 지급
제안을 거절한 이야기는 프로그래머를 선택한 이유와 앞으로의 방향에
대해서 깊이 생각해보게 합니다. 채드 파울러는 켄트백 저의 <익스트림
프로그래밍(Extreme Programming Explained)> 을 서점에서 우연히
읽은 것을 계기로 인생의 큰 변화를 맞게 되었습니다. 여러분들도 이 책을
통해서 프로그래머로서의 미래에 대한 자세와 생각을 돌아볼 기회가 되면
좋겠습니다.
74
IT일반
•	 프로그래머, 열정을 말하다 | 채드 파울러, 인사이트(insight), 2012
•	 Beautiful Software | Chuck Connell, CreateSpace, 2011
•	 린과 애자일 개발 | 크레이그 라만, 케이앤피북스, 2012
•	 애자일 마스터 | 조너선 라스무슨, 인사이트(insight), 2012
•	 읽기 좋은 코드가 좋은 코드다 | 더스틴 보즈웰, 한빛미디어, 2012
•	 오브젝티브-C 프로그래밍 | 아론 힐리가스, 제이펍,  2012
•	 Head First Statistics | 돈 그리피스, 한빛미디어, 2012
•	 성공하는 애자일 | 마이크 콘, 인사이트(insight), 2012
•	 프로그래머가 알아야 할 97가지 | Kevlin Henney, 志&嬋, 2012  
•	 아름다운 시각화 | 줄리 스틸,노아 , 인사이트(insight), 2012
•	 자바7 NIO.2 | 앵겔 레너드, 한빛미디어,  2012
•	 좋아 보이는 것들의 비밀 Good Design | 최경원, 길벗, 2012
•	 프로그래머로 사는 법 | 샘 라이트스톤, 한빛미디어, 2012
•	 프로그래머로 산다는 것 | 유석문·황상철, 로드북, 2012
•	 토비의 스프링 3.1 세트 | 이일민, 에이콘출판사, 2012
•	 린 스타트업 | 에릭 리스, 인사이트(insight), 2012
•	 린 스타트업 | 애시 모리아, 한빛미디어, 2012
•	 리팩토링 | 마틴 파울러, 한빛미디어,  2012
•	 초난감 기업의 조건 | 릭 채프먼, 에이콘출판사, 2012
•	 똑똑한 정보 밥상 | 클레이 존슨, 에이콘출판사, 2012
Book selector 이철혁의 2012 전체 추천 도서 리스트

Mais conteúdo relacionado

Semelhante a 2011~2012 소프트웨어 관련도서 추천 리뷰 모음

『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기복연 이
 
개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님NAVER D2
 
『Effective Unit Testing』 - 맛보기
『Effective Unit Testing』 - 맛보기『Effective Unit Testing』 - 맛보기
『Effective Unit Testing』 - 맛보기복연 이
 
Book report apprenticeship patterns
Book report  apprenticeship patternsBook report  apprenticeship patterns
Book report apprenticeship patternsMunsu Kim
 
『파이썬 라이브러리를 활용한 머신러닝』 맛보기
『파이썬 라이브러리를 활용한 머신러닝』 맛보기『파이썬 라이브러리를 활용한 머신러닝』 맛보기
『파이썬 라이브러리를 활용한 머신러닝』 맛보기복연 이
 
SWDeveloprStory201601
SWDeveloprStory201601SWDeveloprStory201601
SWDeveloprStory201601Suho Kwon
 
SWDeveloperStory201502
SWDeveloperStory201502SWDeveloperStory201502
SWDeveloperStory201502Suho Kwon
 
[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심문제해결(Ver1)"
[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심문제해결(Ver1)"[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심문제해결(Ver1)"
[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심문제해결(Ver1)"thecirclefoundation
 
[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심 문제해결 방법"
[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심 문제해결 방법"[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심 문제해결 방법"
[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심 문제해결 방법"thecirclefoundation
 
성장하는 서버 개발자 되기 - Wanted Livetalk
성장하는 서버 개발자 되기 - Wanted Livetalk성장하는 서버 개발자 되기 - Wanted Livetalk
성장하는 서버 개발자 되기 - Wanted LivetalkKyuhyun Byun
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Aree Oh
 
UX 디자인 7가지 비밀: 비밀 4
UX 디자인 7가지 비밀: 비밀 4UX 디자인 7가지 비밀: 비밀 4
UX 디자인 7가지 비밀: 비밀 4Nammin Lee
 
개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기Lee WonJae
 
디자인과 문화_기말 논문
디자인과 문화_기말 논문디자인과 문화_기말 논문
디자인과 문화_기말 논문Kyung Yun
 
​『골빈해커의 3분 딥러닝』 맛보기
​『골빈해커의 3분 딥러닝』 맛보기​『골빈해커의 3분 딥러닝』 맛보기
​『골빈해커의 3분 딥러닝』 맛보기복연 이
 
소프트웨어개발자이야기 2017 p2
소프트웨어개발자이야기 2017 p2소프트웨어개발자이야기 2017 p2
소프트웨어개발자이야기 2017 p2Suho Kwon
 
객체지향이란? - <객체지향의 사실과 오해>를 읽고
객체지향이란? - <객체지향의 사실과 오해>를 읽고객체지향이란? - <객체지향의 사실과 오해>를 읽고
객체지향이란? - <객체지향의 사실과 오해>를 읽고HeechanLee6
 
회사에서 기술서적을 읽는다는것
회사에서 기술서적을 읽는다는것회사에서 기술서적을 읽는다는것
회사에서 기술서적을 읽는다는것성환 조
 
스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기Hyun-woo Park
 

Semelhante a 2011~2012 소프트웨어 관련도서 추천 리뷰 모음 (20)

『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기
 
개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님
 
『Effective Unit Testing』 - 맛보기
『Effective Unit Testing』 - 맛보기『Effective Unit Testing』 - 맛보기
『Effective Unit Testing』 - 맛보기
 
Book report apprenticeship patterns
Book report  apprenticeship patternsBook report  apprenticeship patterns
Book report apprenticeship patterns
 
『파이썬 라이브러리를 활용한 머신러닝』 맛보기
『파이썬 라이브러리를 활용한 머신러닝』 맛보기『파이썬 라이브러리를 활용한 머신러닝』 맛보기
『파이썬 라이브러리를 활용한 머신러닝』 맛보기
 
SWDeveloprStory201601
SWDeveloprStory201601SWDeveloprStory201601
SWDeveloprStory201601
 
SWDeveloperStory201502
SWDeveloperStory201502SWDeveloperStory201502
SWDeveloperStory201502
 
[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심문제해결(Ver1)"
[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심문제해결(Ver1)"[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심문제해결(Ver1)"
[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심문제해결(Ver1)"
 
[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심 문제해결 방법"
[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심 문제해결 방법"[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심 문제해결 방법"
[동그라미재단] ㄱ찾기 - 적정기술미래포럼 "인간중심 문제해결 방법"
 
성장하는 서버 개발자 되기 - Wanted Livetalk
성장하는 서버 개발자 되기 - Wanted Livetalk성장하는 서버 개발자 되기 - Wanted Livetalk
성장하는 서버 개발자 되기 - Wanted Livetalk
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정
 
UX 디자인 7가지 비밀: 비밀 4
UX 디자인 7가지 비밀: 비밀 4UX 디자인 7가지 비밀: 비밀 4
UX 디자인 7가지 비밀: 비밀 4
 
개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기
 
디자인과 문화_기말 논문
디자인과 문화_기말 논문디자인과 문화_기말 논문
디자인과 문화_기말 논문
 
​『골빈해커의 3분 딥러닝』 맛보기
​『골빈해커의 3분 딥러닝』 맛보기​『골빈해커의 3분 딥러닝』 맛보기
​『골빈해커의 3분 딥러닝』 맛보기
 
소프트웨어개발자이야기 2017 p2
소프트웨어개발자이야기 2017 p2소프트웨어개발자이야기 2017 p2
소프트웨어개발자이야기 2017 p2
 
객체지향이란? - <객체지향의 사실과 오해>를 읽고
객체지향이란? - <객체지향의 사실과 오해>를 읽고객체지향이란? - <객체지향의 사실과 오해>를 읽고
객체지향이란? - <객체지향의 사실과 오해>를 읽고
 
회사에서 기술서적을 읽는다는것
회사에서 기술서적을 읽는다는것회사에서 기술서적을 읽는다는것
회사에서 기술서적을 읽는다는것
 
AKC2020 marimba 마주연
AKC2020 marimba 마주연AKC2020 marimba 마주연
AKC2020 marimba 마주연
 
스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기
 

Mais de Choulhyouc Lee

Baidu push 연동하기
Baidu push 연동하기Baidu push 연동하기
Baidu push 연동하기Choulhyouc Lee
 
알고리듬? 알고리즘?
알고리듬? 알고리즘?알고리듬? 알고리즘?
알고리듬? 알고리즘?Choulhyouc Lee
 
Network 초보자를 위한 Netty
Network 초보자를 위한 NettyNetwork 초보자를 위한 Netty
Network 초보자를 위한 NettyChoulhyouc Lee
 
디자이너를위한Git #1/2
디자이너를위한Git #1/2디자이너를위한Git #1/2
디자이너를위한Git #1/2Choulhyouc Lee
 
가장 쉬운 안드로이드 앱 개발 방법 앱인벤터
가장 쉬운 안드로이드 앱 개발 방법 앱인벤터가장 쉬운 안드로이드 앱 개발 방법 앱인벤터
가장 쉬운 안드로이드 앱 개발 방법 앱인벤터Choulhyouc Lee
 

Mais de Choulhyouc Lee (6)

Android camera basics
Android camera basicsAndroid camera basics
Android camera basics
 
Baidu push 연동하기
Baidu push 연동하기Baidu push 연동하기
Baidu push 연동하기
 
알고리듬? 알고리즘?
알고리듬? 알고리즘?알고리듬? 알고리즘?
알고리듬? 알고리즘?
 
Network 초보자를 위한 Netty
Network 초보자를 위한 NettyNetwork 초보자를 위한 Netty
Network 초보자를 위한 Netty
 
디자이너를위한Git #1/2
디자이너를위한Git #1/2디자이너를위한Git #1/2
디자이너를위한Git #1/2
 
가장 쉬운 안드로이드 앱 개발 방법 앱인벤터
가장 쉬운 안드로이드 앱 개발 방법 앱인벤터가장 쉬운 안드로이드 앱 개발 방법 앱인벤터
가장 쉬운 안드로이드 앱 개발 방법 앱인벤터
 

2011~2012 소프트웨어 관련도서 추천 리뷰 모음

  • 1. 54 “나에게 책은 올라설 수 있는 거인의 어깨” Book selector 이철혁 아이작 뉴턴이 인용한 “내가 더 멀리 봤다면, 그것은 거인들의 어깨에 올라섰기 때문이다”( if i have seen further it is by standing on the shoulders of giants)는 나의 성과가 오롯이 나의 재능에 기인한 것이 아니라, 이전 세대의 결과,경험을 바탕으로 얻은 것임을 이야기합니다. 훌륭한 책을 통해 다양한 지식,경험을 얻을 수 있기에, 책이야말로 그 어떤 것 보다 쉽게 올라설 수 있는 거인의 어깨가 아닐까요? 많이 읽고,생각을 나누고, 조금씩 실행하며 자신만의 경험을 쌓을 때, 조금 더 멀리 볼 수 있으리라 생각합니다.
  • 2. 55 Book selector’s pick 이철혁 | blog.naver.com/msql | facebook.com/nemofinder 어린시절 우연히 접한 컴퓨터에 사로잡혀 그 외의 길은 생각도 못해보고 컴퓨터공학과를 나와 IT회사에서만 15년째 일하고 있는 개발자. 개발 서적 외에도 다양한 책을 읽고 의견 나누는 것을 좋아해 함께 책을 읽고 토론하는 모임을 개설/운영 중! 1 리팩토링 코드 품질을 개선하는 객체지향 사고법 2 빅데이터의 충격 (거대한 데이터의 파도가 사업 전략을 바꾼다) 3 헤드 퍼스트 데이터 분석 (당신을 최고의 데이터 분석가로 이끌어줄 마법 같은 학습서) 4 왓슨 인간의 사고를 시작하다 5 소프트웨어 누가 이렇게 개떡같이 만든 거야 6 앱만장자 (부를 거머쥔 인디 개발자들의 성공 비법) 7 애자일 마스터 (프로젝트 인셉션 추정과 계획 그리고 실행) 8 읽기 좋은 코드가 좋은 코드다 (더 나은 코드를 작성하는 간단하고 실전적인 테크닉) 9 프로그래머, 열정을 말하다
  • 3. 56 리팩토링 (REFACTORING) 최근 화제인 린스타트업에서는 비즈니스의 방향을 기존의 “Ready- Aim-Fire” 구조에서 “Ready-Fire-Aim”로의 전환을 이야기하고 있습니다. 가설을 완벽히 실험하고 검증한 후 시장에 출시할 수 없기에 출시한 후 실제 시장의 피드백을 반영하는 것인데요. 이는 이미 마틴 파울러가 1999년에 쓴 이 책에 나와있는 “완벽한 설계를 할 수 없고 완벽한 설계를 한다고 해도 시간의 흐름에 따라 변화가 일어나기에 리팩토링이 필수”라는 글을 떠올리게 합니다. 리팩토링은 겉으로 드러나는 기능은 그대로 둔 채, 알아보기 쉽고 수정하기 간편하게 소프트웨어를 수정/ 구조를 변경하는 작업으로 이를 통해 소프트웨어 설계가 개선되어 이해가 쉬워지고 버그를 찾기가 쉬워집니다. 또한 빈틈없는 코드를 훨씬 효과적으로 작성할 수 있기에 저자가 리팩토링을 코드를 깔끔하게 만드는 것 이상의 순기능을 하며 소프트웨어 개발 과정의 핵심 요소라고 강조하는 이유입니다. 하지만 실무에서는 아직 많이 정착되지 않았는데 이는 이 책의 13장에서 언급한 4가지 이유와 해법이 바로 현장의 상황을 말하는 것 같아 요약해 옮겨 봅니다. 1) 리팩토링을 어떻게 해야 할지 모르겠다. : 사람은 경험 없이 깨닫지 못하고 도구와 기법도 사용할 때나 도움이 되기에 코드를 리팩토링하면 할수록 더 깊게 넓게 이해하게 됩니다. 따라서 가볍고 작은 리팩토링부터 시도해보기를 권장합니다. 이철혁 | 코드 품질을 개선하는 객체지향 사고법
  • 4. 57 리팩토링 | 마틴 파울러 지음, 김지원 역 출판사 한빛미디어 2010 참고할 책 GOF의 디자인 패턴 (에릭 감마, 리처드 헬름 외 2명) 2) 리팩토링 장점은 오랜 시간이 흘러야 가시화될 테고, 그때가 되면 프로젝트 팀원도 아닐텐데 해야 하나? : 리팩토링을 하면 단기적인 긍정적 효과를 얻을 수 있고 수정과 유지보수가 간편해집니다.켄드 백 처럼 훌륭한 프로그래머도 “난 뛰어난 프로그래머는 아니고, 단지 습관을 잘 들인 착실한 프로그래머다”라고 말하는 것을 볼 때, 리팩토링을 습관처럼 있다면 훌륭한 프로그래머라고 할 수 있을 것입니다. 3) 코드를 리팩토링 하는 일은 추가적인 부담이다. : 경험상 리팩토링으로 인한 추가 부담은 프로그램의 각 개발 단계마다 줄어든 수고와 시간을 상쇄하고도 남습니다. 4) 리팩토링하다가 괜히 멀쩡한 프로그램을 망가뜨릴까 걱정된다. : 리팩토링을 하면 이전부터 있던 버그도 쉽게 찾아 수정할 수 있습니다. 이 책은 중복코드, 장황한 메서드, 방대한 클래스 등 코드에서 많이 볼 수 있었던 구린내로 표현되는 22가지 리팩토링이 필요한 상태를 제시하고, 해당의 상황에 대해 저자와 주변 분들이 몇 년간 수정하고 보완한 리팩토링 목록에서 찾아서 적용하는 방식으로 사용할 수 있습니다. 하지만 리팩토링이 꼭 필요한 시점이나 상황에 대한 정확한 기준을 제시하진 않습니다. 이는 사람의 직감보다 뛰어난 기준은 없기 때문에 충분한 연습을 통해 감을 잡는 방법 외에는 없지만 이 책을 참고하면 최소한 방향만큼은 제대로 잡게 될 것입니다.
  • 5. 58 빅데이터의 충격 파코 언더힐의 저서 <쇼핑의 과학>에서 고객을 분석하기 위해 매년 5~7만 명의 쇼핑객들을 인터뷰하고 2만 시간이 넘는 비디오 촬영을 통해 고객과 매장의 모습을 기록했습니다. 또한 복장, 손짓, 눈짓 등 우리가 생각할 수 있는 모든 행동을 낱낱이 분석하여 제품과 매장의 개혁에 꼭 필요한 정보를 추출한다고 하였습니다. 여기서 인터뷰와 비디오 등 메모는 전부 데이터(Data) 입니다. 데이터(Data)는 사전적 의미가 단순히 의미 없는 기록에 불과하듯, 데이터는 아무리 많아도 정보가 되지 못한다면 의미가 없습니다. 데이터들을 분석, 추출, 가공 등의 작업을 통해 판단에 도움이 되고 의미가 부여될 때 비로소 정보(Information)가 됩니다. 하지만 데이터가 없거나 충분하지 않다면 정보의 품질에도 문제가 생길 수 있을 것입니다. 앞의 예에서는 많은 데이터를 사람이 모으고 분석, 추출, 가공하였지만 스마트폰 등 디바이스와 센서 등이 발전하여 폭발적으로 생성되는 데이터를 사람이 다루기에는 한계가 있는 것 같습니다. 빅데이터(Big Data)라는 단어 때문에 데이터의 양만 생각하기 쉽지만 책에서는 데이터의 양(Volume)이 너무 많고, 몇 가지 형식에 맞출 수 없는 데이터의 다양성(Variety), 데이터가 쌓이는 속도(Velocity)를 따라 잡을 수 없어서 사용할 수 없었던 데이터들을 ‘빅데이터’라 정의합니다. 이철혁 | 거대한 데이터의 파도가 사업 전략을 바꾼다
  • 6. 59 빅데이터의 충격 | 시로타 마코토 지음, 김성재 역 출판사 한빛미디어 2013 참고할 책 시작하세요 하둡 프로그래밍 (정재화) 또한 넓게는 처리 기술과 인재, 조직 등을 다 포함하는 단어로 정의하고자 합니다. 이런 데이터들이 컴퓨터의 가격 대비 성능이 향상되고, 저장장치의 가격 하락의 바탕에 하둡 등 대규모 데이터분산처리 기술이 등장함으로써 다룰 수 있게 되었다고 합니다. 이 책은 이렇게 빅데이터에 대해 안내하고 이해를 높이면서 기반 기술을 소개하고 있는데 빅데이터에 대해 궁금했던 분들이라면 꼭 IT업계 종사자가 아니더라도 쉽게 설명하고 있어서 편하게 볼 수 있을 것 같습니다. 264페이지의 얇은 책에서 빅데이터를 얼마나 다룰 수 있을지에 대한 의문이 있었지만 전문적인 기술적인 부분을 제외하고 이해와 실제 사례, 활용패턴, 개인정보보호 등 많은 부분에 대한 자료와 통찰을 쉽게 볼 수 있었고 회사에서 사용되는 사례 소개에서 IT 회사가 아닌 건설기계 제조회사, 맥도날드, 운송회사 등도 소개 되고 있기에 해당 사례를 통해 우리 회사, 내가 적용해 볼 수 있는 부분도 생각해보는 동기가 되었습니다. 특히 개인정보보호 부분은 데이터를 이용하려는 회사가 아닌 이용자로서 수집되는 데이터에 대한 경각심과 생각을 해보는 시간이 되었습니다. 책을 다 읽고 가장 중요한 것은 이제까지 무시했던 데이터의 가치를 깨닫는 것이고 이를 통해 더욱 정확한 판단을 위한 정보로 사용하는 것이라는 것을 배울 수 있었습니다.
  • 7. 60 헤드 퍼스트 데이터 분석 점점 사회가 정보화로 진행되고, 정보의 공개및 공유가 많아지면서 사용할 수 있는 데이터의 양은 폭발적으로 증가하고 있습니다. 이제는 데이터가 없거나 충분하지 못해 문제가 생기는 경우보다 어떠한 데이터를, 어떻게 사용해야 할지에 대한 고민이 커지는 것 같습니다. 이러한 시점에 데이터 분석에 대한 기본을 배울 수 있지 않을까 하는 기대로 책을 읽기 시작했는데 결과부터 말하자면 만족할 만한 결과를 얻을 수 있었습니다. 1장 입문에서 가상 회사의 데이터를 이용해 매출의 시장 목표치를 넘어서는 방안을 도출함으로써 데이터 분석이 효과를 거둔 것으로 보이게 하지만 바로 2장에서는 관찰한 데이터, 기존의 데이터가 아닌 실험을 통해 얻은 데이터로 문제를 해결하는 것을 보여줌으로써 데이터 분석 작업이 기존 데이터를 분석하는 것에 그치는 것이 아님을 알려 주고 있습니다. 가상의 커피 회사의 매출 인상을 위해 커피의 가치를 설득한 그룹, 가격을 인하한 그룹, 아무것도 시행하지 않은 그룹을 바탕으로 커피의 가치를 설득하는 것이 매출을 늘리는 것임을 결정하며 분석 및 통계의 가장 기본적인 원칙은 비교법이라 말하는 이유를 알게 해 줍니다. 6장 베이지안 통계와 8장 휴리스틱 분석은 행동 경제학 서적을 읽었다면 너무나 반가울 만한 부분으로 희소병에 걸린 확률에 대한 문제가 도마뱀 독감으로, 휴리스틱과 알고리즘 사고를 쓰레기 배출량을 줄이기 위한 캠페인으로 설명되고 있습니다. 이철혁 | 당신을 최고의 데이터 분석가로 이끌어줄 마법 같은 학습서
  • 8. 61 헤드 퍼스트 데이터 분석 | 마이클 밀튼, 김경태 역 출판사 한빛미디어 2013 참고할 책 Head First Statistics (돈 그리피스) 또한, 이론적인 부분이나 각자 종이로 해보는 것뿐만 아니라 각종 툴에 대해서도 소개하고 실습할 수 있도록 다루고 있습니다. 3장에서 요인을 조작해 원하는 것을 최대한으로 얻을 수 있는 최적점을 찾는 최적화를 배우며 MS 오피스의 엑셀의 해찾기 기능을 통해 복잡한 계산 없이 최적점을 찾는 과정을 배울 수 있었습니다. 9장에서 데이터의 분포, 변동성 중심 집중 경향을 측정할 수 있도록 사용되는 히스토그램을 배우며 통계 계산 도구의 미래가 될 수 있는 무료 오픈 소스 프로그램 R을 소개, 설치, 사용하게 됩니다. 예상외로 데이터 분석에만 속한 것이 아니라 전반적으로 사고하는 법, 문제 해결에 대한 과정들을 배울 수 있을 뿐만 아니라 4장의 데이터 시각화에서 제일 중요한 것은 적절한 비교를 말한다는 부분과 5장 가설 검증에서 확인되지 않은 가설을 제거하는 반증법을 배운 것이 저에게 제일 유익했습니다. Head First의 서적답게 많은 사진과 그림, 도표가 가득하기에 488 페이지라는 게 믿기지 않을 정도로 쉽게 읽을 수 있었고, 각 장에서 배워야 할 내용은 실무에서도 있을 법한 해결해야 할 목표가 스토리로 제공되기에 지루하지 않게 읽고 배울 수 있었습니다. 스토리에 몰입해서 예제를 같이 실습하고, 결과를 보기 전에 한번 더 생각해본다면 실제 업무에서도 큰 도움을 줄 수 있으라 봅니다.
  • 9. 62 왓슨 인간의 사고를 시작하다 1997년 5월 7일, IBM이 체스 세계챔피언 게리 카스파로프와의 대결을 위해 개발한 컴퓨터 딥블루로 승리함으로써 인간을 이긴 컴퓨터로서 유명합니다. 그로부터 14년이 흐른 2011년, IBM은 체스에 이어 퀴즈쇼 ‘제퍼디’ 에 컴퓨터 왓슨을 퀴즈쇼 역사상 가장 뛰어난 2명의 챔피언과 나란히 대결할 도전자로 내놓았습니다. 이는 딥블루와 비교가 되지 않을 엄청난 일이라고 할 수 있습니다. 딥블루는 과거 챔피언들의 기록과 현재 상황을 비교하고 시뮬레이션함으로써 최적의 수를 뽑아내는 수준이었습니다. 하지만 퀴즈쇼에서는 단답형의 질문이 아닌 복잡하고 은유적인 표현과 위트, 말장난 등 인간으로서도 어려운 문제를 제대로 이해하여야 하고 인터넷사용 없이 내장된 지식만으로 답을 찾아내야만 합니다. 초창기 컴퓨터 과학자들은 인간의 언어를 학습시키고 그걸 바탕으로 책과 지식을 공부하면 인공지능이 곧 완성될 것으로 생각하였으나, 여전히 인간의 언어조차 제대로 이해하지도 못하는 수준입니다. 결국, 왓슨도 인간의 언어를 정확하고 이해하고 그에 필요한 정답을 찾는 시스템으로 완성되지 못했습니다. 여러 시행착오 끝에 100가지 이상의 알고리즘을 동시에 실행시켜서 나온 결과물 중 가장 신뢰도가 높은 답을 정답으로 선택하는 방식으로 개발하게 돼 확신하는 만큼 금액을 베팅하고 운영하는 부분을 추가하여 퀴즈쇼에 출전하게 됩니다. 이철혁 | MAN VS MACHINE
  • 10. 63 왓슨 인간의 사고를 시작하다 | 스티븐 베이커 지음, 이창희 역 출판사 세종서적 2011 실제 퀴즈쇼 “제퍼디” 의 진행 모습 하지만 이렇게 시스템이 점점 발전하면 어떻게 될까요? 콜센터의 전화상담 등 많은 일을 왓슨이 대신할 수 있지 않을까요? 그러면 인간은 좀 더 인간만이 할 수 있는 쪽의 일에 집중할 수 있게 되는지, 단순히 산업혁명처럼 일자리를 뺏기는 것인지 생각할 부분을 남겨두게 됩니다. 이 책은 점점 퀴즈에 강해지는 왓슨을 보면서 현재 인공지능 기술 수준과 문제 해결방법을 흥미롭게 보고 배울 수 있어서 추천하게 되었습니다.
  • 11. 64 소프트웨어 누가 이렇게 개떡같이 만든 거야 이 책은 상당히 자극적인 제목에 비해 ‘사용성을 제대로 이해하는 유쾌한 통찰’ 이라는 얌전한 부제를 가지고 소프트웨어를 사용하면서 겪는 불편한 여러 가지 상황을 통해 사용자가 진정 원하는 것이 무엇인지 생각하게 해줍니다. 많은 UX관련 책들과 다른 점은 개발자와 사용자를 위주로 쓰인 책이라는 점인데, 저자가 마이크로소프트가 선정한 ‘Software Legend’ 로서 많은 프로그래밍 책과 강의를 하는 것을 안다면 당연하다고 여길 부분이기도 합니다. 개발자에게도 사용성을 생각하는 능력이 요구되는 시대에 한 번쯤 읽어보시길 권하고 싶습니다. 불편한 상황이라고 소개를 하는 많은 예 중 가장 인상 깊었던 하나를 소개합니다. MS Windows 환경에서 가장 많이 쓰이는 문서작성 도구인 메모장은 내용을 입력하고 닫기를 누르면 저장하겠느냐고 물어봅니다. 사용자가 명시적으로 저장하기 전에는, 입력한 내용을 메모리에만 기록하고 하드디스크에는 기록하지 않도록 프로그램을 만들었기 때문입니다. 그렇게 개발된 이유는 읽기/쓰기 속도가 하드 디스크보다 1,000배 이상 빠른 메모리에 기록하면 사용자의 작업 속도가 빨라지기 때문입니다. 하지만 사용자는 자신이 입력한 내용이 메모리에 저장되는지 하드디스크에 저장되는지 알 필요도 없고, 알지 못하는 경우가 많습니다. 컴퓨터의 메모장을 쓸 때는 실제 종이 메모장처럼 쓰면 언제나 내용이 남아있을 것으로 생각할 수 있습니다. 이철혁 | Why Software Sucks
  • 12. 65 소프트웨어 누가 이렇게 개떡같이 만든 거야 | 데이비드 S. 플랫 지음, 윤성준 역 출판사 인사이트 2008 참고할 책 오래가는 UX 디자인 (반준철) 개떡 같은 소프트웨어로 인한 사용자의 분노를 보여주는 책 표지 만약 실수로 아니오를 누른다면 열심히 작업한 내용이 하나도 남지 않고 사라지게 되는 상황이 저자는 사용자의 잘못이 아니라 소프트웨어가 개떡 같이 만들어져서라고 말하고 있습니다. 이외에도 소프트웨어와 웹페이지에 대한 여러 불편한 상황들을 설명하고 있는데 이 책 초반에 나오며, 책 뒤에 크게 강조되어 표시돼 있는 “그대의 사용자를 알라. 사용자는 그대가 아닐지니” 라는 말을 계속 떠오르게 합니다.
  • 13. 66 앱만장자 앱만장자라는 책 이름을 봤을 때 절묘하게 잘 지었다 하는 생각이 들었습니다. 억만장자와 비슷하게 들리는 이 책은 애플의 아이폰과 관련된 짧은 역사와 앱스토어의 탄생 배경을 설명하고 앱스토어를 통해 성공한 개발자들의 이야기를 알려주고 있습니다. 책 표지에 자극적으로 쓰여 있는 ‘부를 거머쥔 인디 개발자들의 성공 비법’은 집중적으로 소개해주고 있는 5 개의 앱 개발자, 개발사들의 사례를 통해서 본다면 뜻밖에 단순하다는 것을 알 수 있게 됩니다. 그들에게는 왕도나 어떠한 은 총알(Silver Bullet)이 있었던 것은 아니었습니다. 일부는 애플이 앱스토어를 만들고 SDK를 공개하기 전부터 열정적으로 연구, 개발하여 미리 탈옥을 통해서 자신의 앱을 올리면서 재미를 느꼈던 준비된 자들이었습니다. 그리고 대부분 처음부터 성공하지 않았습니다. 누구나 알고 있으며 책의 표지로도 사용된 앵그리버드는 해당 개발사의 53번째 작품이었고, 그전의 52개의 작품은 조명 한 번 받아보지 못하고 실패하였습니다. 이 책은 다 읽었을 때 확실하게 앱 개발로 백만장자가 되는 법을 알려주지는 못하고, 특히나 [앱의 미래]편은 6페이지에 불과한 시류에 편승한 깊이 없는 책 같다는 생각이 들기도 합니다. 이철혁 | 부를 거머쥔 인디 개발자들의 성공 비법
  • 14. 67 앱만장자 | 크리스 스티븐스 지음, 김지량 역 출판사 제이펍 2012 책표지에 사용된 핀란드 벤처기업 로비오(ROVIO)사의 앵그리버드 하지만 기존의 성공사례가 미리 준비하고 최선을 다한 후에도 운이 좋아서 좋은 결과가 있었다는 점들은 깊이 생각해 볼만한 것으로 보입니다. 결국, 성공한 앱은 미리 준비하고 최선을 다하고 수많은 실패를 견디는 개발자를 통해서 나오는 것으로 알 수 있었습니다.
  • 15. 68 애자일 마스터 애자일이란 무엇인가요? 라는 질문을 받으면 주저 없이 술술 대답 할 수 있는 사람이 뜻밖에 많이 없으리라고 생각합니다. 많이 이야기되지만 위키에 언급된 대로 애자일 개발 프로세스란 어느 특정 개발 방법론을 가리키는 말은 아니고 애자일(Agile=기민한, 좋은 것을 빠르고 낭비 없게 만드는 것) 개발을 가능하게 해 주는 다양한 방법론 전체를 일컫는 말이기 때문일 것입니다. 애자일 마스터는 애자일에 대한 궁금증을 가진 사람이라면 직군과 관계없이 쉽게 볼 수 있게 설명된 책입니다. 초반 ‘애자일 팀 만나기’에서 팀원들이 자신의 담당 부분을 정해 전담하는 기존 방식과 다른 부분을 이야기하며, 우리는 하나의 팀이라는 마음 갖기, 스페셜리스트보다는 제너널리스트가 더 중요한 배경을 설명합니다. 실천 방안 중에서는 같은 공간에서 일하기가 있는데, PIXAR의 토이스토리2의 실패의 원인으로 같은 공간에서 일하지 않아 협동이 제대로 되지 않은 것으로 보고 새로운 스튜디오를 지어서 모두 한지붕 아래서 일하도록 하였다고 합니다. 최근 페이스북의 새로운 캠퍼스가 비슷한 방식으로 만들어진다고 하니, 한 팀이 같은 공간에서 일하는 것이 가장 기본적인 시작이라고 볼 수 있을 것 같습니다. 이철혁 | 프로젝트 인셉션 추정과 계획 그리고 실행
  • 16. 69 애자일 마스터 | 조너선 라스무슨 지음, 최보나 역 출판사 인사이트 2012 원서 제목이 AGILE SAMURAI 이기에 사무라이가 표지그림이다. 그리고 많은 프로젝트가 실패하는 이유를 초반에 서로의 성공에 대한 생각을 일치시키지 못한 상태에서 진행되어서 그런 것이라고 판단하고 ‘인셉션덱’이라는 도구를 이용해서 프로젝트를 진행하는 초기에 확인하고 점검하는 것을 권장합니다. 엘리베이터 피치 등 10가지의 질문으로 이루어진 ‘인셉션덱’은 책에 자세히 설명되어 있습니다. 평소 애자일에 관심이 많다면 그림과 표가 많이 있어서 지루하지 않게 내용을 확인할 수 있습니다.
  • 17. 70 읽기 좋은 코드가 좋은 코드다 프로그래밍을 모르는 분들이 프로그램 코드를 본다면 “우와~ 이게 다 뭐야” 라는 소리를 내며 이해하기가 어려울 것입니다. 거의 모든 프로그래밍 언어는 영어로 되어 있기 때문에, 일단 모국어가 영어가 아닌 곳에서는 쉽게 접근/이해하기가 어렵습니다. 우리나라의 경우 1994년에 탄생한 ‘씨앗’이라는 한글로 프로그래밍할 수 있는 언어가 발표되었지만, 크게 인기를 끌지는 못하였습니다. 하지만 프로그래밍 언어를 아는 프로그래머들도 다른 프로그래머가 짠 코드를 볼 때 똑같은 상황이 발생할 수도 있습니다. 그래서 정부기관이나 회사에서 프로젝트를 진행할 때 기존 프로그램의 코드들을 유지/보수하지 못해서 막대한 비용을 들여가며 새롭게 개발하는 경우도 많이 발생합니다. 그 이유는 무엇 때문일까요? 먼저 프로그래밍 언어의 코드는 숨겨져 있고 결과만 드러나게 되기에, 내부 코드가 상관없이 어떻게든 결과만 나오면 된다는 결과 지상주의에 빠지기 쉽습니다. 그래서 나오는 화면/결과와 코드 품질과의 관련은 없을 수 있습니다. 또한, 프로그래머가 되기 위해서 프로그래밍 언어를 사용하는 방법과 개발방법론, 보안, 최적화에 대한 교육과 노력을 하는 데 비해 코딩스타일에 대한 부분은 거의 진행이 되지 않기 때문에 각자만의 방법과 스타일에 익숙해지게 됩니다. 따라서 프로그래밍을 막 시작한 이들에게 아주 좋은 책이 되리라 생각합니다. 이철혁 | 더 나은 코드를 작성하는 간단하고 실전적인 테크닉
  • 18. 71 읽기 좋은 코드가 좋은 코드다 | 더스틴 보즈웰, 트레버 파우커 지음, 임백준 역 출판사 한빛미디어 2012 참고할 책 완벽한 코드작성을 위한 클린 코드 (로버트 C 마틴) 얇은 책이지만 왜 읽기 좋은 코드가 좋은 코드인지를 설명하고, 실제로 프로그래밍에 적용하는 방법과 팁들, 그리고 실제 코드를 바탕으로 바꾸는 모습을 보여줌으로써 자연스럽게 자신의 프로그래밍에 적용하게 끔 유도하고 있습니다. 또한, 간간히 나오는 삽화가 너무 재미있어서 책을 보는 또 하나의 재미를 선사해줍니다. 꼭 코드를 다른 사람을 위해서 잘 짜야 하는 것은 아닙니다. 일관된 규칙과 스타일을 가지고 있지 않다면, 좋지 않는 습관과 스타일을 가지고 있다면, 세월이 흐른 뒤에 자신의 코드를 보고도 이해하지 못하는 상황은 발생할 수 있습니다. 남을 위해서라도 자신을 위해서라도 읽기 좋은 코드가 좋은 코드라는 말을 명심하고 프로그래밍을 하도록 합시다.
  • 19. 72 프로그래머, 열정을 말하다 먼저 책 표지에 다른 IT서적과 다르게 악기인 색소폰이 등장합니다. 번역본의 표지는 원서의 책 표지와 크게 다르지 않은 느낌을 주지만 색소폰의 방향이 반대이며 번역본에는 없는 부제가 적혀 있습니다. 부제인 ‘CREATING A REMARKABLE CAREER IN SOFTWARE DEVELOPMENT’ (소프트웨어 개발에서 뛰어난 경력 만들기)를 보면 자기 개발서 같다는 생각이 듭니다. 이렇게 남다른 표지 뒤에는 한때 전문 색소폰 연주자였다가 프로그래머가 된 저자의 이력이 숨어있습니다. 다소 독특한 경력이 있기에 처음부터 프로그래머의 길을 선택한 사람들이 보지 못한 부분을 이야기로 만들어 설득력 있게 전달하고 있습니다. 출판업계에는 수많은 자기계발서 들이 출간되고 있고, 어찌 보면 이 책도 프로그래머만을 대상으로 만들어지는 자기계발서 중 한 권에 불과 할 수 있습니다. 하지만 다른 자기계발서에서 볼 수 없는 프로그래머만의 이야기를 하고 있기 때문에 이 책 자체가 1장에 언급한 ‘당신의 시장을 선택하라’ 중 틈새시장을 잘 공략한 것으로 보입니다. 이 책에서 제공하는 53개의 짧은 이야기들은 프로그래머가 되고 싶어하는 분들에게는 훌륭한 방향성을 제공해주고, 이미 본업에서 근무하고 계신 분들에게는 신선한 자극이 되어 줄 것입니다. 이철혁 | The passionate programmer
  • 20. 73 프로그래머, 열정을 말하다 | 채드 파울러 지음,송우일 역 출판사 인사이트 2012 참고할 책 프로그래머로 사는 법 (샘 라이트스톤) 이번 개정판 전 한국어판 책 제목이기도 했던 10장 “사랑하지 않으면 떠나라”는 재즈 색소폰의 대가 존 콜트레인이 입술에 피가 나도록 연습한 이야기를 소개하면서 프로그래머가 지녀야 할 열정에 대해 따끔하게 지적하고 있습니다. 또한, 중간에 나오는 다른 프로그래머들의 훌륭한 사례들은 본문의 내용이 없다 하더라도 이 책을 읽는 이유가 되기에 충분합니다. 특히 Github 에서 전업으로 일하려고 MS의 연봉 외 30만 달러 추가 지급 제안을 거절한 이야기는 프로그래머를 선택한 이유와 앞으로의 방향에 대해서 깊이 생각해보게 합니다. 채드 파울러는 켄트백 저의 <익스트림 프로그래밍(Extreme Programming Explained)> 을 서점에서 우연히 읽은 것을 계기로 인생의 큰 변화를 맞게 되었습니다. 여러분들도 이 책을 통해서 프로그래머로서의 미래에 대한 자세와 생각을 돌아볼 기회가 되면 좋겠습니다.
  • 21. 74 IT일반 • 프로그래머, 열정을 말하다 | 채드 파울러, 인사이트(insight), 2012 • Beautiful Software | Chuck Connell, CreateSpace, 2011 • 린과 애자일 개발 | 크레이그 라만, 케이앤피북스, 2012 • 애자일 마스터 | 조너선 라스무슨, 인사이트(insight), 2012 • 읽기 좋은 코드가 좋은 코드다 | 더스틴 보즈웰, 한빛미디어, 2012 • 오브젝티브-C 프로그래밍 | 아론 힐리가스, 제이펍,  2012 • Head First Statistics | 돈 그리피스, 한빛미디어, 2012 • 성공하는 애자일 | 마이크 콘, 인사이트(insight), 2012 • 프로그래머가 알아야 할 97가지 | Kevlin Henney, 志&嬋, 2012   • 아름다운 시각화 | 줄리 스틸,노아 , 인사이트(insight), 2012 • 자바7 NIO.2 | 앵겔 레너드, 한빛미디어,  2012 • 좋아 보이는 것들의 비밀 Good Design | 최경원, 길벗, 2012 • 프로그래머로 사는 법 | 샘 라이트스톤, 한빛미디어, 2012 • 프로그래머로 산다는 것 | 유석문·황상철, 로드북, 2012 • 토비의 스프링 3.1 세트 | 이일민, 에이콘출판사, 2012 • 린 스타트업 | 에릭 리스, 인사이트(insight), 2012 • 린 스타트업 | 애시 모리아, 한빛미디어, 2012 • 리팩토링 | 마틴 파울러, 한빛미디어,  2012 • 초난감 기업의 조건 | 릭 채프먼, 에이콘출판사, 2012 • 똑똑한 정보 밥상 | 클레이 존슨, 에이콘출판사, 2012 Book selector 이철혁의 2012 전체 추천 도서 리스트