Review
-
나는 나로 살기로 했다Review 2017. 7. 30.
나는 나로 살기로 했다 - 김수현 지음/마음의숲 어느날 문득 내 자신이 초라하고 무력하게 느껴졌다. 애매한 나이에 애매한 경력과 애매한 실력. 나는 제대로 갖춘것도 보장된 것도 없는 애매한 사람이었다. 어쩌다, 이렇게 애매한 어른으로 자라버렸을까. . . . 나는 나를 존중하고, 나로서 당당하게 살아가도 되는 거였다. 이 책은 내가 느꼈던 초라함의 이유이자, 나를 초라하게 했던 모든 것들에 대한 나의 답변이다. 나는 점심을 먹고 근처 책방 근처를 서성이면서 가볍게 산책하는 일을 즐긴다. 여름이 시작하려고 할 때 나는 우연히 "나는 나로 살기로 했다" 책이 눈에 들어왔다. 책 옆는 "언어의 온도", "베리 심플"이 함께 놓여 있었다. 책들을 살펴보다가 이 책의 표지를 보니 가장 쉽게 읽을 수 있을꺼 같아 ..
-
보안을 시작할 수 있도록 도와줄 생활 보안 첫걸음Review 2017. 6. 28.
손으로 익히며 배우는 생활 보안 첫걸음 - 마스이 토시가츠 지음, 손정도 옮김/한빛미디어 일반적으로 "보안은 어려울거야" 인식이 있다. 옛날 바이러스만 있었던 시절, 안철수연구소의 V3 백신만 알면 되었던 수준에서 이제는 스파이웨어, 랜섬웨어와 같이 다양한 종류의 공격들이 생겨났고 개인에게 돈을 목적으로 광범위하게 공격을 하고 있어서 단순히 넘기기엔 어려운 상황이다. 주변 지인들의 랜섬웨어 사례들도 있어 다른 사람의 이야기로만 치부하기도 어려워졌다. 하지만 보안을 고려하거나 학습하려면 컴퓨터 전반적인 지식을 가지고 있어야 한다. IT 시스템을 네트워크, 운영체제, 어플리케이션 이렇게 크게 3가지로 추상화하여 나눌 수 있는데 이를 이해하기 위해서는 전공자가 받는 교육이 필요하다고 생각한다. 물론 웹을 잘 ..
-
Effective PythonReview 2017. 5. 30.
Effective Python 이펙티브 파이썬 : 파이썬 코딩의 기술 - 브렛 슬라킨 지음, 김형철 옮김/길벗 Python은 매력적인 언어이다. 언어가 주는 간결함 그리고 동적 타이핑, 다양한 내장 기능과 오픈소스 패키지들은 사용하지 않을 수 없게 한다. 하지만 알면 알수록 어려워지는 언어임은 틀림 없다. 모든 개발 언어가 그렇듯이 그 언어의 특성을 이해하고 코드를 "잘" 작성하기 위해서는 몰입과 경험이 필요하다. 어떻게 하면 그 언어스럽게 코드를 잘 작성할 수 있을까? 이에 대한 좋은 답은 Effective 시리즈의 책이라고 생각한다. 나에게 있어 Effective 시리즈의 책들은 그 언어를 더 깊게 이해하게 도와주는 경험의 모음집이다. 그래서 사용 언어에 있어서 Effective 시리즈 책이 새로 나..
-
그림으로 개념을 이해하는 알고리즘Review 2017. 5. 3.
Hello Coding 그림으로 개념을 이해하는 알고리즘 - 아디트야 바르가바 지음, 김도형 옮김/한빛미디어 컴퓨터 개발을 하면서 알고리즘을 학습하는 것은 매우 중요하다. 너무 오래전에 배워서 이미 잊혀진 것들이 있을 수 있지만 개발을 하다보면 다시 알고리즘을 학습해야하는 순간은 종종 찾아온다. 앱을 통해서 택시와 나를 연결해주고 싶다. 어떻게 현재 위치에서 가까운 기사들에게 알림을 보낼 수 있을까? 웹 브라우저의 뒤로가기/앞으로가기는 어떻게 구현해야 하는 걸까? 영화 추천 서비스는 어떻게 나에게 영화를 추천해주는 걸까? 이렇듯 꾸준히 학습을 해야하는 알고리즘은 시중에 책들이 많이 나와 있다. C/C++로 된 책부터 Java, Python까지 다양한 언어로 알고리즘에 대한 학습 서적이 이미 나와있다. 하..
-
하둡 완벽 가이드Review 2017. 4. 2.
빅 데이터(영어: big data)란 기존 데이터베이스 관리도구의 능력을 넘어서는 대량(수십 테라바이트)의 정형 또는 심지어 데이터베이스 형태가 아닌 비정형의 데이터 집합조차 포함한 데이터로부터 가치를 추출하고 결과를 분석하는 기술이다. 위키피디아 몇년 전부터 빅데이터 키워드는 흔하게 사용되고 있다. 위 설명에서도 알겠지만 대량의 정형, 비정형 데이터로부터 분석을 할 수 있게하는 기술을 말한다. 사실 나는 데이터 처리에 대해서는 몇년 전부터 관심이 있었다. 가령 CPU 명령어 레벨부터 multi-core processing, GPGPU까지 관심을 넓혀나가고 있었지만 이런 기술들은 정보를 저장하고 분석하기 보다는 실시간으로 들어오는 데이터를 처리하기 위한 기술들이다. 의료계 활용 사례들에 대한 기사를 보면..
-
리모트(Remote)Review 2017. 1. 6.
리모트 - 제이슨 프리드 & 데이빗 하이네마이어 한슨 지음, 임정민 옮김/위키미디어 전세값 상승이라는 큰벽을 만나게 되었다. 게다가 원격 근무의 일종인 디지털 노마드까지 알게 되어 원격 근무에 대한 관심이 무척 높아진 상태였는데 상사이자 오랜 친구인 동료가 추천을 해주어서 책을 읽게 되었다. 이 책은 basecamp, campfire등의 프로젝트 관리 툴을 개발하고 서비스하는 37 signals의 제이슨 프리드, 데이빗 하이네마이어 한슨가 지은 책이다. 이 회사는 원격 근무를 지원하는 회사로도 유명하다. 사무실에서 일하는 것도 가능하지만, 놀라운점은 개인이 선택할 수 있다는 점이다. 저자는 다년간의 원격 업무를 계획하고 실제로 경험한 사례를 기반으로 책을 만들었다. 결론부터 이야기하자면 이 책은 나에게 ..
-
Effective Unit TestingReview 2016. 12. 11.
올해 하반기에 팀 동료들과 유지보수의 어려움에 대한 논의가 있었다. 그 중 유닛테스트 추가가 필요하다는 이야기가 나오게 되었다. 우리는 유닛 테스트를 일부 가지고 있었지만 추가 활용의 어려움이 있었다. 유닛 테스트 추가하기 위해서 우리에게 무엇을 필요한지에 대한 논의를 하게 되었다. 유닛 테스트를 추가함으로써 우리는 무엇을 얻게 되는가?유닛 테스트 추가를 방해하거나 어렵게하는 요인이 있는가? 우리는 유닛 테스트가 중요하고 코드 안정성 뿐만 아니라 개발 시간을 줄여주는데 도움을 준다는 것에 모두 동의하였다. 하지만 유닛 테스트 작성이 익숙하지 않으며 어떻게 작성하는게 잘 작성된 것인지를 잘 모른다라는 의견이 있었고 특히 네트워크나 DB 인터페이스를 활용하는 시스템 데몬들은 유닛 테스트 작성이 어렵다라는 의..
-
테스트 주도 개발Review 2016. 12. 8.
테스트 주도 개발(TDD, Test-Driven Development)은 동작하는 깔끔한 코드를 위해서 테스트를 먼저 작성하는 개발 방법론을 의미한다. 여기서 테스트란 유닛 테스트를 의미한다. 유닛테스트란 소스코드에 대한 개발자에게 함수와 모듈의 동작을 검증을 할 수 있게 도와주는 도구이다. 유닛 테스트는 개발된 코드의 사용 방법을 가이드 할 뿐만 아니라 여러 가지를 한번에 고민해야 하는 개발자에게 실수를 줄여주고 작성한 코드에 대한 테스트를 진행할 수 있어 견고한 수문장 역할을 한다고 말할 수 있다. 이미 많은 개발자들이 유닛테스트 활용이 중요하다는 것을 알고 있다고 생각한다. 팀이든 1인 개발이든 말이다. 테스트 주도 개발 - 켄트 벡 지음, 김창준 외 옮김/인사이트 이 책에서 다양한 유머들을 책 곳..