데이터 지향 프로그래밍 : 불필요한 복잡도를 낮추는 설계 원칙의 발견
Description
데이터 지향 프로그래밍은 데이터를 데이터로 다룬다는 간단한 발상에 기반해 단순하면서도 최신의 해결책을 알려주는 책이다. 이해하기 쉽도록 이야기 식으로 전개되는 이 책은 우리가 그동안 지나치게 복잡한 기술을 사용해서 데이터 중심 애플리케이션을 만들고 있었고, 그 때문에 불필요한 복잡성에 빠져 있었다고 일깨워준다. 그리고 네 가지 데이터 지향 프로그래밍 원리로 단순하게 문제를 푸는 방법을 설명한다. 책 서두에 제시된 원리를 대규모 시스템이나 팀 개발에 적용하는 현실적인 도전에 대한 의외의 답을 접하면서 사고의 틀이 확장됨을 경험할 수 있을 것이다.

저자

예호나탄샤르빗

저자:예호나탄샤르빗
소프트웨어엔지니어로C++,자바,루비,자바스크립트,클로저,클로저스크립트를사용한백엔드와프론트엔드프로그래밍에서20년이상의경험을쌓아왔다.현재는사이코그니토(Cycognito)에서대규모데이터파이프라인의소프트웨어인프라를구축하는소프트웨어아키텍트로일하고있다.프로그래밍에대한열정을블로그(blog.klipse.tech/)와기술콘퍼런스에서공유하며,엑스(x.com/viebel)에서팔로우할수있다.

역자:박성철
중학교2학년때이른바‘중2병’으로컴퓨터에푹빠진후지금까지40년가량컴퓨터를매개로세상을탐험하고있다.평생혼자살운명이었으나천사를만나구원받고용인의한적한산기슭에서아들과함께셋이서행복한가정을꾸리고산다.지금은컬리에서멋진개발자들과함께IT와데이터기술을바탕으로세상을바꾸는즐거운퀘스트를수행중이다.소프트웨어개발에대한인식을바꾸고개발현장을개선하는데관심이많다.

목차


1부유연성
1장객체지향프로그래밍의복잡성
1.1OOP설계:정통인가?고전인가?
1.1.1설계단계
1.1.2UML기초
1.1.3클래스도상세설명
1.1.4구현단계
1.2복잡성의근원
1.2.1다량의클래스간관계
1.2.2예상치못한코드동작
1.2.3쉽지않은데이터직렬화
1.2.4복잡한클래스계층구조
요약

2장코드와데이터분리
2.1DOP시스템의두부분
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.1DOP의데이터유효성확인
7.2JSON스키마소개
7.3유연하고도엄격한스키마
7.4스키마합성
7.5데이터유효성오류상세정보
요약

8장고급동시성제어
8.1복잡한잠금
8.2스레드안전한원자계수기
8.3스레드안전한원자캐시
8.4원자기반상태관리
요약

9장영속자료구조
9.1영속자료구조의필요성
9.2영속자료구조의효율성
9.3영속자료구조라이브러리
9.3.1자바영속자료구조
9.3.2자바스크립트영속자료구조
9.4실무영속자료구조
9.4.1영속자료구조를사용한조회코드
9.4.2영속자료구조를사용한변경코드
9.4.3직렬화와역직렬화
9.4.4구조적비교
요약

10장데이터베이스작업
10.1데이터베이스에서데이터를가져오는작업
10.2데이터베이스에데이터저장하기
10.3단순한데이터조작
10.4복잡한데이터조작
요약

11장웹서비스
11.1또다른기능요청
11.2외부와동일한내부구축
11.3맵으로표현되는클라이언트요청
11.4맵으로표현되는서버응답
11.5정보전달
11.6실제검색결과보강
일정준수
요약

3부유지보수성
12장고급데이터유효성확인
12.1함수인자유효성확인
12.2반환값유효성확인
12.3고급데이터유효성확인
12.4데이터모델도식자동생성
12.5스키마기반단위테스트자동생성
12.6새로운선물
요약

13장다형성
13.1다형성의핵심
13.2단일디스패치다중메서드
13.3다중디스패치다중메서드
13.4동적디스패치다중메서드
13.5실운영시스템에다중메서드통합
요약

14장고급데이터조작
14.1풍부한표현의맵값갱신
14.2중첩된데이터조작
14.3최적의도구사용
14.4배열필드해체
요약

15장디버그
15.1프로그래밍결정론
15.2숫자와문자열을사용한재현
15.3모든데이터유형에서재현
15.4단위테스트
15.5외부데이터테스트
작별
요약

부록A데이터지향프로그래밍원리
부록B정적타입언어의범용데이터접근
부록C패러다임의발전과데이터지향프로그래밍
부록D로대시요약

출판사 서평

이책에서다루는내용

데이터와코드의분리
일반화자료형을사용한데이터의표현
데이터변경없는상태관리
대규모시스템의동시성제어
데이터지향단위테스트작성
데이터규격지정

이책의대상독자

자바,C#,C++,루비,파이썬같은고급프로그래밍언어를사용한경험이있는프론트엔드,백엔드,풀스택개발자를위한책이다.객체지향프로그래밍개발자라면이책에서제시하는몇가지발상이다소불편할수있고이미익숙한프로그래밍패러다임을버려야할수도있다.함수형프로그래밍개발자는이책을좀더쉽게소화할수있다.하지만그들에게도놀랄만한요소는있을것이다.