---
title: "@DiomidisSpinellis 코드 읽기: 오픈소스"
url: "https://notes.junghanacs.com/bib/20250527T164257"
author: "Junghan Kim"
date: "2025-05-27T16:42:00+09:00"
lastmod: "2025-05-27T16:42:00+09:00"
tags: ["code","reading","opensource","bib"]
description: "오픈소스 코드를 읽는 기술을 통해 설계, 품질, 협업 관행을 배우고 큰 시스템을 이해하는 실천적 방법을 제시한다."
---

> [!abstract] 이 노트에 대하여
> 
> 오픈소스 코드를 읽는 기술을 통해 설계, 품질, 협업 관행을 배우고 큰 시스템을 이해하는 실천적 방법을 제시한다.

## 히스토리

-   [2025-05-27 Tue 16:42] 아이더가 왜 이걸 지원하지? 이걸로 어떻게 작업 되는 것인가?

## 관련노트

-   [@tninja §aider.el 인공지능 페어프로그래밍 이맥스](https://notes.junghanacs.com/bib/20250527T164526)

## BIBLIOGRAPHY

- Diomidis Spinellis. 2004. *코드 읽기: 오픈소스 관점*. Translated by 류광. 정보문화사. <https://www.yes24.com/product/goods/1388275>.

## 코드 읽기: 오픈소스 관점 Code Reading: The Open Source Perspective

([Diomidis Spinellis 2004](https://notes.junghanacs.com/bib/20250527T164257#citeproc_bib_item_1)) Diomidis Spinellis 류광 2004

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

### 제 1 장 도입

-   1.1 코드를 왜, 어떻게 읽어야 하나
-   1.2 이 책을 읽는 방법
-   더 읽을거리

### 제 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.2 구조체
-   3.3 공용체
-   3.4 동적 메모리 할당
-   3.5 typedef 선언
-   더 읽을거리

### 제 4 장 C 자료구조

-   4.1 벡터
-   4.2 행렬과 테이블
-   4.3 스택
-   4.4 대기열
-   4.5 맵
-   4.6 집합
-   4.7 연결된 목록
-   4.8 트리
-   4.9 그래프
-   더 읽을거리

### 제 5 장 고급 제어 구조

-   5.1 재귀
-   5.2 예외
-   5.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.2 제어 모형들
-   9.3 요소의 패키징
-   9.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 관찰

-   부록 C 본문에 언급된 소스 파일들
-   부록 E 코드 읽기 격언들
-   참고문헌
-   인용구 출처
