반응형
The C Programming Language를 집필한 브라이언 커니핸이 지은 The Practice of Programming의 번역서이다. 인포북을 통해 같은 원서의 번역서가 2000년에 나온적이 있었지만 절판된 터라, 이 책은 인사이트에서 재번역되었다. 이 책에서는 C, C++, Java, Perl, Awk 등을 예제로 사용하고 있다. 스타일부터 표기법까지 9가지 장으로 프로그래밍에서 부딪치는 문제를 정리 및 분류하여 설명하고, 예제를 들어 이해를 돕고 있다. 각 장 말미의 요약이 잘 되어 있고, 관심있는 주제는 '더 읽어보기'를 통해 더 조사하도록 배려해 두었다. 원서가 1999년에 나온 터라, 현재 시점에서 출판된 지 거의 10년에 가깝지만 프로그래밍의 수련 원리는 크게 변하지 않았다는 생각이 들었다. 후기와 부록에서 문맥 요약을 통해 책을 한 번 읽고, 나중에 책에서 필요한 관련 내용을 찾고자 할 때 도움을 빨리 얻도록 구성했다.
프로그래밍 수련법
카테고리 컴퓨터/IT
지은이 브라이언 W. 커니핸 (인사이트, 2008년)
상세보기


반응형
반응형

Agile Retrospectives: Making Good Teams Great의 번역서 애자일 회고: 최고의 팀을 만드는 애자일 기법이 출간되었습니다. 이 책은 애자일 시리즈의 5번째 책인데요. 애자일 방법론에서 말하는 '회고'를 하는 방법과 회고를 통해, 개인과 팀을 개선하는 방향으로 나아가는 길을 제시합니다.

되짚어보니 학교 중에서도 '회고'하는 프로세스가 포함되어 있습니다. 예컨대 도플러 효과에 관한 실험을 수행했는데, 그에 대한 결과보고서를 쓰도록 요구받는데요. 만약 보고서를 쓰지 않았다면, "정말 좋은 실험이었다."로 끝나게 되겠죠. 하지만 보고서를 쓰면서, 실험 과정을 한번 더 떠올려 보고, 어떤 원리 때문에 이런 결과가 나왔는지, 일치하지 않는다면 그 오차의 원인은 무엇인지 고민하게 됩니다. '중간고사'와 '기말고사'도 그냥 수업시간으로 끝날 수 있었던 과목을 스스로 정리하고 생각해 볼 기회를 준다는 점이 긍정적이죠. 나중에 과목 내용이 더 기억에 남고요.

어떤 회의에서 회고를 도입하자고 했을 때, 어려웠던 점이 생각납니다. 회고 중에 물론 잘했던 점에 칭찬도 이루어지지만, 못했던 점을 반성하는 과정이 포함됩니다. 그래서 회고는 남을 '비판'하려는 과정이 아니라 '팀'을 개선하는 길임을 납득시키는 일이 쉽지 않았는데요. 이 책에서 소개된 다양한 활동은, 보드게임처럼 즐겁고 흥미진진하게 회고를 진행하는데 도움이 될 것이라고 보았습니다. 회고를 통해 개인과 팀의 성취가 날마다 더 나아지는 경험을 겪고 싶으시다면 읽어보시길 추천합니다.

애자일 회고(애자일 시리즈5) 상세보기
에스더 더비 지음 | 인사이트 펴냄
회고, 즐겁게 돌이켜보고, 기민하게 해결하고, 강점을 살려주는 집단 점검의 시간! 모든 팀 리더와 희의 진행자(facilitator)의 필독서. '회고'는 이터레이션이나 프로젝트 말미, 혹은 프로젝트 중간 목표를 달성한 후 점검 차 팀원들이 그동안의 행적을 돌이켜보고 자료를 수집하여 문제점을 밝혀낸 뒤, 개선을 위한 아이디어와 구체적인 실행 방안을 내고 그 다음 업무에 효과적으로 이를 적용시키기 위한 모임 활동이다. 『
반응형
반응형
아키텍트 이야기를 읽고 있습니다. 처음에는 딱딱하고 어려운 책 아닌가 생각했었는데, 설명 중간에 줄거리가 되는 이야기가 있어서 책을 읽을 때 흥미를 꾸준히 느낄 수 있도록 합니다. 책에서는, 아키텍트란 소프트웨어 개발과 관계되어, 기술적 결정을 하는 최고 책임자라고 정의합니다. 프로그래머의 정년은 다른 직업보다 짧게 이야기되곤 하는데요, 이 책에서는 그에 대한 대안으로 아키텍트라는 역할을 제시합니다. 줄거리가 되는 이야기의 등장인물들은 이니셜을 가지고 등장하는데요. C라는 인물이 아키텍트로서 마주하는 상황들이 재미있으면서도 현실적으로 느껴졌습니다. 이는 저자가 다양한 시스템을 개발한 경험을 가지고 있는 데에서 기인한 듯합니다.

한국에서도 아키텍트라는 직업은 이제 낯선 이름이 아니게 된 듯합니다. 네이버 카페 아키텍트를 꿈꾸는 사람들에서는 스터디와 캠프 등 활발한 활동을 펼치고 있습니다. 문제를 풀기 위해 기술을 판단한다는 점에서 아키텍트란 직업은 매력이 있습니다. 다만, 훌륭한 아키텍트가 되기 위해서는 끊임없이 기술을 학습하고 의사소통을 잘 하는 법을 익히는 등 많은 노력이 필요할 것 같습니다. 아키텍트에 대한 전반적인 정보를 듣고, 아키텍트와 개발자 사이의 차이를 인지하는 데 도움을 주는 책이라고 봅니다.
아키텍트 이야기 상세보기
야마모토 케이지 지음 | 인사이트 펴냄
개발자들을 위한 아키텍트 이야기를 담은『아키텍트 이야기』. 이 책은 아키텍트가 프로젝트의 흐름에 따라 어떠한 역할을 하고 어떻게 프로젝트를 성공시키는 가에 대하여 가상의 아키텍트를 통하여 상세하게 설명한다. 《아키텍트 이야기》에서는 아키텍트의 요구 분석 단계 업무와 설계방법, 아키텍처로 문제를 해결하는 방법, 왜 아키텍트가 돌파구인가에 대한 내용으로 구성했다.
반응형
반응형
"Release it! 성공적인 출시를 위한 소프트웨어 설계와 배치"를 읽었습니다. Hani님 블로그인 Talk about Software with hani를 틈틈이 구독하다가 베타리딩 공지를 보고, 참여할 수 있게되어 더욱 기억에 남는데요. 12월 7일 있었던 베타리더 모임 때 Hani 님이 쓰신 메시지가 담긴 책을 받게 되어 기뻤습니다.

이 책은 프로젝트를 완성하고 나서 그 이후라는 시점에 대해 집중하고 있습니다. 2장에서 소개되는 사례연구 중 하나인 "항공사를 정지시킨 예외(Exception) 사건"이 있는데요. 실제로 모든 버그에 대해 릴리스하기 전에 대처하기는 어렵습니다. 이런 버그가 미칠 수 있는 영향을 최대한 축소시키는, 설계를 채택하는 방법이 논의되고 있습니다.

깊은 인상을 받았던 곳은 4장 안정성 안티패턴에서 언급된 "느린 응답"입니다. 저도 어떤 웹 페이지에 들어갔는데, 불러오는 과정이 더디면 무의식적으로 페이지 새로 고침을 누르곤 했습니다. 이런 사용자의 행동은 웹 서비스의 트래픽을 더 무겁게 할거라고 예상되는데요, 이런 부분에서 저자의 통찰력을 느꼈습니다.

프로젝트 출시 이후의 삶을 다룬다는 점에서, 실용적인 도움이 될 수 있는 책이라고 생각합니다. 이 책은 지난 번에 소개해드렸던 "Ship it!"을 읽었습니다와 같은 시리즈입니다.
RELEASE IT: 성공적인 출시를 위한 소프트웨어 설계와 배치 상세보기
마이클 나이가드 지음 | 위키북스 펴냄
성공적인 출시 이후를 위한 소프트웨어의 설계와 배치를 다루는 전문서. '엔터프라이즈급'의 소프트웨어 시스템 개발자를 대상으로, 소프트웨어가 출시 이후, 혹독한 현실에 맞설 수 있도록 설계하고 배치하는 방법을 안내한다. 작동시간을 지속시키는 방법을 가르쳐주면서, 용량을 최적화하는 방법에 대해 중점적으로 다루고 있다. 또한 데이터 센터에서 사용하는 소프트웨어를 만들 때 아키텍트가 고려해야 하는 일반적인 디자
반응형
반응형
실용주의 프로그래머를 위한 단위테스트 with JUnit를 읽었습니다. 실용주의 서가에서 나온 책인데요, 데이비드 토머스와 앤드류 헌트가 실용주의 프로그래머의 실천편이라고 보시면 될 듯합니다. 테스트는 코드를 다 작성하고 나서 발견하지 못한 오류를 찾기 위해 나중에 작성하는 것이 아닌가라고 생각하시는 분이 꽤 되리라고 생각합니다. 시간과 공간 자원에 제약이 걸린 일반적인 프로젝트의 경우에는, 동작하는 코드를 만들기에 급급해서 테스트라는 부분을 소홀히 하는 경우도 드물지 않을 것입니다. 그리고 그때 테스트를 수행한다고 해도 그건 요구사항에 적합한지 확인하는 인수 테스트(acceptance test)이죠.

이 책은 단위테스트를 왜 도입해야 하는가에 대해 서론에서 매우 설득력 있게 설명하고 있습니다. 원천적으로 오류가 없는 소프트웨어란 매우 어렵습니다. 목적은 매 순간의 코드를 단위테스트를 통해 검증함으로써 나중에 일어날 수 있는, 즉 찾지 못한 오류가 누적됨으로써 발생하는 재앙을 막아보자는 데 있습니다. 이런 패턴적 문제 해결은 애자일 쪽과 통하는 면이 있습니다. 코드를 작성함으로써 부산물로 나오는 단위테스트 코드는, 그 코드를 후에 인수할 사람들에게는 좋은 문서이자, 참고자료, 나침반이 됩니다.

이 책에서는 JUnit으로 테스트를 작성하는 근본적인 부분부터, 테스트의 대상은 무엇인지, 모의 객체는 어떻게 사용하는지, 프로젝트에서는 테스트를 어떤 식으로 할 것인지 등에 대해 차근차근 다루고 있습니다. 재치있는 약자를 통해 쉽게 책의 내용을 숙지할 수 있도록 돕는 것도 책의 장점입니다. 이를 테면 Right-BICEPCORRECT가 있습니다.

사실 이 책을 고른 이유는, 책의 서문에서 비록 이 책이 예제는 Java를 사용하고 JUnit 프레임워크를 사용했지만 다른 60개가 넘는 언어에서 비슷한 테스트 프레임워크가 지원된다고 했기 때문입니다. c2.com에서 Testing Framework라는 문서를 통해 다양한 프레임워크가 있다는 것을 알 수 있습니다. 개인적으로 SmlUnit[각주:1]이라는 테스팅프레임워크를 다루어 보려고 하다가, 막막해서 JUnit에 대한 책이 나와 있으니 이 책을 우선 참고하는게 어떨까 하는 생각이었죠.

프로젝트에 단위테스트를 도입하여 꾸준한 피드백으로 잘 조직화된 코드를 작성한다면, 유지보수성이 높고 안정적인 결과물이 나오지 않을까 생각해 봅니다.
단위 테스트 (실용주의 프로그래머를 위한) 상세보기
데이비드 토머스 외 지음 | 인사이트 펴냄
소프트웨어 개발의 생산성을 증대하기 위한 기본 도구들을 다룬 '시작 도구 시리즈'의 두번째 책으로 JUnit를 이용한 단위테스트 방법을 소개한다. 이 책은 테스트를 통해 요구사항을 좀더 명확히 하고 질 높은 소프트 웨어를 개발하고자 하는 테스트 주도 개발에 중점을 두고, 자동화 테스트 기구인 JUnit을 이용하여 무엇을 어떻게 테스트할 것인지 구체적이고 실용적인 방법을 제안하고 있다.

  1. SML#, SML/NJ, MLton을 지원하는 Standard ML 버전 프레임워크. SML#-SMLUnit에서 JUnit의 이식된 버전임을 밝히고 있다. SML#의 도구로 포함되어 있다. SML#은 SML에서 C와의 한결같은 상호운용성, 레코드 다형성, 랭크1 다형성 등을 확장한 것이다. 도호쿠 대학 전기통신 연구소에서 일본 문부과학성 등의 후원을 받고 있다. [본문으로]
반응형

+ Recent posts