목차
저자 서문
1부 | 코드 이야기
1장_좋은 코드를 위한 고민
코드의 본질
좋은 코드를 위한 은유
좋은 코드를 위한 추상화
관심사의 분리
1장을 마치며
2장_안전한 코드를 위해서
버그와 장애
테스트 자동화
테스트 가능한 코드
테스트 환경
포스트 모텀
2장을 마치며
3장_코드 속 버그 잡아내기
동전의 양면과 같은 코딩과 디버깅
기상천외한 버그들
탐정이 될 시간
기본적인 디버깅 기술
그래도 안 풀려요!
3장을 마치며
4장_코드에도 패턴이 있다
건축학 개론
소프트웨어에서의 패턴
패턴의 발견
패턴이 유용한 이유
패턴의 유혹
4장을 마치며
5장_깃, 나는 네가 지난여름에 짠 코드를 알고 있다
버전을 관리해야 하는 이유
버전 관리 시스템의 역사
깃을 만든 리누스 토발즈
커밋 메시지 잘 작성하기
하나의 변경은 하나의 커밋으로
커밋으로 협업하기
5장을 마치며
6장_여전히 성장 중인 자바
다재다능한 자바
자바의 탄생
자바와 JVM
자바를 싫어하는 사람들
객체 지향 패러다임
6장을 마치며
7장_간결한 코드를 위한 파이썬
파이썬의 탄생
파이썬의 생산성
파이썬 vs. 펄
Pythonic하게 코드를 짜세요
7장을 마치며
8장_구글이 만든 프로그래밍 언어, Go
Go의 탄생
Go가 해결하고자 했던 문제
동시성 프로그래밍의 어려움
Go의 동시성 프로그래밍
경량 스레드, 고루틴
Go의 오류 처리
8장을 마치며
2부 | 환경 이야기
9장_서버 환경의 변화
정적 링크와 동적 링크
패키지 관리자
설치 문서
프로비저닝 도구
컨테이너의 시대
새로운 시대의 운영체제, 쿠버네티스
9장을 마치며
10장_클라우드로의 여정
전산실에서 IDC로
IDC에서 클라우드로
IaaS, PaaS, SaaS
클라우드 전환기
클라우드 네이티브의 특징
10장을 마치며
11장_태생의 한계에 도전하는 웹 이야기
웹의 탄생
정적인 웹에서 동적인 웹으로
Ajax의 등장
또 하나의 자바스크립트
jQuery의 군림
새로운 자바스크립트 프레임워크의 등장
싱글 페이지 애플리케이션
서버 측 랜더링이 포함된 SPA
11장을 마치며
12장_데이터베이스: 초기부터 오늘날까지
데이터가 사는 곳: 메모리와 디스크
데이터베이스의 등장
관계형 데이터베이스의 저력
관계형 데이터베이스의 한계
새로운 데이터베이스를 위한 시도: NoSQL
12장을 마치며
13장_웹 서비스를 위한 아키텍처 성장기
최초의 애플리케이션
애플리케이션 서버의 확장
데이터베이스 서버의 확장
캐시
HTTP 캐시
애플리케이션 캐시
CDN을 이용한 캐시
13장을 마치며
14장_모니터링으로 꿰뚫어보기
베일에 감춰진 코드의 동작
시스템 관리자의 모니터링
모니터링 데이터: 메트릭
모니터링 데이터: 로그
데이터 시각화
24/7 모니터링을 위한 알림 창
이상치 탐지
14장을 마치며
15장_코드는 파이프라인을 타고
소프트웨어 배포
배포의 고통
지속적인 배포를 위해
간단한 ‘지속적인 배포’ 맛보기
GitOps
무중단 배포
15장을 마치며
16장_마이크로서비스
서브 루틴의 진화
마이크로서비스의 출현
마이크로서비스의 한계
마이크로서비스 간의 통신
마이크로서비스로의 전환
장애 전파
SRE: Site Reliability Engineering
16장을 마치며
17장_데이터 포맷
네트워크 너머로 데이터 보내기
0과 1로 표현하기
비트들을 그대로 저장할 수 없는 이유
직렬화
17장을 마치며
3부 | 개발자 이야기
18장_프로그래밍에 대한 열정
재미있고 어렵다
프로그래밍을 향한 동기
결과물 파 vs 순수 코드 파
몰입의 즐거움
18장을 마치며
19장_더 나은 개발자로 성장하기
성장 가능성
무엇을 먼저 공부해야 하나
개발자의 자질
좋은 개발자의 모습
끊임없는 학습
안전지대 벗어나기
나보다 나은 개발자 만나기
기술 블로그 만들기
토이 프로젝트 및 스터디
19장을 마치며
20장_더 나은 팀 문화를 위하여
개발팀의 문화
업무 환경의 변화
비동기 의사소통
문서화의 중요성
모두의 코드를 위한 리뷰
20장을 마치며
19장_더 나은 개발자로 성장하기
성장 가능성
무엇을 먼저 공부해야 하나
개발자의 자질
좋은 개발자의 모습
끊임없는 학습
안전지대 벗어나기
나보다 나은 개발자 만나기
기술 블로그 만들기
토이 프로젝트 및 스터디
19장을 마치며
20장_더 나은 팀 문화를 위하여
개발팀의 문화
업무 환경의 변화
비동기 의사소통
문서화의 중요성
모두의 코드를 위한 리뷰
20장을 마치며
찾아보기