견고한 데이터 엔지니어링

Book description

실용적인 데이터 엔지니어링의 세계로 이끄는 최고의 안내서!

고객 요구 사항에 맞는 시스템을 계획하고 구축하는 방법

데이터 엔지니어링 분야가 빠르게 성장하면서 많은 소프트웨어 엔지니어와 데이터 과학자, 분석가가 해당 분야에 대한 포괄적인 관점을 새롭게 모색하고 있다. 이 실용적인 책은 데이터 엔지니어링 수명 주기의 프레임워크를 소개하고 사용 가능한 최고의 기술을 평가한다. 또한 다양한 클라우드 기술을 결합함으로써 다운스트림 데이터를 소비하는 조직과 고객의 요구 사항에 따라 시스템을 계획하고 구축하는 구체적인 방법을 알려준다. 이 책을 다 읽고 나면 기본 기술과 관계없이 모든 데이터 환경에 중요한 데이터 생성, 수집, 오케스트레이션, 변환, 저장 및 거버넌스의 개념을 적용하는 방법을 이해할 수 있다.

Table of contents

  1. 처음으로
  2. 지은이 소개
  3. 옮긴이 소개
  4. 추천사
  5. 베타리더 후기
  6. 옮긴이의 말
  7. 이 책에 대하여
  8. 감사의 글
  9. PART I 데이터 엔지니어링 기반 구축하기
    1. CHAPTER 1 데이터 엔지니어링 상세
      1. 1.1 데이터 엔지니어링이란?
        1. 1.1.1 데이터 엔지니어링 정의
        2. 1.1.2 데이터 엔지니어링 수명 주기
        3. 1.1.3 데이터 엔지니어의 진화
        4. 1.1.4 데이터 엔지니어링과 데이터 과학
      2. 1.2 데이터 엔지니어링 기술과 활동
        1. 1.2.1 데이터 성숙도와 데이터 엔지니어
        2. 1.2.2 데이터 엔지니어의 배경과 기술
        3. 1.2.3 비즈니스 책임
        4. 1.2.4 기술 책임
        5. 1.2.5 A에서 B로 이어지는 데이터 엔지니어링 역할의 연속성
      3. 1.3 조직 내 데이터 엔지니어
        1. 1.3.1 내부 vs 외부 대면 데이터 엔지니어
        2. 1.3.2 데이터 엔지니어와 기타 기술 역할
        3. 1.3.3 데이터 엔지니어와 비즈니스 리더십
      4. 1.4 결론
      5. 1.5 참고 문헌
    2. CHAPTER 2 데이터 엔지니어링 수명 주기
      1. 2.1 데이터 엔지니어링 수명 주기란?
        1. 2.1.1 데이터 수명 주기 vs 데이터 엔지니어링 수명 주기
        2. 2.1.2 데이터 생성
        3. 2.1.3 데이터 저장
        4. 2.1.4 데이터 수집
        5. 2.1.5 데이터 변환
        6. 2.1.6 데이터 서빙
      2. 2.2 데이터 엔지니어링 수명 주기의 드러나지 않는 주요 요소
        1. 2.2.1 보안
        2. 2.2.2 데이터 관리
        3. 2.2.3 데이터옵스
        4. 2.2.4 데이터 아키텍처
        5. 2.2.5 오케스트레이션
        6. 2.2.6 소프트웨어 엔지니어링
      3. 2.3 결론
      4. 2.4 참고 문헌
    3. CHAPTER 3 우수한 데이터 아키텍처 설계
      1. 3.1 데이터 아키텍처란?
        1. 3.1.1 엔터프라이즈 아키텍처 정의
        2. 3.1.2 데이터 아키텍처 정의
        3. 3.1.3 우수한 데이터 아키텍처
      2. 3.2 우수한 데이터 아키텍처의 원칙
        1. 3.2.1 원칙 1: 공통 컴포넌트를 현명하게 선택하라
        2. 3.2.2 원칙 2: 장애에 대비하라
        3. 3.2.3 원칙 3: 확장성을 위한 아키텍처를 설계하라
        4. 3.2.4 원칙 4: 아키텍처는 리더십이다
        5. 3.2.5 원칙 5: 항상 아키텍처에 충실하라
        6. 3.2.6 원칙 6: 느슨하게 결합된 시스템을 구축하라
        7. 3.2.7 원칙 7: 되돌릴 수 있는 의사결정을 하라
        8. 3.2.8 원칙 8: 보안 우선순위를 지정하라
        9. 3.2.9 원칙 9: 핀옵스를 수용하라
      3. 3.3 주요 아키텍처 개념
        1. 3.3.1 도메인과 서비스
        2. 3.3.2 분산 시스템, 확장성, 장애에 대비한 설계
        3. 3.3.3 강한 결합 vs 느슨한 결합: 계층, 모놀리스, 마이크로서비스
        4. 3.3.4 사용자 접근: 싱글 vs 멀티테넌트
        5. 3.3.5 이벤트 기반 아키텍처
        6. 3.3.6 브라운필드 vs 그린필드 프로젝트
      4. 3.4 데이터 아키텍처의 사례 및 유형
        1. 3.4.1 데이터 웨어하우스
        2. 3.4.2 데이터 레이크
        3. 3.4.3 융합, 차세대 데이터 레이크, 데이터 플랫폼
        4. 3.4.4 모던 데이터 스택
        5. 3.4.5 람다 아키텍처
        6. 3.4.6 카파 아키텍처
        7. 3.4.7 데이터 흐름 모델, 통합 배치, 스트리밍
        8. 3.4.8 IoT용 아키텍처
        9. 3.4.9 데이터 메시
        10. 3.4.10 기타 데이터 아키텍처 예시
      5. 3.5 데이터 아키텍처 설계 담당자는 누구인가?
      6. 3.6 결론
      7. 3.7 참고 문헌
    4. CHAPTER 4 데이터 엔지니어링 수명 주기 전체에 걸친 기술 선택
      1. 4.1 팀의 규모와 능력
      2. 4.2 시장 출시 속도
      3. 4.3 상호 운용성
      4. 4.4 비용 최적화 및 비즈니스 가치
        1. 4.4.1 총소유비용
        2. 4.4.2 총소유 기회비용
        3. 4.4.3 핀옵스
      5. 4.5 현재 vs 미래: 불변의 기술과 일시적 기술 비교
        1. 4.5.1 조언
      6. 4.6 장소: 온프레미스, 클라우드, 하이브리드 클라우드, 멀티클라우드
        1. 4.6.1 온프레미스
        2. 4.6.2 클라우드
        3. 4.6.3 하이브리드 클라우드
        4. 4.6.4 멀티클라우드
        5. 4.6.5 탈중앙화: 블록체인과 엣지
        6. 4.6.6 조언
        7. 4.6.7 클라우드 송환 논쟁
      7. 4.7 구축과 구매 비교
        1. 4.7.1 오픈 소스 소프트웨어
        2. 4.7.2 전용 폐쇄형 네트워크 서비스
        3. 4.7.3 조언
      8. 4.8 모놀리식과 모듈식 비교
        1. 4.8.1 모놀리스
        2. 4.8.2 모듈성
        3. 4.8.3 분산형 모놀리스 패턴
        4. 4.8.4 조언
      9. 4.9 서버리스와 서버 비교
        1. 4.9.1 서버리스
        2. 4.9.2 컨테이너
        3. 4.9.3 서버 vs 서버리스 평가 방법
        4. 4.9.4 조언
      10. 4.10 최적화, 성능, 벤치마크 전쟁
        1. 4.10.1 1990년대의 빅데이터
        2. 4.10.2 무의미한 비용 비교
        3. 4.10.3 비대칭 최적화
        4. 4.10.4 매수자 위험 부담 원칙
      11. 4.11 데이터 엔지니어링 수명 주기의 드러나지 않는 요소
        1. 4.11.1 데이터 관리
        2. 4.11.2 데이터옵스
        3. 4.11.3 데이터 아키텍처
        4. 4.11.4 오케스트레이션 예제: 에어플로
        5. 4.11.5 소프트웨어 엔지니어링
      12. 4.12 결론
      13. 4.13 참고 문헌
  10. PART II 데이터 엔지니어링 수명 주기 심층 분석
    1. CHAPTER 5 1단계: 원천 시스템에서의 데이터 생성
      1. 5.1 데이터 원천: 데이터는 어떻게 생성될까?
      2. 5.2 원천 시스템: 주요 아이디어
        1. 5.2.1 파일과 비정형 데이터
        2. 5.2.2 API
        3. 5.2.3 애플리케이션 데이터베이스(OLTP 시스템)
        4. 5.2.4 온라인 분석 처리 시스템
        5. 5.2.5 변경 데이터 캡처
        6. 5.2.6 로그
        7. 5.2.7 데이터베이스 로그
        8. 5.2.8 CRUD
        9. 5.2.9 입력 전용
        10. 5.2.10 메시지와 스트림
        11. 5.2.11 시간 유형
      3. 5.3 원천 시스템의 실질적인 세부 사항
        1. 5.3.1 데이터베이스
        2. 5.3.2 API
        3. 5.3.3 데이터 공유
        4. 5.3.4 서드파티 데이터 원천
        5. 5.3.5 메시지 큐와 이벤트 스트리밍 플랫폼
      4. 5.4 함께 작업할 대상
      5. 5.5 드러나지 않는 요소가 원천 시스템에 미치는 영향
        1. 5.5.1 보안
        2. 5.5.2 데이터 관리
        3. 5.5.3 데이터옵스
        4. 5.5.4 데이터 아키텍처
        5. 5.5.5 오케스트레이션
        6. 5.5.6 소프트웨어 엔지니어링
      6. 5.6 결론
      7. 5.7 참고 문헌
    2. CHAPTER 6 2단계: 데이터 저장
      1. 6.1 데이터 스토리지의 기본 구성 요소
        1. 6.1.1 자기 디스크 드라이브
        2. 6.1.2 SSD
        3. 6.1.3 임의 접근 메모리
        4. 6.1.4 네트워킹과 CPU
        5. 6.1.5 직렬화
        6. 6.1.6 압축
        7. 6.1.7 캐싱
      2. 6.2 데이터 스토리지 시스템
        1. 6.2.1 단일 머신 vs 분산 스토리지
        2. 6.2.2 최종 일관성 vs 강력한 일관성
        3. 6.2.3 파일 스토리지
        4. 6.2.4 블록 스토리지
        5. 6.2.5 객체 스토리지
        6. 6.2.6 캐시 및 메모리 기반 스토리지 시스템
        7. 6.2.7 하둡 분산 파일 시스템
        8. 6.2.8 스트리밍 스토리지
        9. 6.2.9 인덱스, 파티셔닝 및 클러스터링
      3. 6.3 데이터 엔지니어링 스토리지 개요
        1. 6.3.1 데이터 웨어하우스
        2. 6.3.2 데이터 레이크
        3. 6.3.3 데이터 레이크하우스
        4. 6.3.4 데이터 플랫폼
        5. 6.3.5 Stream-to-Batch 스토리지 아키텍처
      4. 6.4 스토리지의 주요 아이디어와 동향
        1. 6.4.1 데이터 카탈로그
        2. 6.4.2 데이터 공유
        3. 6.4.3 스키마
        4. 6.4.4 컴퓨팅과 스토리지의 분리
        5. 6.4.5 데이터 스토리지 수명 주기 및 데이터 보존
        6. 6.4.6 싱글테넌트 스토리지와 멀티테넌트 스토리지 비교
      5. 6.5 함께 작업할 대상
      6. 6.6 드러나지 않는 요소
        1. 6.6.1 보안
        2. 6.6.2 데이터 관리
        3. 6.6.3 데이터옵스
        4. 6.6.4 데이터 아키텍처
        5. 6.6.5 오케스트레이션
        6. 6.6.6 소프트웨어 엔지니어링
      7. 6.7 결론
      8. 6.8 참고 문헌
    3. CHAPTER 7 3단계: 데이터 수집
      1. 7.1 데이터 수집이란?
      2. 7.2 수집 단계의 주요 엔지니어링 고려 사항
        1. 7.2.1 유한 데이터 vs 무한 데이터
        2. 7.2.2 빈도
        3. 7.2.3 동기 수집 vs 비동기 수집
        4. 7.2.4 직렬화와 역직렬화
        5. 7.2.5 처리량과 확장성
        6. 7.2.6 신뢰성과 내구성
        7. 7.2.7 페이로드
        8. 7.2.8 푸시 vs 풀 vs 폴링 패턴
      3. 7.3 배치 수집 고려 사항
        1. 7.3.1 스냅숏 또는 차등 추출
        2. 7.3.2 파일 기반 익스포트 및 수집
        3. 7.3.3 ETL과 ELT
        4. 7.3.4 입력, 갱신 및 배치 크기
        5. 7.3.5 데이터 마이그레이션
      4. 7.4 메시지 및 스트림 수집에 관한 고려 사항
        1. 7.4.1 스키마의 진화
        2. 7.4.2 늦게 도착하는 데이터
        3. 7.4.3 주문 및 복수 전달
        4. 7.4.4 재생
        5. 7.4.5 유효 시간
        6. 7.4.6 메시지 크기
        7. 7.4.7 에러 처리와 데드레터 큐
        8. 7.4.8 소비자 풀 앤 푸시
        9. 7.4.9 위치
      5. 7.5 데이터 수집 방법
        1. 7.5.1 직접 데이터베이스 연결
        2. 7.5.2 변경 데이터 캡처
        3. 7.5.3 API
        4. 7.5.4 메시지 큐와 이벤트 스트리밍 플랫폼
        5. 7.5.5 관리형 데이터 커넥터
        6. 7.5.6 객체 스토리지로 데이터 이동
        7. 7.5.7 EDI
        8. 7.5.8 데이터베이스와 파일 익스포트
        9. 7.5.9 공통 파일 형식의 실질적 문제
        10. 7.5.10 셸
        11. 7.5.11 SSH
        12. 7.5.12 SFTP 및 SCP
        13. 7.5.13 웹훅
        14. 7.5.14 웹 인터페이스
        15. 7.5.15 웹 스크레이핑
        16. 7.5.16 데이터 마이그레이션용 전송 어플라이언스
        17. 7.5.17 데이터 공유
      6. 7.6 함께 일할 담당자
        1. 7.6.1 업스트림 이해관계자
        2. 7.6.2 다운스트림 관계자
      7. 7.7 드러나지 않는 요소
        1. 7.7.1 보안
        2. 7.7.2 데이터 관리
        3. 7.7.3 데이터옵스
        4. 7.7.4 오케스트레이션
        5. 7.7.5 소프트웨어 엔지니어링
      8. 7.8 결론
      9. 7.9 참고 문헌
    4. CHAPTER 8 4단계: 쿼리 모델링 및 데이터 변환
      1. 8.1 쿼리
        1. 8.1.1 쿼리란 무엇인가?
        2. 8.1.2 쿼리 수명
        3. 8.1.3 쿼리 옵티마이저
        4. 8.1.4 쿼리 성능 향상
        5. 8.1.5 스트리밍 데이터에 대한 쿼리
      2. 8.2 데이터 모델링
        1. 8.2.1 데이터 모델이란?
        2. 8.2.2 개념적, 논리적, 물리적 데이터 모델
        3. 8.2.3 정규화
        4. 8.2.4 배치 분석 데이터 모델링 기술
        5. 8.2.5 스트리밍 데이터 모델링
      3. 8.3 변환
        1. 8.3.1 배치 변환
        2. 8.3.2 구체화된 뷰, 페더레이션, 쿼리 가상화
        3. 8.3.3 스트리밍 변환과 처리
      4. 8.4 함께 일할 담당자
        1. 8.4.1 업스트림 이해관계자
        2. 8.4.2 다운스트림 이해관계자
      5. 8.5 드러나지 않는 요소
        1. 8.5.1 보안
        2. 8.5.2 데이터 관리
        3. 8.5.3 데이터옵스
        4. 8.5.4 데이터 아키텍처
        5. 8.5.5 오케스트레이션
        6. 8.5.6 소프트웨어 엔지니어링
      6. 8.6 결론
      7. 8.7 참고 문헌
    5. CHAPTER 9 5단계: 분석, 머신러닝 및 역 ETL을 위한 데이터 서빙
      1. 9.1 데이터 서빙의 일반적인 고려 사항
        1. 9.1.1 신뢰
        2. 9.1.2 사용 사례는 무엇이며 사용자는 누구인가?
        3. 9.1.3 데이터 제품
        4. 9.1.4 셀프서비스 여부
        5. 9.1.5 데이터 정의 및 논리
        6. 9.1.6 데이터 메시
      2. 9.2 분석
        1. 9.2.1 비즈니스 분석
        2. 9.2.2 운영 분석
        3. 9.2.3 임베디드 분석
      3. 9.3 머신러닝
      4. 9.4 데이터 엔지니어가 ML에 관해 알아야 할 사항
      5. 9.5 분석 및 ML을 위한 데이터 서빙 방법
        1. 9.5.1 파일 교환
        2. 9.5.2 데이터베이스
        3. 9.5.3 스트리밍 시스템
        4. 9.5.4 쿼리 페더레이션
        5. 9.5.5 데이터 공유
        6. 9.5.6 시맨틱과 메트릭 계층
        7. 9.5.7 노트북에서의 데이터 서빙
      6. 9.6 역 ETL
      7. 9.7 함께 작업하는 사람
      8. 9.8 드러나지 않는 요소
        1. 9.8.1 보안
        2. 9.8.2 데이터 관리
        3. 9.8.3 데이터옵스
        4. 9.8.4 데이터 아키텍처
        5. 9.8.5 오케스트레이션
        6. 9.8.6 소프트웨어 엔지니어링
      9. 9.9 결론
      10. 9.10 참고 문헌
  11. PART III 보안, 개인정보보호 및 데이터 엔지니어링의 미래
    1. CHAPTER 10 보안과 개인정보보호
      1. 10.1 사람
        1. 10.1.1 부정적인 사고의 힘
        2. 10.1.2 항상 편집증적인 자세 유지하기
      2. 10.2 프로세스
        1. 10.2.1 보여주기식 보안 vs 습관화된 보안
        2. 10.2.2 능동 보안
        3. 10.2.3 최소 권한 원칙
        4. 10.2.4 클라우드에서의 책임 공유
        5. 10.2.5 항상 데이터를 백업하라
        6. 10.2.6 보안 정책 예시
      3. 10.3 기술
        1. 10.3.1 패치와 시스템 갱신
        2. 10.3.2 암호화
        3. 10.3.3 로깅, 모니터링, 알림
        4. 10.3.4 네트워크 접근
        5. 10.3.5 로우 레벨 데이터 엔지니어링을 위한 보안
      4. 10.4 결론
      5. 10.5 참고 문헌
    2. CHAPTER 11 데이터 엔지니어링의 미래
      1. 11.1 사라지지 않는 데이터 엔지니어링 수명 주기
      2. 11.2 복잡성의 감소와 사용하기 쉬운 데이터 도구의 부상
      3. 11.3 클라우드 규모의 데이터 OS와 향상된 상호 운용성
      4. 11.4 ‘엔터프라이즈’ 데이터 엔지니어링
      5. 11.5 직책과 책임의 변화
      6. 11.6 모던 데이터 스택을 넘어 라이브 데이터 스택으로
        1. 11.6.1 라이브 데이터 스택
        2. 11.6.2 스트리밍 파이프라인과 실시간 분석 데이터베이스
        3. 11.6.3 데이터와 애플리케이션의 융합
        4. 11.6.4 애플리케이션과 ML 간의 긴밀한 피드백
        5. 11.6.5 암흑 물질 데이터와 스프레드시트의 부상
      7. 11.7 결론
  12. APPENDIX A 직렬화와 압축 기술 상세
  13. APPENDIX B 클라우드 네트워킹
  14. 에필로그

Product information

  • Title: 견고한 데이터 엔지니어링
  • Author(s): 조 라이스, 김인범, 맷 하우슬리
  • Release date: June 2023
  • Publisher(s): Hanbit Media, Inc.
  • ISBN: 9791169211222