'책 리뷰'에 해당되는 글 32

  1. 2008/12/19 프로그래밍과 보이스카웃 규칙
  2. 2008/08/27 Presentation Zen
  3. 2008/08/13 글 잘 쓰는 기술
  4. 2008/08/07 해외 유명 블로그 및 블로거들
  5. 2008/07/25 Gödel, Escher, Bach (4)
  6. 2008/07/23 The art of being agile
  7. 2008/06/25 POSA 2
  8. 2008/06/04 Continuous endeavor for a better continuous integration (2)
  9. 2008/04/17 Beautiful Code for game programmers
  10. 2008/03/27 Managing Humans

프로그래밍과 보이스카웃 규칙

Clean Code


Uncle Bob의 새 책입니다. 제목 그대로 함수 및 주석 작성에서부터 concurrency 이슈에 이르기까지 훌륭한 코드를 짜는데 도움이 되는 실무적 팁들을 알려줍니다.

마지막 장에 그러한 지침들을 "Smells and Heuristics"라는 제목으로 총망라해놓았습니다. 팀의 코딩 표준 작성 시 참고하면 좋을 것 같습니다. 그 중 몇 가지를 다음에 나열하였습니다.

  • C5: Commented-Out Code
  • G5: Duplication
  • G6: Code at Wrong Level of Abstraction
  • G7: Base Classes Depending on Their Derivatives
  • G22: Make Logical Dependencies Physical
  • G23: Prefer Polymorphism to If/Else or Switch/Case
  • G28: Encapsulate Conditionals
  • G34: Functions Should Descend Only One Level of Abstraction
  • T9: Test Should Be Fast
자명해보이는 것들도 있고...(그렇다고 지키기 쉬운 건 절대 아니죠.) 추가적인 설명이 필요해보이는 것들도 있을 겁니다(궁금하시면 책을 구입하시길... ^^;).

하지만 이 책에서 가장 마음에 와닿은 지침은 '보이스카웃 규칙'입니다.

Leave the campground cleaner than you found it.
떠날 때의 캠핑 장소가 처음 도착했을 때보다 더 깨끗해야 한다.

체크인하는 코드가 항상 체크아웃 했을 때의 상태보다 조금이라도 더 깨끗해졌다면(개선되었다면), 흔히 프로젝트 후반부에 마주하게 되는 엉망진창의 코드는 과거의 이야기가 되겠죠!
크리에이티브 커먼즈 라이선스
Creative Commons License

'Book Review' 카테고리의 다른 글

오른쪽 두뇌로 그림그리기  (8) 2009/02/21
학습의 학습  (0) 2009/01/14
프로그래밍과 보이스카웃 규칙  (0) 2008/12/19
Presentation Zen  (0) 2008/08/27
글 잘 쓰는 기술  (0) 2008/08/13
해외 유명 블로그 및 블로거들  (0) 2008/08/07
Trackback 0 Comment 0

Presentation Zen

프리젠테이션 젠10점

좋은 프리젠테이션에 대해 많을 것을 가르쳐준 책입니다. 저자는 선(Zen)에 심취한듯 보입니다(실제 일본에서 일하고 있습니다). 효율적인 프리젠테이션을 위한 다양한 지침들을 상당 부분 선의 가르침에 비유하여 설명하고 있습니다.











알게 된 것들

  • Pecha Kucha : 한 슬라이드에 20초씩 총 20개의 슬라이드로 진행하는 총 6분40초짜리 프리젠테이션 이벤트
  • 달라붙는 아이디어의 특징 : 단순성/의외성/구체성/신뢰성/감성/스토리
  • 준비 과정 : 컴퓨터 도구가 핵심이 아니다
    • 브레인스토밍
    • 그룹짓기/핵심요소 찾아내기
    • 컴퓨터 없이 스토리보드 작업하기
    • 여러 슬라이드 보기에서 스토리보드 작업하기
  • 디자인 원리
    • 신호대잡음비의 원리 : 핵심 메시지 전달에 도움에 되지 않는 것은 다 없애라
    • 그림 우위 효과의 원리 : 백마디 말보다 그림 하나가 낫다
    • 여백의 원리 : 슬라이드를 빈틈없이 채우려 하기보다는 여백을 잘 활용하자
    • 대조,반복,정렬,근접
  • 발표
    • 지금 이 순간만큼은 여기 있어라. 다른 곳은 나중에 가면 된다. 그게 뭐 복잡한가?
      - 데이빗 바더/미국의 시인
    • 실수를 두려워말고 순간에 몰입하자는 이야기
    • 조명을 너무 어둡게 하지 말고, 발표자는 연단 뒤에 숨기 보다는 정면으로 나서서 청중과 소통해야 한다
  • 좋은 프리젠테이션에 도움이 되는 웹사이트들

저도  목록 기반 텍스트 위주의, 보고서와 진정한 프리젠테이션 자료의 중간쯤에 위치할 지루한 PT 자료들을 만들어 왔습니다... 저자의 말대로 프리젠테이션 자료는 발표자의 소통을 도와주는 도구이지 대체하는 도구가 아님을 잊지 말아야 겠습니다.
http://all2one.tistory.com2008-08-27T04:40:480.31010
크리에이티브 커먼즈 라이선스
Creative Commons License

'Book Review' 카테고리의 다른 글

학습의 학습  (0) 2009/01/14
프로그래밍과 보이스카웃 규칙  (0) 2008/12/19
Presentation Zen  (0) 2008/08/27
글 잘 쓰는 기술  (0) 2008/08/13
해외 유명 블로그 및 블로거들  (0) 2008/08/07
Gödel, Escher, Bach  (4) 2008/07/25
Trackback 1 Comment 0

글 잘 쓰는 기술

글 잘 쓰는 기술6점

글을 잘 쓰는 사람들을 보면 참 부럽습니다. 글을 잘 쓰게 되고자 이렇게 블로그질도 하고, 본서와 같은 여러 책들도 사보고 합니다만... 컴퓨터와의 대화에만 능숙한 저같은 사람들로서는 쉽지가 않습니다.











다음 이 책을 읽으면서 제 마음에 와닿은 문장들입니다.

우리가 글을 써야 하는 가장 큰 이유는 실제로, 그리고 상징적으로 자기 삶의 순간순간을 소유하기 위함이다.
내가 언어에 대한 어려움을 느낄 때마다, 지금 하는 일에 다한 나의 능력이 부족하다고 느낄 때마다, 딸이 보여주는 모습들을 기억해 내려고 애쓴다. 딸아이는 자신이 지금 할 수 있는 것보다 더 고귀한 형태의 표현방법이 있다는 것을 알고 있는 듯하다. 내가 글 쓰는 게 막힐 때마다 느끼는 것처럼 말이다. 그렇지만 그 느낌이 나를 의심과 자아비판이라는 낭떠러지로 몰고 가는 반면, 딸아이는 그것 때문에 별다는 영향을 받지는 않는 것 같다. 그저 계속해서 끽끽거리고 깩깩거리는 소리를 낼 뿐이다. 그 소리가 엄마와 아빠가 내는 소리와 점점 비슷해져 갈 때까지.
나는 판단하지도 비교하지도 않을 것이다. 나의 역할은 창작이다. - 윌리엄 블레이크
모순적으로 들리겠지만 진정으로 진심에서 우러나는 글을 쓰려면 면저 감정을 식혀야 한다
C.S. 루이스의 말처럼 이 세상에 힘든 사람이 나만은 아니라는 사실을 깨닫기 위해 읽고 쓴다.
이제 당신은 사실과의 고리들 끊고 더 많은 진실을 말해 줄 거짓말을 창조해야 해요.
완벽함은 훌륭함의 적이다.
글쓰기는 두 단계의 과정으로 이루어져 있다. 집필과 수정이다. 두 가지를 동시에 할 수는 없다. 초고는 가능하면 빨리 끝내고 마음껏 비판하고 수정하라.
사용자 삽입 이미지





저자의 블로그도 있으니 참고하시면 도움이 될겁니다.
책 뒷표지의 다음 인용문으로 짧은 독후감을 마칩니다.
글쓰기의 첫번째 열쇠는 쓰는 거지, 생각하는 것이 아니다. - 영화 <파인딩 포레스터> 에서
http://all2one.tistory.com2008-08-12T04:14:140.3610
크리에이티브 커먼즈 라이선스
Creative Commons License

'Book Review' 카테고리의 다른 글

프로그래밍과 보이스카웃 규칙  (0) 2008/12/19
Presentation Zen  (0) 2008/08/27
글 잘 쓰는 기술  (0) 2008/08/13
해외 유명 블로그 및 블로거들  (0) 2008/08/07
Gödel, Escher, Bach  (4) 2008/07/25
The art of being agile  (0) 2008/07/23
Trackback 0 Comment 0

해외 유명 블로그 및 블로거들

블로그 히어로즈8점
다시 블로그에 대한 열정이 만개 중입니다... 그에 일조한 책이지요. 많은 블로거분들이 이미 밁어보셨을 것으로 생각됩니다. 저도 이 책으로 많은 유명 해외 블로그들을 접할 수 있었습니다. 제가 자주 가던 여러 국내 블로그들의 정보원이라 여겨지는 것들도 여럿 눈에 뜨이더군요.


라이프해커
  1. 아르스 테크니카
인개짓
언오피셜 애플 웹로그포탈의 영향력이 미약하고, 대부분 설치형 위주로 돌아가는 해외 블로그들의 (국내 블로고스피어와의) 차이점도 확인할 수 있었습니다. 블로그질도 중독성이 강한 것 같습니다. 와우를 즐길 때와 비슷합니다. 본 책에 의하면 많은 유명 블로거들이 평균 200개 이상의 피드를 구독하고 있다는데... 저도 20개 남짓 됩니다. 때로는 '정보 폭식'이라 느껴집니다. 다 소화하지도 못할 정보들을 우겨넣는 것이죠. 여기서도 결국은 중용의 도가 중요한 거겠죠?
http://all2one.tistory.com2008-08-06T14:01:430.3810
크리에이티브 커먼즈 라이선스
Creative Commons License

'Book Review' 카테고리의 다른 글

Presentation Zen  (0) 2008/08/27
글 잘 쓰는 기술  (0) 2008/08/13
해외 유명 블로그 및 블로거들  (0) 2008/08/07
Gödel, Escher, Bach  (4) 2008/07/25
The art of being agile  (0) 2008/07/23
POSA 2  (0) 2008/06/25
Trackback 1 Comment 0

Gödel, Escher, Bach

사용자 삽입 이미지

사용자 삽입 이미지

In English...(show)


팀 동료분의 추천을 받고 읽게 되었습니다. 800페이지에 가까운 엄청난 분량이지만 금새 읽어버렸습니다. 책 제목으로 봐서는 장르를 예측하기 어렵죠? 보통 철학 서적 코너에서 발견됩니다.

괴델의 불완전성 원리, 에셔의 그림들, 바하의 푸가곡이 세 가지 핵심 소재들입니다. 이렇듯 수학, 미술, 음악의 상이한 세 가지 분야에서 온 소재들을 바탕으로 지능이란 무엇인가 고찰하는 지적 여정이 펼쳐집니다. 각 장들 사이에 다음 장의 내용을 엿보게 해주는 우화가 대화 형식으로 펼쳐지는데... 형식과 내용의 어우러짐이 절묘합니다. 정신 차리고 읽지 않으면, 저자가 마련해놓은 함의 및 언어유희를 놓치기 쉽습니다.

예전에 어디선가 프로그래머의 필독서가 '이상한 나라의 앨리스'라는 글을 읽은 적이 있는데(아마도 김창준님의 블로그였던듯)... 이 책을 읽고나니 어느 정도 이해가 가더군요.

사용자 삽입 이미지
이 에셔의 그림이 불완전성 원리와 무슨 관련이 있는걸까요?

p.s. 번역서도 있습니다만, 두 권으로 나뉘어 가격도 비싼데다가 번역도 별로라는 말이 있어 저는 원서로 읽었습니다.
크리에이티브 커먼즈 라이선스
Creative Commons License

'Book Review' 카테고리의 다른 글

글 잘 쓰는 기술  (0) 2008/08/13
해외 유명 블로그 및 블로거들  (0) 2008/08/07
Gödel, Escher, Bach  (4) 2008/07/25
The art of being agile  (0) 2008/07/23
POSA 2  (0) 2008/06/25
Continuous endeavor for a better continuous integration  (2) 2008/06/04
Trackback 0 Comment 4

The art of being agile

사용자 삽입 이미지

사용자 삽입 이미지

In English...(show)


애자일을 적용하는 것이 생각보다 만만치 않더군요. 팀 구성원 모두가 취지를 잘 이해하고 열성적이어야 합니다. 각 실천 사항이 습관이 될 때까지 그 실천을 게을리 하지 말아야 하지요. 그러던 차에 눈에 뜨인 책입니다.

기본적으로 XP 위주에 Scrum을 약간 가미한 형태로 저자의 노하우를 풀어놓습니다. 여전히 배울 것이 많았습니다. 다음에 저에게 와닿은 실천 사항 몇 가지를 뽑았습니다.
  • Ubiquitous Language(공통된 용어)
    • 다른 분야의 사람들이 의사소통을 한다는 것이 쉽지 않습니다. 기획자, 프로그래머, 아티스트 모두가 같은 단어를 달리 이해할 수 있지요. 위키에 팀 공통 용어집을 마련해놓는 것도 좋습니다. 무엇보다 서로가 자주 소통하는 것이 중요합니다.
  • Done Done(진정한 완료)
    • 이것도 정말 마음 단단히 먹지 않으면 착실히 지켜 내기가 저에겐 어렵더군요. 최종 사용자(게임 개발에선 보통 기획자일듯)에게 시연이 되어야 해당 일은 완료가 된 것입니다. 컴파일이 된다고 코드 리뷰가 끝났다고 완료된 것이 아닙니다!
  • Vision(비전)
    • 프로젝트가 여러 난관을 뚫고 목적지에 도달하려면 이것이 필수입니다. 하지만 이를 공유하기가 결코 쉽지 않습니다.
  • Risk Management(리스크 관리)
    • 한번 해본 프로젝트를 똑같이 다시 한번 수행하는 것이 아닌한 일정 예측은 너무나 어렵습니다... 중요한 것은 'plan'이 아니라 'planning'이라지만, 때로는 planning도 너무 막막할 때가 있습니다. 일정 예측을 어렵게 하는 갖가지 리스크들을 어떻게 계측화할 수 있는지 알려줍니다.
  • Slack(여분의 시간)
    • 개발 작업은 항상 회의나 각잡스런 하드웨어 문제 등의 일정한 오버헤드를 포함하게 마련입니다. 이를 무시하고픈 마음이 자꾸 들지만, 결과는 어긋나는 일정으로 나타날 뿐입니다.

더욱 깨어있는 자세로 임해야 할 것같습니다.
크리에이티브 커먼즈 라이선스
Creative Commons License

'Book Review' 카테고리의 다른 글

해외 유명 블로그 및 블로거들  (0) 2008/08/07
Gödel, Escher, Bach  (4) 2008/07/25
The art of being agile  (0) 2008/07/23
POSA 2  (0) 2008/06/25
Continuous endeavor for a better continuous integration  (2) 2008/06/04
Beautiful Code for game programmers  (0) 2008/04/17
Trackback 0 Comment 0

POSA 2

Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects
사용자 삽입 이미지

I finally read this all. Definitely it's a must-read for all game programmers.
크리에이티브 커먼즈 라이선스
Creative Commons License

'Book Review' 카테고리의 다른 글

Gödel, Escher, Bach  (4) 2008/07/25
The art of being agile  (0) 2008/07/23
POSA 2  (0) 2008/06/25
Continuous endeavor for a better continuous integration  (2) 2008/06/04
Beautiful Code for game programmers  (0) 2008/04/17
Managing Humans  (0) 2008/03/27
Trackback 0 Comment 0

Continuous endeavor for a better continuous integration

사용자 삽입 이미지

In English...(show)


사용자 삽입 이미지

지속적인 통합(Continuous Integration, CI)이란 주제에는 항상 관심이 많았습니다. 현재 팀에서도 나름대로 지속적인 통합을 잘 활용하고 있다고 생각했는데, 이 책을 읽어보니 개선할 점이 많더군요.

다음과 두 가지 사항이 도움이 되었습니다.

  • CI 빌드 시에 꼭 모든 것을 하려고 해서는 안된다. 빌드 시간이 10분을 넘기기 시작하면 사람들이 CI에 반감을 가질 수 있다. 오래 걸리는 작업은 별도 주기의 빌드(일일 빌드 등)에서 수행하라.
  • 정적 코드 분석 툴 및 동적 분석 툴을 통해 테스트를 보완하라.

정적 코드 분석은 코드 중복 체크나 가능한 오류 사항 및 코딩 규칙 위반 사항 점검에 유용합니다. 동적 분석은 테스트 코드의 커버리지(coverage)를 검사합니다. 아쉽게도 C++ 언어용으로는 쓸만한 공짜 분석 도구들이 눈에 뜨이지 않더군요. 이 책을 통해서 알게된 SourceMonitorSimian이 C++을 지원합니다.

SourceMonitor는 코드의 복잡도를 분석해주는 도구입니다. 복잡도가 높을수록 버그그 파고들 구멍이 많은 것이니 리팩토링 시 그러한 부분들에 먼저 주목하면 좋겠지요. Simian은 코드 유사성 검사 도구로 'Don't Repeat Yourself' 원칙이 위배되는 copy & paste 코드가 몰래 추가되는 일을 막아줍니다. 이 두 도구에 대한 간단한 설정 방법이 제 위키에 나와 있습니다.

혹시 공짜 C++ 코드 커버리지 분석 도구 알고 계신 분 있나요?

지속적인 통합: 소프트웨어 품질을 높이고 위험을 줄이기 상세보기
폴 M. 듀발 지음 | 위키북스 펴냄
이 책은 개발조직의 성공을 위한 '지속적인 통합'에 대해 이야기한다. 저자는 일일 빌드가 참신한 생각이었던 때를 지나 지속적인 통합을 하는 수준에 이르렀고, 이제는 지속적인 통합을 하느냐의 여부가 제대로 일하는 개발 조직을 가늠하는 잣대가 됐다고 주장한다. 그리고 이 책을 통해 소프트웨어의 품질은 높이고 위험은 줄이는 지속적인 통합의 개념과 실천방법을 자세히 설명한다. 또한 CI 시스템이 수행하는 데이터베이스

크리에이티브 커먼즈 라이선스
Creative Commons License

'Book Review' 카테고리의 다른 글

The art of being agile  (0) 2008/07/23
POSA 2  (0) 2008/06/25
Continuous endeavor for a better continuous integration  (2) 2008/06/04
Beautiful Code for game programmers  (0) 2008/04/17
Managing Humans  (0) 2008/03/27
게임을 포함한 대중 문화의 가치  (0) 2008/03/24
Trackback 0 Comment 2

Beautiful Code for game programmers

사용자 삽입 이미지

In English...(show)

사용자 삽입 이미지

다 읽는데 한참 걸렸습니다. 기대보다는 저에게 흥미로운 글들이 적었습니다. 번역서도 있지요. 워낙 다양한 분야의 글들이 있어 번역이 쉽지 않았을듯... 다음은 제가 유용하게 읽었던 항목들입니다.

  • 1. A REGULAR EXPRESSION MATCHER
          매우 간소화된 정규표현식 파싱 코드
  • 3. THE MOST BEAUTIFUL CODE I NEVER WROTE
          "생각하는 프로그래밍"의 저저, Jon Bentley의 글
  • 7. BEAUTIFUL TESTS
          어떻게 단위 테스트를 작성하는가?
  • 10. THE QUEST FOR AN ACCELERATED POPULATION COUNT
          어떤 수 혹은 자료에서 1인 비트의 개수를 세는 알고리즘에 관한 글         
  • 18. PYTHON'S DICTIONARY IMPLEMENTATION: BEING ALL THINGS TO ALL PEOPLE
          파이썬의 사전 자료구조가 어떻게 구현 되었는지에 관한 글
  • 23. DISTRIBUTED PROGRAMMING WITH MAPREDUCE
          구글의 MAPREDUCE
  • 24. BEAUTIFUL CONCURRENCY
          함수형 언어 Haskell과 Software Transactional Memory
  • 26. LABOR-SAVING ARCHITECTURE: AN OBJECT-ORIENTED FRAMEWORK FOR NETWORKED SOFTWARE
          네트워크 소프트웨어에 대한 패턴의 적용
  • 28. BEAUTIFUL DEBUGGING
          델타 디버깅
  • 29. TREATING CODE AS AN ESSAY
          루비 언어 창시자의 글
  • 32. CODE IN MOTION
          퍼포스의 DiffMerge 개발 이야기
  • 33. WRITING PROGRAMS FOR "THE BOOK"
          임의의 세 점이 같은 직선 상에 놓이는지 여부에 관한 아름다운 코드
BEAUTIFUL CODE 상세보기
찰스 페졸드 지음 | 한빛미디어 펴냄
내 생애 가장 아름다운 코드! 38인의 코디 명장이 말하는 『BEAUTIFUL CODE』. 전세계의 유명한 프로그래머 38인으로부터 받은 글을 엄선하여 총33가지의 챕터로 구성했다. 프로그래머들이 소프트웨어 프로젝트 아키텍처를 구축하면서 쌓게 된 프로그래밍 노하우가 고스란히 녹아 있다. 이 책은 탁월한 소프트웨어 설계자로 살아가는 프로그래머들의 눈을 통해 세상을 바라볼 수 있도록 도와준다. 느리지만 우아하며 감동적인

크리에이티브 커먼즈 라이선스
Creative Commons License

'Book Review' 카테고리의 다른 글

POSA 2  (0) 2008/06/25
Continuous endeavor for a better continuous integration  (2) 2008/06/04
Beautiful Code for game programmers  (0) 2008/04/17
Managing Humans  (0) 2008/03/27
게임을 포함한 대중 문화의 가치  (0) 2008/03/24
작은 차이가 만들어 내는 큰 결과  (0) 2008/02/12
Trackback 0 Comment 0

Managing Humans

Managing Humans

  • 저자의 블로그 : Rands In Repose
  • 효율적이 회의를 위해선 agenda 파악이 중요하다.
  • 정보 기근을 조심하라.
  • 관리자는 항상 유연하게 대처하며 개발에서 완전히 손을 떼는 것은 좋지 않다.
  • 퇴직 시에는 함께 하고픈 사람들의 연락처를 챙겨라.
  • 모든 팀원이 인터뷰 대상을 평가할 기회를 가지게 하라.
  • NADD(Nerd Attention Deficiency Disorder) - 멀티태스킹(가령, 코딩하면서 웹 서핑 및 다운로드 병행)을 해야 마음이 편안한 긱의 특성을 나타내는 말. 실제로는 멀티태스킹이 아니라 빠른 문맥 전환이라 보는 것이 맞다.
  • Incrementalists vs. Completionists
    • Get the job done right 의 대명제에서 get the job 'done' 에 집중하는 쪽은 incrementalist, the job done 'right' 에 집중하는 쪽을 completionist 라고 한다.
  • 각 직원들은 실제 직함 이외에 숨겨진 직함들을 가지기 마련이다. 그를 잘 파악하는 것이 중요.
사용자 삽입 이미지

In English...(show)



크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 0

top