스크랩

구간

데이터 지향 프로그래밍 불필요한 복잡도를 낮추는 설계 원칙의 발견

예호나탄 샤르빗 저 | 박성철 역 | 에이콘출판 | 2024년 10월

베스트셀러

북트리

정가
$80.00
판매가
$58.32 (27%↓) 최저가 보상
적립금
$1.17 (2%P)
출고예상일
2026년 10월 08일 수령예상일 안내
북카트 담기 바로구매하기 위시리스트담기

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9791161759227 / 600쪽 / 1,140g / 188 x 235 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

책 소개

반디앤루니스 리뷰

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

 

 

출판사 리뷰

이 책에서 다루는 내용

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

이 책의 대상 독자

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

저자 소개

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

역자 소개

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

목차

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 원자 기반 상태 관리
요약

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 로대시 요약

top