1부 유연성
1장 객체지향 프로그래밍의 복잡성
1.1 OOP 설계: 정통인가? 고전인가?
1.1.1 설계 단계
1.1.2 UML 기초
1.1.3 클래스도 상세 설명
1.1.4 구현 단계
1.2 복잡성의 근원
1.2.1 다량의 클래스 간 관계
1.2.2 예상치 못한 코드 동작
1.2.3 쉽지 않은 데이터 직렬화
1.2.4 복잡한 클래스 계층 구조
요약
2장 코드와 데이터 분리
2.1 DOP 시스템의 두 부분
2.2 데이터 개체
2.3 코드 모듈
2.4 이해하기 쉬운 DOP 시스템
2.5 유연한 DOP 시스템
요약
3장 기본 데이터 조작
3.1 데이터 모델 설계
3.2 맵으로 관리되는 레코드
3.3 범용 함수를 사용한 데이터 조작
3.4 검색 결과 연산
3.5 이종 자료형의 레코드 처리
요약
4장 상태 관리
4.1 다중 버전 시스템 데이터
4.2 구조적 공유
4.3 구조적 공유 구현
4.4 데이터 안전성
4.5 변경의 반영 단계
4.6 시스템 상태 무결성 보장
4.7 이전 상태 복원
요약
5장 기본 동시성 제어
5.1 낙관적 동시성 제어
5.2 동시 변경 조정
5.3 컬렉션 축소
5.4 구조적 비교
5.5 조정 알고리듬 구현
요약
6장 단위 테스트
6.1 간결한 데이터 지향 테스트 케이스
6.2 데이터 조작 코드의 단위 테스트
6.2.1 함수 호출 트리
6.2.2 끝 단 함수의 단위 테스트
6.2.3 트리 중간 노드의 단위 테스트
6.3 조회 함수의 단위 테스트
6.4 변경의 단위 테스트
다음 단계
요약
2부 확장성
7장 기본 데이터 유효성 확인
7.1 DOP의 데이터 유효성 확인
7.2 JSON 스키마 소개
7.3 유연하고도 엄격한 스키마
7.4 스키마 합성
7.5 데이터 유효성 오류 상세 정보
요약
8장 고급 동시성 제어
8.1 복잡한 잠금
8.2 스레드 안전한 원자 계수기
8.3 스레드 안전한 원자 캐시
8.4 원자
이 책에서 다루는 내용
데이터와 코드의 분리
일반화 자료형을 사용한 데이터의 표현
데이터 변경 없는 상태 관리
대규모 시스템의 동시성 제어
데이터 지향 단위 테스트 작성
데이터 규격 지정
이 책의 대상 독자
자바, C#, C++, 루비, 파이썬 같은 고급 프로그래밍 언어를 사용한 경험이 있는 프론트엔드, 백엔드, 풀 스택 개발자를 위한 책이다. 객체지향 프로그래밍 개발자라면 이 책에서 제시하는 몇 가지 발상이 다소 불편할 수 있고 이미 익숙한 프로그래밍 패러다임을 버려야 할 수도 있다. 함수형 프로그래밍 개발자는 이 책을 좀 더 쉽게 소화할 수 있다. 하지만 그들에게도 놀랄 만한 요소는 있을 것이다.