로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

Code Reading : 오픈 소스 관점에서 본 코드 읽기

   
지은이 Diomidis Spinellis/류광   |   출판사 정보문화사  |   발행일 2004년 05월 15일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 25,000원22,500원 10%
마일리지 5% 1,250원
발행일 2004-05-15
ISBN 8956741867 |  9788956741864
기타정보 번역서 | 610쪽
예상출고일
배송비 무료배송
   
컴퓨터공학
종합지수 14p 29 위
   
이 책의 원서
  Code Reading: The Open Source Perspective
Addison-Wesley Professional | Diomidis Spinellis
주의사항 더이상 출간되지 않습니다.
 

프로그래머라면 이 책을 읽어야 한다!
코드를 왜 읽는가? 코드를 수정하거나, 검토하거나, 개선시키기 위해 반드시 코드를 읽어야 하는 때도 있다. 아니면 기술자들이 기계 안에 뭐가 들어 있나 궁금해서 살펴보듯이 코드를 읽을 수도 있다. 또는 뭔가 재사용할만한 것을 찾아보려고 코드를 읽을 수도 있다.

코드 읽기는 고유한 기술들이 필요한, 그리고 언제 어떤 기법을 사용해야 할 지 판단하는 능력이 중요한 활동이다. 저자 Diomidis Spinellis는 600 개 이상의 실제 예제들을 통해서 좋은(그리고 나쁜) 코드를 식별하는 법, 그것을 읽는 법, 중요한 부분을 찾는 법, 그리고 그러한 지식을 가지고 독자 자신의 코드를 개선시키는 법을 보여준다.

진실: 여러분이 좋은 코드를 읽는 습관을 가진다면, 스스로 더 나은 코드를 작성할 수 있게 될 것이다.

제 1 장 도입

1.1 코드를 왜, 어떻게 읽어야 하나
1.1.1 문학으로서의 코드
1.1.2 본보기로서의 코드
1.1.3 유지보수
1.1.4 진화
1.1.5 재사용
1.1.6 검토

1.2 이 책을 읽는 방법
1.2.1 편집, 조판 관례
1.2.2 다이어그램
1.2.3 연습 문제
1.2.4 보충 자료
1.2.5 도구들
1.2.6 개요
1.2.7 격렬한 언어 논쟁
더 읽을거리

제 2 장 기본적인 프로그래밍 요소들

2.1 하나의 완전한 프로그램
2.2 함수와 전역 변수
2.3 while 루프, 조건문, 블럭
2.4 switch 문
2.5 for 루프
2.6 break 문과 continue 문
2.7 문자와 부울 표현식
2.8 goto 문
2.9 작은 규모의 리팩토링
2.10 do 루프와 정수 표현식
2.11 다시 제어 구조로
더 읽을거리

제 3 장 고급 C 자료형

3.1 포인터
3.1.1 연결된 자료구조
3.1.2 자료구조의 동적 할당
3.1.3 참조 전달 호출
3.1.4 자료 원소 접근
3.1.5 함수의 인수와 반환값으로서의 배열
3.1.6 함수 포인터
3.1.7 별칭으로서의 포인터
3.1.8 포인터와 문자열
3.1.9 메모리에 직접 접근

3.2 구조체
3.2.1 자료 요소들을 한데 묶기
3.2.2 한 함수에서 여러 개의 자료 요소들을 반환
3.2.3 자료 조직화를 표현
3.2.4 객체 지향 방식의 프로그래밍

3.3 공용체
3.3.1 저장 효율성
3.3.2 다형성의 구현
3.3.3 서로 다른 내부 표현들에 접근

3.4 동적 메모리 할당
3.4.1 메모리 해제의 관리
3.4.2 동적으로 할당된 배열을 가진 구조체

3.5 typedef 선언
더 읽을거리

제 4 장 C 자료구조

4.1 벡터
4.2 행렬과 테이블
4.3 스택
4.4 대기열
4.5 맵
4.5.1 해시 테이블

4.6 집합
4.7 연결된 목록
4.8 트리
4.9 그래프
4.9.1 노드의 저장
4.9.2 간선의 표현
4.9.3 간선의 저장
4.9.4 그래프의 특성
4.9.5 숨겨진 구조
4.9.6 다른 표현 방식들
더 읽을거리

제 5 장 고급 제어 구조

5.1 재귀
5.2 예외
5.3 병렬성
5.3.1 하드웨어 병렬성과 소프트웨어 병렬성
5.3.2 제어 모형들
5.3.3 여러 가지 스레드 구현들

5.4 신호
5.5 비국소 점프
5.6 매크로 치환
더 읽을거리

제 6 장 대형 프로젝트 공략

6.1 설계 및 구현 기법들
6.2 프로젝트 조직화
6.3 빌드 공정과 makefile
6.4 구성
6.5 리비전 제어
6.6 프로젝트 전용 도구들
6.7 테스팅
더 읽을거리

제 7 장 코딩 표준과 관례

7.1 파일 이름과 조직화
7.2 들여쓰기
7.3 포매팅
7.4 명명 규약
7.5 프로그래밍 관행
7.6 공정 표준
더 읽을거리

제 8 장 문서화

8.1 문서화 종류
8.2 문서 읽기
8.3 문서화의 문제점들
8.4 추가적인 문서화 자료
8.5 일반적인 오픈소스 문서화 형식들
더 읽을거리

제 9 장 아키텍처

9.1 시스템 구조
9.1.1 중앙집중적 저장소와 분산된 접근방식
9.1.2 자료 흐름 아키텍처
9.1.3 객체 지향적 구조
9.1.4 계층적 아키텍처
9.1.5 계통구조
9.1.6 분할

9.2 제어 모형들
9.2.1 사건 주도적 제어 구조
9.2.2 시스템 관리자
9.2.3 상태 전이

9.3 요소의 패키징
9.3.1 모듈
9.3.2 이름공간
9.3.3 객체
9.3.4 일반화된 구현
9.3.5 추상 자료형
9.3.6 라이브러리
9.3.7 프로세스와 필터
9.3.8 구성요소
9.3.9 자료 저장소

9.4 아키텍처 재사용
9.4.1 프레임웍
9.4.2 코드 마법사
9.4.3 설계 패턴
9.4.4 특정 영역 전용 아키텍처
더 읽을거리

제 10 장 코딩 읽기 도구

10.1 정규 표현식
10.2 코드 브라우저로서의 편집기
10.3 grep을 이용한 코드 검색
10.4 파일 차이 보기
10.5 자작 도구
10.6 코드 읽기 도구로서의 컴파일러
10.7 코드 브라우저와 미화기
10.8 실행 시점 도구들
10.9 비 소프트웨어 도구들
사용할 수 있는 도구 정보와 더 읽을거리

제 11 장 완전한 예제 하나

11.1 개요
11.2 공략 계획
11.3 코드 재사용
11.4 테스팅과 디버깅
11.5 문서화
11.6 관찰

부록 A 부록 CD에 수록된 소스 코드 개관

부록 B 소스 코드 크레디트

부록 C 본문에 언급된 소스 파일들

부록 D 소스 코드 사용권 정보
D.1 ACE
D.2 Apache
D.3 Argo UML
D.4 DemoGL
D.5 hsqldb
D.6 Net BSD
D.7 OpenCL
D.8 Perl
D.9 qtchat
D.10 socket
D.11 vcf
D.12 X Window System

부록 E 코드 읽기 격언들
1 장: 도입
2 장: 기본적인 프로그래밍 요소들
3 장: 고급 C 자료형
4 장: C 자료구조
5 장: 고급 제어 구조
6 장: 대형 프로젝트 공략
7 장: 코딩 표준과 관례
8 장: 문서화
9 장: 아키텍처
10 장: 코딩 읽기 도구
11 장: 완전한 예제 하나

참고문헌

인용구 출처
Diomidis Spinellis는 1985 년부터 혁신적이고 수상 경력에 빛나는 수많은 상용 및 오픈소스 프로젝트들을 위해 250,000 줄 이상의 코드를 개발, 관리해 오면서 이 책에 제시된 기법들을 발전시켰다. 그는 Universit of London의 Imperial College에서 소프트웨어 공학 석사 학위와 전산학 박사 학위를 받았다. 현재 그는 Athens University of Economics and Business Department of Management Science의 조교수이다.



[역자 소개]
류광
1996년부터 프로그래밍 서적 전문 번역가로 활동중이다.
지금까지 '재미있게 빠져드는 C++ 프로그래밍의 함정', 'Beginning C#', 'Professional JSP', 'Beginning XHTML', 'Professional ADO 2.5 RDS Programming with ASP 3.0', 'GDI +Programming: C#을 이용한 사용자 지정 컨트롤 작성하기', 'core PHP Programming', 'Understanding COM+', 'The JFC Swing Tutorial', 'Professional XML Applications', 'Waite Group의 C++ How-To' 등 다양한 분야의 프로그래밍 서적들을 번역했다. 이 외에도 'Game Programming Gems(1, 2, 3)' 시리즈를 비롯해서 'OpenGL Game Programming', '3D 게임 프로그래밍 & 컴퓨터 그래픽을 위한 수학', 'AI Game Programming Wisdom', 'Direct3D ShaderX: 정점 & 픽셀 셰이더 팁과 트릭', '게임 프로그래머를 위한 자료구조와 알고리즘', 'Game Coding Complete' 등 여러 게임 프로그래밍 서적들을 번역했으며, 또한 잡지 Game Developer 한국어판의 고정 번역자로 활동해왔다.

현재 번역서 정보사이트 "occam's Razor"(http://occam.com.ne.kr)와 Game Programming Gems 스터디 사이트 "GPGstudy.com"(http://gpgstudy.com)을 운영하고 있다.



[저자·역자 Prolog]
오래 전부터 코드 읽기에 대한 책이 필요하다고 생각을 했었는데 그런 책이 나왔고 또 그걸 직접 번역까지 하게 되어서 정말 기쁩니다.
코드 읽기 또는 코드 이해(code comprehension)에 관련된 논문들은 좀 있지만, 코드 읽기 기술을 가르치는 책은 (적어도 영어를 비롯한 주요 언어들에서)이 책이 처음이라고 알고 있습니다. 왜 이제야 나왔을까요? 코드를 읽는 것이 코드를 쓰는 것만큼이나 중요하다는 어쩌면 당연한 이야기를 아무도 몰랐을까요? 아닐 겁니다. 개인적으로는 체계나 절차, 방법론보다 개발자, 즉 사람이 더 중요하다는 관점이 점점 퍼지는 것과 관련이 있을 것이라는 생각이 듭니다. 사람을 어떻게 준비할 것인가를 진지하게 고민한 결과의 하나가 바로 이런 코드 읽기가 아닐까 합니다.
이 책에 대해 기대가 컸고 실제로 기대에 근접하는 만족을 얻긴 했습니다만, 좀 아쉬운 점도 있었습니다. 좀 더 깊게 파고 들어갔으면 좋았을 주제들도 있었고, 간단히 짚고 넘어가도 되었을 것도 있었습니다. 그러나 전체적으로 보면, 너무 욕심을 부리지 않고 여러 측면들을 적절히 훑은 것, 그리고 주로 오픈소스 프로젝트들과 그들에서 가장 널리 쓰이는 C 언어를 중심으로 한 것 등은 올바른 선택이었다고 생각합니다.
뭐, 책에 대해서는 Dave Thomas가 머리말에서 잘 소개하고 있으므로 덧붙이지 않겠습니다. 다만, 이 책의 원서가 2003 Jolt Award Technical Books 부문의 Productivity Award를 수상했다는 점을 언급하지 않을 수 없겠네요.
(http://www.sdmagazine.com/ pressroom/031804_jolt_winners.pdf 참고). 그 상의 수상은 이 책에 대한 커다란 찬사가 아닐 수 없습니다. 저자와 출판사에게 축하의 말을 전하고 싶습니다. 이 번역서도 그 정도의 찬사를 받을 수 있길 바랍니다.
책 자체에 대한 이야기는 그 정도로 하고요. 바람이 있다면, 이 책이 더 많은 논의가 일어나고 새로운 책들이 쏟아지는 계기가 되는 것입니다. 새로운 책들이라고 한다면 두 종류의 책들을 생각할 수 있는데요. 첫 번째는, 영어가 모국어가 아닌 사람들의 코드 읽기를 돕는 책입니다. 프로그래밍 언어의 주요 키워드들이 영어에 기반하고, 또 주석도 영어, 문서화도 영어인 코드를 비영어권 개발자가 읽는 데에는 영어권 개발자보다 더 많은 노력과 또 다른 전략, 기법이 필요할 것입니다. 예를 들어 프로그래밍 필수 영단어 5000이라던가 주석에 주로 쓰이는 숙어 100 개 같은 주제는 어떨까요? 두 번째는 특정 언어 또는 특정 응용 분야에 대한 책입니다. 예를 들어 C++의 흔치 않은 코드 표현 해독법이라든지 3차원 게임 소스 코드를 읽기 위해 꼭 필요한 지식들, 그런 코드에 주로 쓰이는 관용구 등을 다룬 책 등등. 그런 책들이 많이 나왔으면 좋겠습니다.
첫 번째 분야에 대해서는 저 개인적으로도 큰 관심을 가지고 있습니다. 사실 그 주제에 관련한 간단한 글을 쓴 적도 있고요(궁금하신 분은 제 홈페이지의 이 책에 대한 페이지를 참고하시길). 그러나 본격적인 책을 쓰기에는 역량이 부족하고요. 이 책, 그리고 이 역자의 글을 읽고 영감을 받은 누군가가 그런 책을 낸다면 제게 정말 큰 보람이 될 것입니다.

역자 류 광
[code reading] 별로..
홍승리님이 쓰신 서평보기 I 평점 I 조회수(1363) I 공감 (0) I 블로그
추천서를 보고 산것이 실수였다면 실수 일것이다. 처음 이 책을 사려고 했던것은 추천서에 나오는 것 처럼 실제로 code 를 잘 읽을 수 있다면 코딩 실력 향상에 많은 도움을 줄거라  생각했기 때문이다.  하지만, 이 책은 지루하고 정확하게 무엇을 말하고자 하는 것인지 논지가 불분명해 보이는 듯하며 그리고 글의 구조(위치)자체가 별로여서 인지 아니면 나의 독서력이 떨어져서인지는 알수 없으나 어쨌든 내가 몰입해서 읽기에는 상당히 고통스러운 책이었...
처음 입문시 읽으면 괜찮을거 같다.
송재운님이 쓰신 서평보기 I 평점 I 조회수(1300) I 공감 (0) I 블로그
어느정도 경력이 있는 사람이..읽으면 무언가 얻는게 있긴하겠지만..그것이 미미할수도 있다고 본다. 이제 프로그래머로서의 길을 들어서는 분들이라면 읽으면 얻는게 그래도 좀 있을거 같다.  
코드에 대한 감동
김용환님이 쓰신 서평보기 I 평점 I 조회수(2408) I 공감 (0) I 블로그
제가 대학생시절에 나왔으면 얼마나 좋았을까 하는 생각이 들 정도의 여운과 오랜만에 전공관련된 서적을 읽으며 뭉클한 감정이 나오는 것은 무엇일까요? 저는 java 어플리케이션 개발자로 시작하면서, c를 이용한 미들웨어의 일부분을 구현하고 열심히 c를 가지고 장난을 치고 있습니다. 부끄러운 고백이지만, 대학생일 때, 자료구조를 F 학점을 받은 첩보원(?)이었고, C언어를 너저분한 언어(?)라고 생각하고, Java가 앞으로 모든 세상을 지배해 줄꺼라는 교조주의에 빠진 학...
이 책이 왜 code reading 이지??
이주헌님이 쓰신 서평보기 I 평점 I 조회수(1313) I 공감 (0) I 블로그
개인적으로 오픈된 소스를 읽어 보고 이해하는 걸 좋아해서 자주 하는 편인데 대형 프로젝트 같은 경우 굉장히 힘들다는 생각이 든다. 그래서 우연히 보게 된 이 책을 당장 구입하였다. 그런데 책을 대충 훑어 보아도 대 실망이다. 그저 프로그래밍 기초에 대한 책 정도 밖에 안된다. 웬만한 책에 나온 것을 체계적으로 정리한 정도 밖에 안된다. 이책을 본다고 해도 그저 기초를 닦은 것이기 때문에 code reading 하게 되면 읽으나 마나인거 같다. 웬만한 프로그래밍 언어...
다른 사람들이 만든 코드를 본다는것은...
이랑혁님이 쓰신 서평보기 I 평점 I 조회수(1250) I 공감 (0) I 블로그
다른 사람들의 코드를 본다는 것은 차~암 짜증나는 일이 되는경우가 많습니다.인내심을 같고,될수 있으면 즐거운 마음으로 보세요.이책도 그런 맘으로 보시길 ㅋㅋ
소설 보듯 볼 수 있는 책.
윤종희님이 쓰신 서평보기 I 평점 I 조회수(2067) I 공감 (0) I 블로그
주제는 책 제목 그대로다.코드를 빠르고 정확하게 읽는 방법에 대해서 가르쳐 준다.주로 NetBSD 커널 소스를 예로 들어서 자주 사용되는 좋은 패턴들을 설명한다. 기본적인 제어구조부터 시작한다.if, while, do-while, switch-case등의 제어 구조가 어떻게효율적으로 쓰이고 어떤 의미를 나타내는지 설명한다. C 자료형에서는 포인터와 구조체, 그리고 공용체(union)의 장단점을 설명하고 고급 사용 패턴을 설명한다.공용체는 혼란을 야기 하기 때문에 가급적 사용을 자제 ...
기대가 너무 크면 안되나봐요 ....
이재경님이 쓰신 서평보기 I 평점 I 조회수(1204) I 공감 (0) I 블로그
정보문화사 책을 세권 샀어요 여기에서요 .....하나는 디버깅책이구요 두번째는 네트워크 프로그래밍 책 그리고 이책인데요 이책을 제일 먼저 구입했는데요 아직도 잘못보고있는 책입니다 수준을 어디에다가 두어야 할지를 잘모르겠네요 일단 제가 읽어보니......좀 모호해서요 수상까지한 책이라고해서 제가 너무 대단한걸 기대했나보네요 ^^여기서 긴급제안 하나 ! 책에 저자가 유명하다거나 ....상을 받은것도 자랑할만한 책에 장점이지만요 내용이 어느정도인지 좀 상세희 설명되어...
음식으로 따지면 다소 싱거운?
심승준님이 쓰신 서평보기 I 평점 I 조회수(1358) I 공감 (0) I 블로그
프로그래밍에 익숙한 사람들에게는 딱히 건질만한게 없고, 초보 프로그래머들은 다소 난해(?)할만한 내용들로 이루어져 있습니다. 음식으로 따지자면 처음 음식을 대하는 사람은 짜고 맵게 느껴지겠지만, 몇번 접해본 사람에게는 다소 싱거운 느낌이랄까? 번역수준은 무난해서 읽기는 수월하지만, 여러가지 프로그래밍 전반에 대한 소개조의 진행은 다소 지루함을 느낄수 있을 듯 합니다. 너무 깊지도 않고 너무 얕지도 않은 그만그만한 깊이의 소개는 어쩌면 이책을 정말 유...
 
전체평균(30)
회원평점   회원서평수 8
[code reading] 별로..
홍승리 님  2008-06-14
처음 입문시 읽으면 괜찮을거 같다.
송재운 님  2007-05-28
코드에 대한 감동
김용환 님  2006-04-06
이 책이 왜 code reading 이지??
이주헌 님  2006-03-18
다른 사람들이 만든 코드를 본다는것은...
이랑혁 님  2006-03-09
소설 보듯 볼 수 있는 책.
윤종희 님  2005-05-20
기대가 너무 크면 안되나봐요 ....
이재경 님  2004-09-17
음식으로 따지면 다소 싱거운?
심승준 님  2004-08-11
이메일주소수집거부