메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

견고한 데이터 엔지니어링

데이터 파이프라인 설계와 구축의 핵심 원칙

한빛미디어

번역서

판매중

  • 저자 : 조 라이스 , 맷 하우슬리
  • 번역 : 김인범
  • 출간 : 2023-06-26
  • 페이지 : 552 쪽
  • ISBN : 9791169211222
  • 물류코드 :11122
  • 초급 초중급 중급 중고급 고급
4.7점 (24명)
좋아요 : 76

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

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

 

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

 

상세이미지_견고한데이터엔지니어링_700.jpg

조 라이스 저자

조 라이스

데이터 업계에 20년 동안 몸담은 비즈니스 마인드의 데이터 괴짜. 통계 모델링, 예측, 머신러닝, 데이터 엔지니어링, 데이터 아키텍처 등 다양한 업무를 담당했다. 미국 유타주 솔트레이크시티에 위치한 데이터 엔지니어링 및 아키텍처 컨설팅 업체인 터너리 데이터(Ternary Data)의 CEO이자 공동 설립자다. 현재 여러 기술 그룹에서 자원봉사를 하고 있으며 유타 대학교에서 강의도 한다. 여가 시간에는 암벽 등반, 전자 음악 제작 등을 즐기며, 아이들과 함께 멋진 모험을 떠나는 것을 좋아한다.

맷 하우슬리 저자

맷 하우슬리

데이터 엔지니어링 컨설턴트이자 클라우드 전문가. 로고, 베이직, 6502 어셈블리 등으로 프로그래밍을 처음 경험했으며 유타 대학교에서 수학 박사 학위를 받았다. 이후에는 데이터 과학 분야에서 일을 시작했으며 현재는 클라우드 기반 데이터 엔지니어링을 전문으로 활동한다. 공저자인 조 라이스와 함께 터너리 데이터(Ternary Data)를 설립했다. 자신의 교육 경험을 활용해 미래의 데이터 엔지니어를 양성함과 동시에, 많은 팀을 대상으로 강력한 데이터 아키텍처에 관한 조언을 제공하고 있다.

김인범 역자

김인범

알스퀘어(RSQUARE) 데이터 엔지니어. 이전에는 SK 주식회사 C&C의 클라우드 컴퓨팅 기술 팀, 클라우드 아키텍트 유닛을 거쳐 CNCITY에너지 AI 설루션 팀에서 데이터 엔지니어로 근무했다. 몽고DB 사용자 그룹MongoDB Korea(https://web.facebook.com/groups/krmug)에서 운영진으로 활동하고 있다. 다양한 분야의 데이터에 관심이 많으며 글쓰기를 좋아한다.

[PART I 데이터 엔지니어링 기반 구축하기]

 

CHAPTER 1 데이터 엔지니어링 상세

_1.1 데이터 엔지니어링이란?

_1.2 데이터 엔지니어링 기술과 활동

_1.3 조직 내 데이터 엔지니어

_1.4 결론

_1.5 참고 문헌

 

CHAPTER 2 데이터 엔지니어링 수명 주기

_2.1 데이터 엔지니어링 수명 주기란? 

_2.2 데이터 엔지니어링 수명 주기의 드러나지 않는 주요 요소 

_2.3 결론

_2.4 참고 문헌 

 

CHAPTER 3 우수한 데이터 아키텍처 설계

_3.1 데이터 아키텍처란?

_3.2 우수한 데이터 아키텍처의 원칙

_3.3 주요 아키텍처 개념

_3.4 데이터 아키텍처의 사례 및 유형

_3.5 데이터 아키텍처 설계 담당자는 누구인가?

_3.6 결론

_3.7 참고 문헌

 

CHAPTER 4 데이터 엔지니어링 수명 주기 전체에 걸친 기술 선택

_4.1 팀의 규모와 능력

_4.2 시장 출시 속도

_4.3 상호 운용성

_4.4 비용 최적화 및 비즈니스 가치

_4.5 현재 vs 미래: 불변의 기술과 일시적 기술 비교

_4.6 장소: 온프레미스, 클라우드, 하이브리드 클라우드, 멀티클라우드

_4.7 구축과 구매 비교

_4.8 모놀리식과 모듈식 비교

_4.9 서버리스와 서버 비교

_4.10 최적화, 성능, 벤치마크 전쟁

_4.11 데이터 엔지니어링 수명 주기의 드러나지 않는 요소

_4.12 결론

_4.13 참고 문헌

 

[PART II 데이터 엔지니어링 수명 주기 심층 분석]


CHAPTER 5 1단계: 원천 시스템에서의 데이터 생성

_5.1 데이터 원천: 데이터는 어떻게 생성될까?

_5.2 원천 시스템: 주요 아이디어

_5.3 원천 시스템의 실질적인 세부 사항

_5.4 함께 작업할 대상

_5.5 드러나지 않는 요소가 원천 시스템에 미치는 영향

_5.6 결론

_5.7 참고 문헌

 

CHAPTER 6 2단계: 데이터 저장

_6.1 데이터 스토리지의 기본 구성 요소

_6.2 데이터 스토리지 시스템

_6.3 데이터 엔지니어링 스토리지 개요

_6.4 스토리지의 주요 아이디어와 동향

_6.5 함께 작업할 대상

_6.6 드러나지 않는 요소

_6.7 결론

_6.8 참고 문헌

 

CHAPTER 7 3단계: 데이터 수집

_7.1 데이터 수집이란?

_7.2 수집 단계의 주요 엔지니어링 고려 사항

_7.3 배치 수집 고려 사항

_7.4 메시지 및 스트림 수집에 관한 고려 사항

_7.5 데이터 수집 방법

_7.6 함께 일할 담당자

_7.7 드러나지 않는 요소

_7.8 결론

_7.9 참고 문헌

 

CHAPTER 8 4단계: 쿼리 모델링 및 데이터 변환

_8.1 쿼리

_8.2 데이터 모델링

_8.3 변환

_8.4 함께 일할 담당자

_8.5 드러나지 않는 요소

_8.6 결론

_8.7 참고 문헌

 

CHAPTER 9 5단계: 분석, 머신러닝 및 역 ETL을 위한 데이터 서빙

_9.1 데이터 서빙의 일반적인 고려 사항

_9.2 분석

_9.3 머신러닝

_9.4 데이터 엔지니어가 ML에 관해 알아야 할 사항

_9.5 분석 및 ML을 위한 데이터 서빙 방법

_9.6 역 ETL

_9.7 함께 작업하는 사람

_9.8 드러나지 않는 요소

_9.9 결론

_9.10 참고 문헌

 

[PART III 보안, 개인정보보호 및 데이터 엔지니어링의 미래]


CHAPTER 10 보안과 개인정보보호

_10.1 사람

_10.2 프로세스

_10.3 기술

_10.4 결론

_10.5 참고 문헌

 

CHAPTER 11 데이터 엔지니어링의 미래

_11.1 사라지지 않는 데이터 엔지니어링 수명 주기

_11.2 복잡성의 감소와 사용하기 쉬운 데이터 도구의 부상

_11.3 클라우드 규모의 데이터 OS와 향상된 상호 운용성

_11.4 ‘엔터프라이즈’ 데이터 엔지니어링

_11.5 직책과 책임의 변화

_11.6 모던 데이터 스택을 넘어 라이브 데이터 스택으로

_11.7 결론

 

APPENDIX A 직렬화와 압축 기술 상세

APPENDIX B 클라우드 네트워킹


에필로그

찾아보기

 

현업 데이터 엔지니어들이 먼저 알아본 화제의 그 책!

데이터 파이프라인 설계와 구축의 핵심 원칙을 한 권에!

 

이 책은 특정 도구, 기술 또는 플랫폼을 사용하는 데이터 엔지니어링을 다루지 않는다. 이러한 관점에서 데이터 엔지니어링 관련 기술에 접근하는 도서는 많지만, 그런 책들은 수명이 짧다. 대신 이 책은 데이터 엔지니어링 이면의 기본 개념에 초점을 맞춘다. 

 

이 책의 목표는 현재의 데이터 엔지니어링 관련 내용과 자료의 공백을 메우는 것이다. 특정 데이터 엔지니어링 도구와 기술을 다루는 기술 자원이 부족한 것은 아니지만, 사람들은 이러한 구성 요소들을 실제 세계에 적용되는 일관된 전체적 결과물로 조립하는 방법을 이해하는 데 어려움을 겪는다. 이 책은 데이터 수명 주기의 시작 단계부터 최종 단계에 이르기까지 모든 단계를 살펴본다. 특히 분석가, 데이터 과학자, 머신러닝 엔지니어와 같은 다운스트림 데이터 소비자의 요구를 충족하기 위해 다양한 기술을 결합하는 방법을 보여준다. 한편으로는 특정 기술, 플랫폼, 프로그래밍 언어의 세부 사항을 다루는 오라일리 도서들을 보완하는 역할을 한다.

 

이 책의 주요 내용은 데이터 생성, 저장, 수집, 변환, 서빙 등을 다루는 데이터 엔지니어링 수명 주기다. 데이터의 태동기 이후 우리는 수많은 특정 기술과 공급업체 제품의 흥망성쇠를 목격했지만, 데이터 엔지니어링 수명 주기 단계는 본질적으로 바뀌지 않았다. 이 프레임워크를 통해 독자는 기술을 실제 비즈니스 문제에 적용하는 데 필요한 올바른 이해를 얻을 수 있다. 

 

여기서 우리의 목표는 두 가지 축을 아우르는 원칙을 세우는 것이다. 첫째, 데이터 엔지니어링을 모든 관련 기술을 포괄하는 원칙으로 정제하고자 한다. 둘째, 오랜 시간이 지나도 변함없는 원칙을 제시하고자 한다. 이러한 아이디어가 지난 20년간의 데이터 기술 격변기를 거치며 얻은 교훈을 반영하고, 우리의 내적 프레임워크가 미래에도 10년 이상 유용하게 유지되기를 바란다.

- 서문 ‘이 책에 대하여’ 중에서

나의 한줄 추천사]

 

- 데이터 엔지니어링의 end to end 간접 경험하고 싶다면 이 책을 보라.

 

 

 

[책 추천 이유]

 

- "데이터 엔지니어"의 역할과 "데이터 사이언티스트"의 역할이 완전히 다르다는 것을 일깨워 준다. 데이터의 수명주기를 관리하는 역할이 "데이터 엔지니어"의 역할이며, 데이터 파이프라인 설계와 구축의 핵심 원칙을 가르쳐 준다.

 

 

 

[내가 찾고자 했던 질문들]

 

  1. 데이터 엔지니어링이란?

 

  • 데이터 과학자, 데이터 분석가, 비지니스 인텔리전스 개발자, 그리고 조직내의 다른 전문가가 데이터를 사용할 수 있도록 만드는 일련의 작업이다.
  • 대규모의 데이터를 ETL 실행할 수 있도록 시스템을 설계하고 구축하려면 "데이터 엔지니어" 가 필요하다.

 

2. 데이터의 수명 주기는?

 

  • 데이터 생성
  • 데이터 저장
  • 데이터 수집
  • 데이터 변환
  • 데이터 서빙

 

3. 데이터의 수명 주기에 드러나지 않는 요소?

 

  • 보안
  • 데이터 관리
  • 데이터옵스
  • 데이터 아키텍처
  • 오케스트레이션
  • 소프트웨어 엔지니어링

 

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

이 책은 데이터 엔지니어링 분야의 포괄적인 소개로, 기술 중립적인 방식으로 주제를 다루고 있습니다. 저자들은 데이터 엔지니어링의 핵심 개념을 이론적으로 주로 설명하면서, 독자의 배경에 따라 도구에 중립적인 접근 방식이 장점 또는 단점이 될 수 있음을 인식하고 있습니다. 빠르게 변화하는 기술 세계에서 저자들은 주제의 고수준 개요를 제공함으로써 책이 뒤쳐지지 않도록 노력하고 있습니다.

 

 

이 책은 내용이 밀집되어 있지만, 그 구조는 매우 체계적입니다. 독자는 책 전체를 처음부터 끝까지 읽을 수도 있고, 관심사에 따라 부분 부분 읽을수도 있습니다. 때로는 소프트웨어 엔지니어링 개념을 설명하는 데 더 많은 시간을 보내는 것 같지만, 분석 쪽의 일부 개념을 충분히 설명하지 않는 것 같다는 느낌을 받을수도 있습니다. 이 책의 내용은 데이터 엔지니어링의 주요 개념에 대한 깊은 탐구를 제공합니다. 특정 기술이 언급될 때 그것들은 일반적으로 토론의 주요 초점이 아닌 설명적인 예로 사용됩니다.

 

이 책의 첫 번째 부분에서는 데이터 엔지니어링의 기본 구성 요소에 대해 알게 됩니다. 1장에서는 데이터 엔지니어링을 정의하고 데이터 엔지니어링 역할의 다양한 유형을 설명합니다. 2장에서는 데이터 엔지니어링 수명 주기와 몇 가지 주요한 내재적인 요소에 대해 논의합니다. 데이터 엔지니어링 수명 주기는 원천 시스템에서의 생성, 저장, 수집, 변환, 및 데이터 제공을 통해 이루어집니다. 내재적인 요소에는 보안, 데이터 관리, DataOps, 데이터 아키텍처, 오케스트레이션 및 소프트웨어 엔지니어링이 포함됩니다. 3장에서는 데이터 아키텍처를 정의하는 데 있어 주요 개념을 논의하고 있습니다. 이 원칙들은 내가 소프트웨어 개발에 가져온 원칙들과 잘 맞아 떨어집니다. 실패를 계획하라, 확장성을 위해 아키텍처를 구축하라, 유연하게 연결된 시스템을 구축하라, 되돌릴 수 있는 결정을 내려라 등입니다. 4장에서는 기술을 선택할 때 고려해야 할 영역을 논의합니다. 저자들은 기술적인 관심사 (예: 서버리스 대 서버), 인간의 관심사 (예: 팀 규모와 능력), 그리고 비즈니스 관심사 (예: 비용, 출시 시간)를 다루었습니다.

 

 

이 책은 경험이 풍부한 소프트웨어 엔지니어, 데이터 과학자 또는 데이터 엔지니어링을 이해하려는 기술적인 배경을 가진 분석가 및 데이터 엔지니어링 실습을 더 구조적으로 하려는 사람들에게 적합한 훌륭한 가이드입니다.

 

 

또한, 이 책은 데이터 엔지니어링 분야에서의 현장 경험과 최신 트렌드, 기술들을 깊이 있게 다루면서 독자들에게 실질적인 도움을 제공합니다. 저자들의 다양한 경험과 통찰력이 담긴 이 책은 데이터 엔지니어링을 처음 접하는 초보자부터 이미 이 분야에서 일하고 있는 전문가까지 모두에게 유용한 내용을 제공한다. 이 책의 구성은 체계적이며, 각 장마다 중요한 주제와 개념들을 깊이 있게 다루고 있다. 실제 업무에서 만날 수 있는 다양한 문제 상황과 그에 대한 해결 방법, 그리고 이를 통해 얻을 수 있는 통찰력과 지식을 독자들에게 제공하고자 하는 저자들의 노력이 돋보입니다.

 

데이터 엔지니어링은 복잡한 분야입니다. 그러나 이 책은 그 복잡성을 단순화하고, 이해하기 쉽게 설명하여 독자들이 쉽게 접근할 수 있도록 도와줍니다. 각 장의 끝에는 주요 내용을 요약하는 부분도 있어, 빠르게 내용을 복습하거나 참고할 때 유용합니다.

 

 

마지막으로, 데이터 엔지니어링 분야는 지속적으로 변화하고 발전하고 있습니다. 이 책은 그러한 변화와 발전을 반영하여 최신의 내용을 담고 있어, 데이터 엔지니어링 분야에 관심을 가진 모든 이들에게 귀중한 자료로 활용될 것입니다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

한 줄 요약 : 데이터 과학(엔지니어링)의 바이블!

 



 

《견고한 데이터 엔지니어링》은 원서 'Fundamental of Data Engineering'을 한국어로 번역한 책이다. 

 

Fundamental
1. 근본적인(= Basic)
2. 필수적인(= Essential)
3. 기본 원칙, 핵심

제목을 보듯 핵심이 되는 기반 기술과 지식에 대해 다루는 책이다. 그렇기에 특정 도구, 기술 또는 플랫폼에 대한 사용법을 소개하거나, 예제를 실행하는 기술서적과 차이가 있다.
자바스크립트 프로그래밍을 예로 들면 React, Vue.js같은 특정 기술을 소개하는게 아니라 바닐라 자바스크립트, ECMA Script를 다루는 책인 것이다.

흔히 말하는 '바이블(Bible)' 종류의 책이기때문에 언제 읽어도 도움이 된다고 생각한다.
데이터 엔지니어링에 막 발을 들인 엔지니어라면 비전 로드맵으로 사용 할 수 있을 것이다.
데이터 엔지니어링에 경험이 있고, 숙련된 엔지너이라면 놓치고 지나간 부분이 없는지, 심화학습할 지식은 없는지 참고할 수 있을 것이다.



책 구성
1부: 데이터 엔지니어링 기반 구축하기
2부: 데이터 엔지니어링 수명 주기 심층 분석
3부: 보안, 개인정보보호 및 데이터 엔지니어링의 미래
부록: 직렬화, 압축 및 클라우드 네트워킹



책은 세 부분으로 나뉜다.


먼저 1부에서는 데이터 엔지니어링을 얕고 넓게 다룬다. 데이터 엔지니어링이 무엇인지 정의하고, 처리하는 프로세스(또는 라이프사이클, 생명주기)는 어떻게 구성되는지, 좋은 아키텍처는 어떤 것인지, 운영 방법에 대한 비교 등을 소개한다.

2부에서는 1부에서 살펴본 내용을 '데이터 생성 - 저장 - 수집 - 변환 - 서빙'이라는 5단계로 나누고, 심화 내용을 소개한다. 1부에서 숲을 봤다면, 2부에서는 숲으로 들어가 나무 한 그루, 한 그루 살펴보는 단계다. 특정 기술, 플랫폼을 소개한다고 하지는 않았지만 기본적인 파이썬 프로그래밍, SQL, AWS와 같은 클라우드 서비스 경험이 있다고 전제하고 설명하고 있다.

3부에서는 보안, 개인정보에 대해 고민해봐야 할 것과, 미래에 대한 필자의 생각을 엿볼 수 있다.
데이터를 다루는 것은 결국 사람이기에 완벽할 수 없다. 그렇기때문에 보안을 신경써야 하고, 민감한 개인정보를 어떻게 다룰 것인지 고민해야만 한다.

 




《견고한 데이터 엔지니어링》의 각 장(chapter) 마지막에 '참고 문헌'부분을 보며 '역시 데이터 엔지니어링에 대한 바이블이다!'는 생각을 하게 됐다. 저자가 한 장을, 각 부를, 《견고한 데이터 엔지니어링》을 쓰기 위해 참고한 수많은 글과 논문, 책을 볼 수 있기 때문이다.

 


《견고한 데이터 엔지니어링》은 500여쪽이라 바이블이라고 보기엔 두께가 얇을 수 있다. 하지만 책을 읽으며 참고문헌을 함께 본다면 1000쪽 이상의 내용을 담은 책과 같을 것이다. 그렇기때문에 《견고한 데이터 엔지니어링》은 반드시 참고 문헌을 보며 함께 공부해야 제대로 읽는 것이라 생각한다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
리뷰를 위해 한빛미디어에서 책을 제공받았지만 주관적인 생각을 그대로 적었습니다.


 데이터 엔지니어링을 하는 부서에서 근무하고 있다. 플랫폼 엔지니어링을 주로 하고 있다가 데이터 엔지니어링을 본격적으로 하려고 하고는 있지만 생각보다 개념을 잡기에는 어려웠다. 그래도 같은 팀이기 때문에 옆에서 주변에서 제안서를 쓰다가 얻어 들은 얘기는 많이 있었다.

 그러던 와중에 이 책을 보게 되었다. 대부분의 데이터 관련 책들은 개념 위주로 아니면 특정 오픈소스 등을 위주로 하는 경우가 많이 있다. 하지만 이책은 개념 위주로 하고 있지만 데이터 엔지니어링이 어떤 것인지 정확하게 집어주는 책이라고 생각한다. 내가 생각했던 데이터 엔지니어링에 대한 개념은 정확하게 집어주면서 현시대에 수준과 전체적인 그림을 그리고 있다. 이 책을 보고 있지만 내가 데이터 엔지니어링을 하기 위해서는 현재 어떤 수준에 있는 지 어느정도 감을 같게 되는 듯 하다.

 데이터 엔지니어링에 관심이 있는 사람이라면 꼭 한번 봐야하는 필수 도서일 것이라고 생각한다.

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

이 책은 전공서적같다.

데이터 엔지니어링 업무를 희망하거나, 하고있거나, 그 업무를 하는 사람들과 협업을 하기 위해선 그들에 대해서 이해가 필요할 것이기에 이 책이 더욱 필요할 것 같다.

공부하는 사람들의 경우에는 이 책 한권을 잡고 스터디를 진행해도 좋을 것이고, 데이터 관련 업무를 하는 팀이라면, 팀 단위로 책의 내용을 리뷰하면서 어떻게 나아갈지?

만약 어느정도 영향력이 있는 위치에 있다면, 회사에서 데이터관련 된 업무를 하며 주의해야할 점은 무엇일지, 아니면 모자란 부분은 무엇일지를 다시 한 번 생각해보기에 좋은 책인 것 같다.

아직은 내용이 어렵다...

책을 보면서도 모르는 단어들도 종종 나오고, 뭔가... 뭔가 실습책이 아니라서 더 읽히지 않는 것도 있는 것 같다.

사실은 워낙 글 읽기를 꺼리는 특징이 있는 사람인지라 책과는 거리가 다소 먼 편이지만,

그나마 IT서적, 코드가 있는 책들에 한해서 조금 친한 편이었다.

이 책을 보면서 전공 이론 서적이.. 자꾸 떠올라서 조금 힘들었던 느낌도 들었다.

다시 한번 정리하지만... 진짜 좋은 책임에는 틀림이 없다.

다만 내가 데이터 엔지니어가 아닐 뿐, 해당 배경지식이 있는 사람들이라면 충분히 몰입하면서 보게 될 것이라고 예상한다.

후배 이 책 새줘야지

출시된 이후 굉장히 읽어보고 싶었던 책이었는데, 이번에 좋은 기회로 해당 책을 읽게 되었다.

 

책은 총 3부로 구성되어 있으며, 1부에서는 데이터 엔지니어링 기반 구축하기, 2부에서는 데이터 엔지니어링 수명 주기 심층 분석, 3부에서는 보안, 개인정보보호 및 데이터 엔지니어링의 미래를 다루고 있다.

 

현재 나는 주니어 데이터 엔지니어로 일하고 있는데, 이 책을 읽으면서 조금 더 빨리 번역되어서 출간이 되었으면 좋지 않았을까 하는 생각이 가장 먼저 들었다.

 

데이터 엔지니어는 다른 개발 분야에 비해 늦게 등장한 직무이기 때문에 회사별로 정의하는 데이터 엔지니어의 역할과 업무들이 굉장히 다양하다. 이 책은 조직의 데이터 성숙도에 따라 데이터 엔지니어가 어떤 업무들을 하고 어떤 책임을 지게 되는지 소개하고 있는데,  이런 것들을 미리 알았더라면 내가 어떤 정도의 데이터 성숙도를 지닌 조직에서 어떤 것들을 만들어나가고 싶은지 미리 고민을 하는 시간을 가질 수 있었을 것 같다.

 

또한 데이터 분야는 현재도 관련 기술의 발전 및 변화가 빠르게 일어나고 있는 분야이다. 현재 출간된 데이터 엔지니어링과 관련된 책들 중 프레임워크에 치우쳐서 설명된 책들이 있는데, 이런 경우 프레임워크에서 outdated된 기능들을 써서 더 이상 해당 책을 참고하여 실습을 하기 어려운 경우도 있고 책이 출간된 당시와 다르게 현재의 흐름이 바뀌어서 해당 프레임워크가 거의 쓰이지 않는 경우도 있다. 그러나 이 책은 데이터 엔지니어링에 대한 전체적인 큰 그림을 담고 있기 때문에 시간이 지나서도 충분히 참고할만한 내용들을 다루고 있다. 그래서 이 책을 조금 더 빨리 읽었더라면 데이터 엔지니어링에서 많이 쓰이는 특정 프레임워크를 어떻게 사용하는지 공부하는 대신 현재 어떤 상태에 있는지 파악한 후 문제를 해결할 수 있는 기술들을 비교해보고, 어떻게 해결해나가야 제일 쉽고 요구하는 상황에 따라 어떤게 제일 이점이 큰지에 초점을 맞추는 등 데이터 엔지니어링을 공부했던 방향이 바뀌지 않았을까 싶다. 


특정 기술이 아닌 데이터 엔지니어링 자체에 초점을 두고 있는 책이어서 더욱 좋은 책이라고 느껴진다. 여타 다른 책들과 달리 데이터 엔지니어링의 각 단계에서 어떤 것들을 고려할 수 있는지와 어떤 상황에서 어떤 기술을 선택하는 것이 좋은지 등이 서술되어 있으며, 일반적으로 알려져있는 ETL 파이프라인을 구축하는 것 외에도 데이터 엔지니어가 겉으로는 드러나지 않지만 보안, 데이터옵스, 오케스트레이션 등 어떤 것들을 어떻게 신경써야하는지, 많이 알려져 있는 데이터 분석가와 데이터 과학자와의 관계 외에도 소프트웨어 엔지니어, SRE, 데이터 아키텍트 등과의 협업도 어떻게 이루어지는지도 잘 서술되어있다. 


직접 실무를 해보며 몸으로 부딪혀서 깨달았던 내용들이 많이 서술되어 있고, 이 책을 읽지 않았더라면 앞으로 더 많이 몸을 부딪혀서 깨달았어야 했을 내용들이 굉장히 가득하다. 아직은 이해가 어려운 내용들도 있고, 그렇구나 정도로 읽고 넘어가는 부분도 있지만 앞으로 새로운 업무를 진행하고, 데이터 파이프라인을 설계하고 구축할 때 좋은 길라잡이가 되어줄 것 같다. 나처럼 주니어 데이터 엔지니어이거나, 혹은 데이터 엔지니어로 꿈을 꾸고 있는 분들이라면 꼭 읽어보는 것을 추천한다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

이 책에서는 데이터 엔지니어를 데이터 분석가, 데이터 과학자, MLOps/ML 엔지니어, 그 외 모든 이해관계자를 '지원'하는 역할이라고 정의한다. 실제로 데이터 엔지니어라고 부르는 모든 사람이 똑같은 일을 하고 있지는 않다. 데이터 엔지니어링을 하다 보면 필요에 의해서 이런 일도 하고, 저런 일도 하는 상황이 종종 생기기 때문이다. '지원하는 역할'이라는 의미에서 생각해 보니 오히려 당연한 현상일 수 있겠다고 생각하게 되었다. 앞으로는 좀 더 열린 마음으로 데이터 엔지니어링을 알아가려고 한다. 

「빅데이터를 지탱하는 기술」은 얇고, 쉽게 읽히며, 빅데이터의 중요한 컨셉을 이해하기 쉽게 설명해 준다는 점에서 여전히 추천할 만한 책이다. 하지만 앞으로는 실무에서 좀 더 와닿는 내용을 빽빽하게 담고 있는 「견고한 데이터 엔지니어링」을 더 자주, 많이 보게 될 것 같다. 데이터 엔지니어링을 다루는 책은 많지 않다. 그런 중에 이런 보물 같은 책이 나와주어 참 감사하다.

좋은 책이라고 소문만 듣다가 드디어 읽게 되었다.

아래 걸어둔 저자의 글 또한 공감할 부분이 많다.

앞에 베타리더, 추천사, 책에 대한 안내 등이 꽤 길어 공을 많이 들였겠다 생각이 들었다.

 

이 책은 '데이터 엔지니어링 수명주기'에 대해 주로 다룬다.

1. 데이터 엔지니어링 수명 주기

생성 -> 저장(수집, 변환, 서빙) -> 분석, 머신러닝, 역ETL

드러나지 않는 요소 : 보안, 데이터 관리, 데이터옵스, 데이터 아키텍처, 오케스트레이션, 소프트웨어 엔지니어링

 

2. 데이터 엔지니어의 진화

1980-2000 : 데이터 웨어하우징에서 웹으로

-비즈니스 데이터 웨어하우스(BDW)

-1989년 Bill Inmon이 '데이터 웨어하우스'라는 용어 공식 사용

-BI 툴과 데이터 모델링 기법 개발됨

-MPP(대규모병렬처리) 데이터베이스로 확장성 있는 분석의 첫 시대를 엶

-BI엔지니어, ETL 개발자, 데이터 웨어하우스 엔지니어 등 등장

 

1990년대 중반 : 인터넷 주류(AOL, 야후, 아마존)

- 닷컴 열풍-> 웹 애플리케이션, 백엔드(서버, 데이터베이스, 스토리지) 엄청난 발전

 

2000년대 초 : 현대 데이터 엔지니어링의 탄생

-닷컴 열풍 무너지고 생존자만(야후, 구글, 아마존)

-모놀리식 관계형 데이터베이스가 한계에 다다르며 시스템 불안정

-데이터 증가를 처리할 최신화된 접근 방식 필요

-차세대 시스템은 비용 효율적, 확장성과 가용성, 안정적 필요

-서버, RAM, 디스크 등 범용 하드웨어 가격 저렴

-서비스 분산하고 분리하기 시작 -> 빅데이터 시대 시작

-2003년 구글 : 파일시스템(file system)에 대한 논문 발표

-2004년 : 맵리듀스 논문 발표

-2006년 : 야후 아파치 하둡 개발 후 오픈소스화

-기업 데이터가 테라바이트, 페타바이트 규모로 증가하며 빅데이터 엔지니어 시대 개막

-아마존 : EC2(탄력적 컴퓨팅 환경), S3(무한 확장 가능한 스토리지 시스템), DynamoDB(확장성이 뛰어난 NoSQL DB)

 

2000년대와 2010년대 : 빅데이터 엔지니어링

-하둡 생태계의 오픈소스 도구 빠르게 발전

-배치 컴퓨팅, 이벤트 스트리밍 등 실시간 빅데이터 분석이 가능해짐

-하둡, 피그, 하이브, 드레멜, HBase, 스톰, 카산드라, 스파크, 프레스토

-기존 엔터프라이즈 지향적이고 GUI 기반인 데이터 도구 -> 맵리듀스 출현으로 코드 우선 엔지니어링 유행

-2000년대 후반과 2010년대에 데이터 도구 폭발적으로 증가하며 빅데이터 엔지니어 탄생

-'Big Data Hype'의 열풍 : 몇 기가를 처리할 때도 하둡 사용?

-누가 가장 큰 데이터를 보유하는가?

 

2010년대 : 데이터 수명 주기를 위한 엔지니어링

-'빅데이터' -> '데이터' 엔지니어링

-하둡, 스파크, 인포매티카 등 모놀리식 프레임워크의 저수준 세부 정보를 사용하는 경향-> 변경

-분산, 모듈화, 관리, 고도로 추상화된 도구로 이동

-데이터를 어떻게 활용할 것인가?

-CCPA, GDPR 등 파이프라인 설계시 개인정보보호, 익명화, 데이터 가비지 수집 및 규정 준수에 관심 가져야 함

-견고한 데이터 기반 필요(수집, 이동/저장, 탐색/변환)

 

3. 데이터 성숙도

3-1. 데이터로 시작하기(임시 데이터 요청)

: 확실한 데이터 기반이 없다면 ML은 성급함, 적절한 데이터 아키텍처를 정의해야 함, 조기 성과 vs 기술 부채 고민해야 함.

3-2. 데이터로 확장하기(공식 데이터 요청 관행)

: 확장성 있는 데이터 아키텍처, 데브옵스, ML 지원 시스템 구축, 주요 병목은 배포와 관리에서 나타나므로 쉬운 솔루션 선택 해야 함

3-3. 데이터로 선도하기

: 셀프서비스 분석과 ML수행 가능, 사용자 정의 도구와 시스템 구축에 주력, 데이터 카탈로그, 데이터 계보, 메타데이터 관리 등 데이터를 조직 전체에 노출하고 전파하는 도구 배포 필요

 

 

 

 

https://m.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS1025902134&cate_cd=

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


견고한 데이터 엔지니어링


이번에 리뷰할 도서는 "견고한 데이터 엔지니어링" 입니다.


견고한 데이터 엔지니어링 도서는 이전에 리뷰하던 도서들과 다릅니다.


도서의 질이 다르다, 퀄리티가 낮다 이런 면에서의 다름이 아니라 책의 방향이 다릅니다.


이전 도서들은 예제 코드나 실습의 내용이 어느 정도 비율을 차지하는 반면에, 이번 도서는 이론이 100%의 비율을 차지합니다.


이 도서를 읽으시기 전에 파이썬과 SQL, 클라우드 서비스를 어느 정도 사용해보거나 사용할 줄 아시는 분이 읽으시는 것을 권장드립니다.


도서는 다음과 같은 내용들로 구성되어 있습니다.


첫 번째 파트는 "데이터 엔지니어링 기반 구축하기"로 데이터 엔지니어링의 정의와 수명주기, 데이터 구조 설계, 데이터 수명 주기에 따른 기술 선택에 대한 내용으로 구성되어 있으며, 


두 번째 파트는 "데이터 엔지니어링 수명 주기 심층 분석"으로 데이터의 생성 방법과 저장, 수집, 쿼리 모델링, 목적에 따른 데이터 서빙에 대한 내용으로 구성되어 있습니다.


이 파트는 도서를 읽으면서 가장 재미있게 읽었던 부분으로, 원천 시스템의 데이터에 대한 내용부터 수집 등의 대한 내용이 포함되어 있어서 데이터 전처리와 수집을 1년 반 가까이 하고 있는 저에게 도움이 많이 되었습니다.


또한, 인공지능을 위한 데이터의 고려사항과 서빙에 대한 내용이 있으며, 이는 인공지능 분야에서의 데이터 엔지니어 뿐만 아니라 인공지능 관련 연구자에게도 도움이 되는 내용이 상당히 많이 있었습니다.


ML이나 인공지능 분야에 대한 설명을 포함하고 있지는 않지만 예를 들어, ML 분야에 사용할 데이터에 대해 데이터 엔지니어가 숙지해야 할 항목으로 모델의 학습 방법의 차이점, 분류와 회귀의 차이, 데이터 임베딩 방법 등을 제시합니다.


세 번째 파트는 "보안, 개인정보보호 및 데이터 엔지니어링의 미래"로 보안과 데이터 엔지니어링과 관련된 도구, 서비스등의 전망에 대한 내용으로 구성되어 있습니다.


처음 도서를 열어 보았을 때 실습 코드가 없고, 데이터 엔지니어링에 대한 내용만 보여서 지루하게 읽지 않을까 싶었는데, 다양한 분야에 대한 데이터 엔지니어링의 내용들이 함께 포함되어 있어서 개개인의 분야와 관계지어 읽으면 재미있게 읽을 수 있을 뿐더러 개인의 분야에서 데이터를 수집, 사용하고 데이터 측면에서 생각해 볼 수 있는 능력을 기를 수 있는 도서라고 생각됩니다.


만약 인공지능 분야에서 데이터 전처리가 아니라, 데이터 근본 자체에서 전처리 전 단계까지의 내용에 관심이 있으시다면 한 번쯤 읽어보시면 많은 도움이 되는 도서로 이 도서를 추천드리고 싶습니다.

이 책은 코딩 실습없이 데이터 엔지니어링에 필요한 개념들을 꾹 꾹 눌러담은 책 입니다.

때문에 호불호가 나뉠수 있겠지만, 본인이 학습 또는 다루고 싶은 데이터베이스 실습 도서

바로 옆에 두고 보면, 필요한 개념 및 내용들을 이해하는데 큰 도움이 되어 줄 것입니다.

 

= 본 리뷰는 IT 현업개발자가, 한빛미디어 책을 제공받아 작성한 서평입니다. =

 

 

데이터엔지니어링.jpg

 

이 책을 제일 잘 표현하는 말은 이 책의 원제인 Fundamentals of Data Engineering 인 듯 싶다. 어찌 보면 식상하고 진부한 제목일지 모르지만, 그렇기에 더더욱 기본에 충실한 책이 아닐 수 없다. 이 책은 다른 컴퓨터 기술 서적과 달리 특정 도구나 기술, 플랫폼, 코드를 다루지 않는다. 다시 말하면 특정한 환경에 종속되지 않고 데이터 엔지니어링을 관통하는 기본 개념과 본질에 초점을 맞추고 있다. 

 이 책은 ‘데이터 엔지니어링 수명 주기’ 관점에서 데이터의 생성, 저장, 수집, 변환, 서빙 등을 다룬다. 이 책의 구성을 보면 크게 3 부분으로, 1부에서는 데이터 엔지니어링 기반 구축, 2부는 데이터 엔지니어링 수명 주기 심층 분석, 마지막 3부에서는 보안, 개인정보보호 및 데이터 엔지니어링의 미래를 소개하며, 부록을 통해 직렬화, 압축 및 클라우드 네트워킹에 대해 간략히 언급하고 있다. 

데이터 엔지니어링의 기본기를 확실히 쌓을 수 있는 교과서에 버금가는 충실한 내용 뿐 아니라, 책의 번역도 수준급이다. 깔끔한 설명과 적절한 용어 선정은 번역된 기술서에서 흔히 볼 수 있는 어색한 번역이 없어 읽는 이로 하여금 내용에 집중할 수 있도록 하고 있다. 이 책은 데이터 엔지니어링이란 무엇이며, 데이터 엔지니어로서 고민하고 준비해야 할 요소들에 대해 차근히 설명하고 있는 만큼 데이터 엔지니어가 되고 싶은 학생이나 초급 데이터 엔지니어 뿐만 아니라, 현업에서 데이터를 다루고 있는 이들에게도 기본을 다시 생각해 볼 수 있게 하는 좋은 책이라고 생각한다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

KakaoTalk_Photo_2023-08-27-17-45-00.jpg

 

 ‘견고한 데이터 엔지니어링’은 데이터 엔지니어링의 개념과 데이터 엔지니어의 역할, 데이터 엔지니어링 단계별 상세 기술을 설명한다. 사실 나는 데이터 사이언스와 데이터 엔지니어링의 경계가 모호하다고 여겼다. 이 책을 읽고 나서야 꽤 분명하게 나눠져 있음을 깨닫게 되었다. 데이터 사이언티스트와 데이터 엔지니어가 긴밀하게 협업해야 하므로 서로 간의 업무와 전반적인 흐름 파악을 위해서라도 이 책을 읽는 것이 도움이 될 것이다.

 

 

 

 

이 책의 주요 독자는 기술 실무자, 중/고급 소프트웨어 엔지니어, 데이터 과학자, 데이터 엔지니어링 분야로 전환하려는 분석가, 특정 기술 분야에서 일하지만 더 포괄적인 관점을 개발하려는 데이터 엔지니어다. 2차 대상 독자는 데이터 엔지니어 팀을 감독하는 기술 배경을 가진 데이터 팀 리더 또는 온프레미스 환경에서 클라우드 기반 솔루션으로 마이그레이션 하려는 데이터 웨어하우징 책임자 등, 기술 실무자와 연계해 작업하는 데이터 이해관계자다.

17쪽, 견고한 데이터 엔지니어링.

저자 조 라이스와 맷 하우슬리는 이 책의 주요 독자가 데이터 산업의 실무자로 어느 정도 지식을 갖춘 자가 읽어야 한다고 했다. 하지만 책의 내용이 꽤 친절해서 추천사에 나온 추천 대상 독자를 염두에 두어도 좋을 것 같다. (아래 항목 참고)

 

  • 데이터 엔지니어링 분야의 큰 그림을 그리고 싶은 분
  • 데이터 엔지니어 업무를 희망하는 분
  • 데이터 엔지니어 업무를 하고 계신 분
  • 데이터 분석가, 데이터 과학자 직무 담당자로서 데이터 엔지니어링을 이해하려는 분

 

최소 데이터에 대한 관심이 있는 이가 책을 읽는다면 좋을 것 같다. 나 같은 경우, 위의 사항에는 해당되는 바가 없지만 데이터 아키텍처에 대한 설명에 꽤 흥미를 가졌다.

 

 

 

  • 1부: 데이터 엔지니어링 기반 구축하기
  • 2부: 데이터 엔지니어링 수명 주기 심층 분석
  • 3부: 보안, 개인정보보호 및 데이터 엔지니어링의 미래
  • 부록: 직렬화, 압축 및 클라우드 네트워킹

 

 책의 목차는 훨씬 세부적으로 나누어져 있지만 크게 3부로 나뉘어 있다고 보아도 무방하다. 이 중에서도 가장 주요한 내용은 ‘데이터 생성, 저장, 수집, 변환, 서빙 등을 다루는 데이터 엔지니어링 수명 주기’이다. 각 단계는 관련 용어들을 주욱 늘어놓고 설명해 주기 때문에 읽으면서 차츰 이해할 수 있을 것이다. 이 단계에서 별도의 코드 예시를 보여주지는 않고 오로지 글로 세심히 분석한다. 가령, ‘데이터 저장’ 단계에서는 자기 디스크 드라이브, SSD, 직렬화, 스토리지 등의 개념을, ‘쿼리 모델링 및 데이터 변환’ 단계에서는 쿼리, 데이터 모델링, 변환, 유관 담당자 등의 모든 개념을 설명하는 식이다. 당장의 업무를 진행하기 위해서는 조금 더 세부적인 스킬을 파악할 수 있는 책을 별도로 구비해둬야 할 것이다. 이 책으로는 데이터 엔지니어링에 관한 큰 흐름을 파악하고, 불분명하게 남아있던 개념을 명확히 하는데 큰 도움을 구할 수 있다. 실습부터 진행하며 체득하였더라도 개념을 한번 다잡고 가는 시간 또한 필요하리라 생각된다.

 

 

 

 

데이터 엔지니어링은 원시 데이터(raw data)를 가져와 분석 및 머신러닝과 같은 다운스트림 사용 사례를 지원하는, 고품질의 일관된 정보를 생성하는 시스템과 프로세스의 개발, 구현 및 유지 관리이다. 데이터 엔지니어링은 보안, 데이터 관리, 데이터 운영, 데이터 아키텍처, 오케스트레이션, 소프트웨어 엔지니어링의 교차점이다.

43쪽, 견고한 데이터 엔지니어링.

데이터 엔지니어링을 설명하는 개념이다. 꽤 추상적으로 느껴질 수 있으니 데이터 엔지니어에 대한 설명을 더 읽어보도록 한다.

 

데이터 엔지니어는 원천 시스템에서 데이터를 가져오는 것부터 시작해 분석 또는 머신러닝과 같은 사용 사례에 데이터를 제공하는 것으로 끝나는 데이터 엔지니어링 수명 주기를 관리한다.

43쪽, 견고한 데이터 엔지니어링.

데이터 엔지니어링의 범위가 꽤 넓어서 데이터 엔지니어의 역할을 알고 가면 조금 더 구체적으로 파악할 수 있다.

 





 

SE-a1f73971-652c-474c-955d-81516b587c7a.png

 

크게 데이터 엔지니어링 수명주기를 보여준 뒤, 데이터의 진화와 현황을 설명한다.

 

image.png

 

 전공 시절 내내 보았던 매슬로우의 욕구 단계를 데이터 과학 욕구 단계로 각색한 부분도 재밌었다. 마크 트웨인의 '역사는 그대로 반복되지 않지만, 그 흐름은 분명 반복된다.'를 인용하여 데이터 엔지니어의 진화를 설명하기도 하는 등 인문학적인 요소를 IT에 접목해서 설명해서 더욱 재미있게 읽을 수 있었다.

 

 

 

https://www.youtube.com/c/TernaryData

 이 책의 저자인 조 라이스와 맷 하우슬리는 유튜브를 통해 ‘Monday Morning Data Chat’으로 개발자들과 소통한다고 한다. 데이터에 관심이 있는 사람들은 이 채널을 통해 한 번쯤 소통하는 것도 좋을 것 같다.

 

 

 

 

 

 

 

 

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

견고한 데이터 엔지니어링

 

 

한빛미디어에서 번역서로 발간된 "견고한 데이터 엔지니어링"은 흥미로운 내용을 잔뜩 담고 있습니다. 책의 표지만 봤을 때는 데이터 엔지니어 커리어를 쌓으려는 사람들을 위한 것처럼 보이는데요. 물론 이 책의 내용 중심에는 데이터 엔지니어링이 있지만 데브옵스(데이터옵스와 비교되는)와 모놀리스와 마이크로서비스 인프라 아키텍처 내용도 품고 있습니다. 

데이터 파이프라인을 구축할 때 자주 사용되는 메시지 큐와 데이터 스트리밍 플랫폼(카프카 같은)에 대한 설명도 잘 되어 있습니다. 그리고 OLTP(Online Transactional Processing), OLAP(Online Analytical Processing) 데이터베이스 이야기, 데이터웨어하우스, 데이터 레이크, 레이크 하우스 등 다양한 용어의 설명과 트렌드가 소개됩니다. 뿐만 아니라 우리가 데이터 아키텍처를 설계할 때 명심해야 하는 것들도 책에서 다루고 있습니다. 이건 비단 데이터 아키텍처뿐만 아니라 일반적인 서비스 아키텍처를 설계할 때도 두루 알고 있어야 하는 내용일 겁니다. 중요한 내용 몇 개를 발췌했습니다. 아래를 봐주세요

 

빅데이터는 10대의 섹스와 같다. 모두가 그것에 관해 이야기하지만, 실제로 어떻게 하는지 아는 사람은 아무도 없다. 하지만 다른 모든 사람이 그것을 하고 있다고 생각하기 때문에, 자신도 그것을 한다고 주장한다.

 

한때 빅데이터라는 용어 자체가 아주 핫했던 적이 있습니다. 한국에서는 대충 2015년쯤부터 사용된 것 같습니다. 빅데이터 엔지니어라는 포지션을 채용하는 회사들이 있었고 콘퍼런스장에는 빅데이터를 다루는 기술을 설명하는 곳이 많았습니다. 그리고 시간이 얼마 지나지 않아 대다수 회사들이 (일단 데이터만 있으면) 빅데이터를 다룬다고 이야기하기 시작했습니다. 빅데이터의 정의/기준이 모호한 것도 있었지만 어쩌면 대용량 데이터를 다루는 파이프라인이 더 중요한 시기였기에 모두가 빅데이터를 하고 있다고 이야기해도 다들 끄덕이지 않았나 생각해 봅니다.

 

데이터 엔지니어는 보안을 최우선으로 생각해야 하며, 이를 무시하는 사람은 위험을 감수해야 한다. 보안이 드러나지 않는 요소의 첫 번째 요소인 이유다. 데이터 엔지니어는 데이터와 접근 보안을 모두 이해하고 최소 권한 원칙(principle of least privilege)을 실행해야 한다. 최소 권한 원칙이란 사용자 또는 시스템이 의도된 기능을 수행하는 데 필수적인 데이터와 자원에만 접근할 수 있는 것을 의미한다. 보안 경험이 적은 데이터 앤지니어의 일반적인 안티 패턴은 모든 사용자에게 관리자 권한을 부여하는 것이다. 이는 대재앙으로 이어지는 행위다.

 

보안은 언제나 최우선입니다. 특히 데이터를 다루는 엔지니어라면 권한 관리는 필수입니다. 간혹 권한 때문에 데이터가 흐르는데 방해가 된다며 많은 권한을 부여하는 상황들을 접했는데요. 이건 아주 위험한 신호입니다. 데이터베이스 권한뿐만 아니라 인프라 전반에 걸쳐 권한 관리는 아주 중요한 요소이니 항상 신경 쓰도록 해야 합니다.

 

한 팀이 다른 팀에 의존하지 않고도 시스템을 테스트, 배포, 변경할 수 있도록 시스템 아키텍처가 설계되면, 해당 팀은 작업을 수행할 때 의사소통이 거의 필요하지 않다. 즉, 아키텍처와 팀 모두 느슨하게 결합되어 있다.

 

이 내용은 "구글 데브옵스 기술 아키텍처 가이드"에서 인용된 문장입니다. 물론 모든 상황에서 철저히 분리하는 것은 어려울 수 있지만 아키텍처 전반의 기조를 느슨한 결합으로 가져간다면 불필요한 의사소통을 아주 많이 줄일 수 있을 겁니다.

 

새로운 목표 선정 신드롬 때문에 지나치게 흥분하는 팀들이 있다. 그들은 최신 기술 유행이 프로젝트의 가치에 어떤 영향을 미칠지 이해하지 못한 채 그저 위대한 유행을 따라가야 한다는 강박관념이 사로잡힌다. 또한 프로젝트의 궁극적인 목표에는 우선순위를 두지 않고 인상적인 신기술을 축척해 이력서 주도 개발(resume-driven development)을 하려는 유혹도 있다. 항상 뭔가 멋진 것을 구축하려 하기보다는 작업 요건을 우선시하자

 

중요한 키워드가 나왔습니다. 우리는 서비스를 성공시키는 비즈니스를 개발하기 위해 모였다는 목적을 잊으면 안 되는데요. "이력서 주도 개발"에 빠지면 안 됩니다. 간혹 비즈니스 성공 여부와 무관하게 신기술로 무장한 거창한 아키텍처를 추구하는 사람들이 있는데 조심해야 합니다.

 

종종 소규모 데이터 팀이 대기업의 새로운 최첨단 기술에 관한 블로그 포스팅을 읽고, 그 포스팅의 내용과 같은 매우 복잡한 기술과 사례를 모방하려 시도하는 경우가 있다. 이를 가리켜 카고-컬트-엔지니어링(cargo-cult-engineering)이라 부르는데, 일반적으로 귀중한 시간과 비용을 많이 소비하지만 그 대가로 얻을 만한 것은 거의 없는 큰 실수라 할 수 있다.

 

위에서 살펴본 내용과 비슷한 맥락입니다. 각자 비즈니스에 맞는 기술이 있고 아키텍처가 있는 법인데 무조건 최첨단 기술을 도입하기 위해 시간을 허비하는 걸 피하도록 해야 합니다. 

이 책은 여러 가지 의미로 흥미롭습니다. 데이터 엔지니어와 데이터 엔지니어링을 정의하고 역할 범위를 이야기하는 건 물론이고 데이터 아키텍처를 설명하기 위해 소프트웨어 아키텍처를 다룰 때 나올법한(혹은 이미 널리 사용된) 문장들이 대거 등장합니다. 위에서 언급한 문장들이 이 책에서 처음 표현된 건 아닙니다. 어쩌면 많은 사람들이 이미 어딘가에서 접했던 문장들일 겁니다. 그런 만큼 이 책은 데이터 엔지니어만을 위한 책이 아닙니다(물론 데이터 엔지니어가 보면 더욱 좋습니다). 소프트웨어 엔지니어로 커리어를 잡은 사람이라도 다른 직군을 이해하기 위해서 혹은 소프트웨어 아키텍처를 정리하기 위해 읽어도 아주 좋을 겁니다. 마지막으로 마크 리처즈, 닐 포드의 Fundamentals of Software Architecture에서 인용된 다음 문장을 첨부하며 리뷰를 마칩니다. 이 문장도 책에 실려있습니다. 이 책을 많은 사람들이 일독하기를 바랍니다.

최고의 아키텍처를 추구하기보다는 덜 나쁜 아키텍처를 추구하라.

 

 


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

 

[도서 소개]

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

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


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


[대상 독자]

- 데이터 엔지니어링 실무를 맡고 있는 담당자

- 데이터 엔지니어링 업무를 희망하는 중/고급 소프트웨어 엔지니어

- 기술 실무자와 연계해 작업하는 데이터 이해관계자 또는 팀 리더

- 데이터 분석 및 데이터 과학 담당자로서 데이터 엔지니어링을 이해하려는 사람

- 데이터 엔지니어링 분야의 큰 그림을 그려보고 싶은 누구나



[주요 내용]

- 전체 데이터 엔지니어링 환경의 간결한 개요 파악

- 모범 사례의 엔드투엔드 프레임워크로 데이터 엔지니어링 문제 평가

- 데이터 기술, 아키텍처 및 프로세스를 선택할 때 마케팅 과대광고 차단

- 데이터 엔지니어링 수명 주기로 강력한 아키텍처 설계 및 구축

- 데이터 엔지니어링 수명 주기 전반에 걸쳐 데이터 거버넌스 및 보안 통합



[서평]

"견고한 데이터 엔지니어링"은 도구와 기술의 일시적인 특성을 초월하여 데이터 엔지니어링의 복잡한 영역을 탐구하는 뛰어난 책입니다. 이 책은 단기적인 추세에 휩쓸리는 세상에서도 핵심 원칙을 강조하여 데이터 파이프라인 설계 기술을 제공합니다.


데이터 엔지니어링의 기본 개념에 초점을 맞춤으로써 독자들에게 쉽게 이해를 도울수 있게 핵심을 제공합니다. 또한, 전체 데이터 수명주기를 다루며, 실제 경험과 노하우를 바탕으로 모든 단계의 내용들을 제시합니다.

각 장은 복잡한 아이디어를 실용적인 프레임워크로 정제하여 독자들이 문제를 극복하고 효과적인 솔루션을 구축할 수 있도록 돕습니다. 이러한 접근 방식은 데이터 엔지니어링 리더, 소프트웨어 엔지니어 및 협업하려는 데이터 이해관계자 모두에게 가치 있는 가이드가 될 것입니다.


"견고한 데이터 엔지니어링"은 단순히 기술 매뉴얼 이상의 책입니다. 그 안에는 실무에서 필요로 하는 핵심 원리와 변화하는 환경에서의 대응 방법 등이 담겨 있습니다. 또한, 정보에 입각하여 결정할 수 있는 능력과 데이터 거버넌스 및 보안과 같은 중요 요소들도 다룹니다.

데이터 엔지니어링 분야에서 복잡성을 파악하고 해당 분야의 포괄적인 지도를 그리려는 사람들에게 권장됩니다. 명확하고 깊이 있는 내용과 지속적인 통찰력으로 인해 "견고한 데이터 엔지니어링"은 신뢰할 수 있는 가이드가 될 것입니다. 이 책은 데이터 파이프라인 설계를 마스터하는 과정에서 필요한 명확성, 깊이 및 지속적인 인사이트를 제공합니다.


"견고한 데이터 엔지니어링"은 데이터 엔지니어링을 설명하는 데 그치지 않고, 정보에 기반하여 결정을 내릴 수 있으며, 과장된 광고와 실제 비즈니스 요구 사항 사이에서 적절한 기술을 선택할 수 있습니다. 특히, 데이터 거버넌스와 보안과 같은 중요한 측면들은 데이터 엔지니어링 수명주 전체에 걸쳐 포괄적인 이해를 제시하고 있습니다.


이 책은 복잡한 데이터 엔지니어링의 세계를 파악하고자 하는 사람들에게 필수입니다. 그 안에 담긴 명료함, 심도 및 지속적인 통찰력을 통해 독자들은 미래를 대비하여 데이터 파이프라인 설계를 마스터하는데 동반되는 신뢰할 수 있는 가이드로 남게 될 것입니다.


최종 평가로서, "견고한 데이터 엔지니어링"은 도구와 기술의 한계를 넘어서며 복잡성과 변화에 대응하기 위한 핵심 원칙과 실용적인 해결책을 제시합니다. 이 책은 분야의 전문가부터 초보자까지 모두에게 가치 있는 지식과 인사이트를 제공하며, 데이터 엔지니어에게 유용하게 활용될 것으로 기대됩니다.



 "한빛미디어 리뷰어 활동을 위해서 책을 제공받아 작성된 서평입니다."

이 책은 데이터 공학, 즉 데이터 엔지니어링으로 나아가는 여정을 담고 있다. 이 책의 목표는 현재 데이터 엔지니어링 관련 내용과 자료의 공백의 메우는 것이다. 데이터 수명 주기의 시작 단계부터 최종 단계에 이르기까지 모든 단계를 살펴본다. 이 책의 주요 내용은 데이터 생성, 저장, 수집, 변환, 서빙 등을 다루는 데이터 엔지니어링 수명 주기다.

 

이 책의 구성

  • 1부 : 데이터 엔지니어링 기반 구축하기

  • 2부 : 데이터 엔지니어링 수명 주기 심층 분석

  • 3부 : 보안, 개인정보보호 및 데이터 엔지니어링의 미래

  • 부록 : 직렬화, 압축 및 클라우드 네트워킹


Part 1. 데이터 엔지니어링 기반 구축하기

CHAPTER 1. 데이터 엔지니어링 상세

데이터 엔지니어링을 어떻게 정의하냐는 여러 의견이 있겠지만, 이 책에서 정의한 내용은 아래와 같습니다. 데이터 엔지니어링은 원시 데이터를 가져와 분석 및 머신러닝과 같은 다운스트림 사용 사례를 지원하는, 고품질의 일관된 정보를 생성하는 시스템과 프로세스의 개발, 구현 및 유지관리이다. 데이터 엔지니어링은 보안, 데이터 관리, 데이터 운영, 데이터 아키텍처, 오케스트레이션, 소프트웨어 엔지니어링의 교차점이다. 데이터 엔지니어는 원천 시스템에서 데이터를 가져오는 것부터 시작해 분석 또는 머신러닝과 같은 사용 사례에 데이터를 제공하는 것으로 끝나는 데이터 엔지니어링 수명 주기를 관리한다.

 

데이터 엔지니어링 수명주기의 단계

  • 데이터 생성

  • 데이터 저장

  • 데이터 수집

  • 데이터 변환

  • 데이터 서빙

 

데이터 엔지니어링 수명 주기는 전체 수명 주기에 걸쳐 중요한 아이디어인 드러나지 않는 요소라는 개념을 포함한다. 여기에는 보안, 데이터 관리, 데이터옵스, 데이터 아키텍처, 오케스트레이션, 소프트웨어 엔지니어링이 포함된다. 데이터 엔지니어링이 데이터 과학 및 분석과는 별개라고 가정한다. 이들은 서로 보완하지만, 분명히 다른 개념이다. 데이터 엔지니어링은 데이터 과학의 업스트림에 위치한다. 데이터 엔지니어는 데이터 과학자가 사용할 입력값을 제공하며, 데이터 과학자는 이렇게 입력된 값들을 유용한 결과로 변환한다는 의미다.

 

CHAPTER 2. 데이터 엔지니어링 수명 주기

데이터 엔지니어링 수명 주기란?

데이터 엔지니어링 수명 주기는 원시 데이터의 요소를 분석가, 데이터 과학자, ML 엔지니어 등이 사용할 수 있는 유용한 최종 제품으로 전환하는 단계로 구성된다.

 

원천 시스템 평가 : 주요 엔지니어링 고려 사항

  • 데이터 원천의 본질적 특징은? 데이터 원천은 애플리케이션인가?

  • 원천 시스템에서 데이터는 어떻게 유지되는가? 데이터는 장기간 보존되는가?

  • 데이터는 어느 정도 속도로 생성되는가? 초당 몇 개의 이벤트가 발생하는가?

  • 출력 데이터에서 어느 정도의 일관성을 기대할 수 있는가?

  • 데이터에 중복이 포함되지 않는가? …

 

스토리지 시스템 평가 : 주요 엔지니어링 고려 사항

  • 이 스토리지 솔루션은 아키텍처에서 요구하는 쓰기 및 읽기 속도와 잘 맞는가?

  • 스토리지가 다운스트림 프로세스의 병목 현상을 초래하지는 않는가?

  • 이 스토리지 기술이 작동하는 방식을 인지하고 있는가?

  • 이 스토리지 시스템은 향후 예상되는 확장을 처리할 수 있는가? …

 

수집단계 : 주요 엔지니어링 고려 사항

  • 수집 중인 데이터의 사용 사례는 무엇인가? 여러 버전을 생성하는 대신 재사용이 가능한가?

  • 시스템이 안정적으로 데이터를 생성하고 수집하고 있는가?

  • 데이터는 보통 어느 정도의 용량으로 도착하는가?

  • 데이터의 형식은 무엇인가? …

 

배치와 스트림 수집의 주요 고려 사항

  • 데이터를 실시간으로 수집하면 다운스트림 스토리지 시스템이 데이터 흐름 속도를 처리할 수 있는가?

  • 밀리초 단위의 실시간 데이터 수집이 필요한가? 아니면 매분마다 데이터를 축적하고 수집하는 마이크로 배치 접근 방식이 효과가 있는가?

  • 스트리밍 우선 접근 방식은 단순 배치방식보다 시간, 비용, 유지보수, 다운타임의 기회비용 측면에서 더 많은 비용을 소비할까?

  • 인프라 장애가 발생했을 때 스트리밍 파이프라인과 시스템이 안정적이고 다중화되어 있는가?

  • ML 모델을 배포했을 때 온라인 예측 및 지속적인 훈련으로 얻을 수 있는 이점은 무엇인가? …

 

변환 단계에서의 주요 고려 사항

  • 변환에 드는 비용과 투자수익율(ROI)는 얼마인가? 관련된 비지니스 가치는 무엇인가?

  • 변환은 가능한 한 단순하고 독립적인가?

  • 변환이 지원하는 비지니스 규칙은 무엇인가?

 

데이터 엔지니어링의 드러나지 않는 주요 요소

  • 보안 : 접근제어(데이터, 시스템)

  • 데이터 관리 : 데이터 거버넌스, 데이터 모델링, 데이터 무결성

  • 데이터옵스 : 데이터 거버넌스, 관찰 가능성과 모니터링, 데이터 무결성

  • 데이터 아키텍처 : 데이터 분석 트래이드오프, 디자인과 민첩성, 비지니스에 가치 더하기

  • 오케스트레이션 : 워크플로우 조정, 작업 스케줄링, 작업 관리

  • 소프트웨어 엔지니어링 : 프로그래밍과 코딩 기술, 소프트웨어 디자인 패턴, 테스트와 디버깅

 

데이터 품질의 3가지 주요 특징

  1. 정확도 : 수집된 데이터가 실제로 정확한가? 중복된 값이 있는가? 수치가 정확한가?

  2. 완전성 : 기록은 완전한가? 모든 필수 필드에 유횻값이 포함되는가?

  3. 적시성 : 기록을 시기 적절하게 이용할 수 있는가?

 

데이터옵스

데이터옵스(DataOps)는 애자일 방법론, 데브옵스, 통계적 공정관리의 모범 사례를 데이터에 매핑한다. 데브옵스의 목표는 소프트웨어의 릴리스와 품질을 개선하는 것이지만, 데이터옵스는 데이터 제품에 대해서도 같은 작업을 수행한다. 데이터옵스에는 자동화, 모니터링 및 관찰 가능성, 사고 대응 이라는 세 가지 핵심 기술 요소가 있다.

 

오케스트레이션

오케스트레이션은 많은 작업이 예약된 순서대로 최대한 빠르고 효율적으로 실행되도록 조정하는 프로세스다. 예를 들어 에어플로와 같은 오케스트레이션 도구를 스케줄러라고 부르는 경우가 많지만, 오케스트레이션 엔진은 일반적으로 유향 비순환 그래프(DAG)의 형태로 작업 종속성에 따라 메타데이터를 구축한다. DAG는 한번만 실행되거나 매일, 매주, 매시간, 5분 등 일정한 간격응로 실행되도록 스케줄링할 수 있다. 오케스트레이션 툴로는 에어플로, 프리펙트, 대그스터, 매타플로 등이 있다.

 

CHAPTER 3. 우수한 데이터 아키텍처 설계

우수한 데이터 아키텍처 원칙

  1. 공통 컴포넌트를 현명하게 선택하라

  2. 장애에 대비하라

  3. 확장성을 위한 아키텍처를 설계하라

  4. 아키텍처는 리더십이다

  5. 항상 아키텍처에 충실하라

  6. 느슨하게 결합된 시스템을 구축하라

  7. 되돌릴 수 있는 의사결정을 하라

  8. 보안 우선순위를 지정하라

  9. 핀옵스를 수용하라

 

주요 아키텍처 개념

1. 도메인과 서비스 : 도메인은 실제 설계를 하는 주제 영역이다. 서비스는 작업 달성이 목적인 기능 집합이다.

2. 분산 시스템, 확장성, 장애에 대비한 설계

  • 확장성 : 시스템 용량을 늘려 성능을 개선하고 수요를 처리할 수 있다. 예를 들어 시스템을 확장해 높은 속도의 쿼리를 처리하거나 대량의 데이터셋을 처리할 수 있다.

  • 탄력성 : 확장성이 뛰어나 시스템을 동적으로 확장할 수 있다. 탄력성이 뛰어난 시스템은 현재 워크로드에 따라 자동으로 스케일 업과 스케일 다운이 수행할 수 있다.

  • 가용성 : IT 서비스 또는 컴포넌트가 작동 가능한 상태에 있는 시간의 비율

  • 신뢰성 : 시스템이 지정된 동안 의도한 기능을 수행할 때 정의된 표준을 충족할 가능성(확률)이다.

3. 강한 결합 VS 느슨한 결합, 모놀리스, 마이크로서비스

  • 도메인과 서비스의 모든 부분은 다른 모든 도메인과 서비스에 필수적으로 의존한다. 이처럼 긴밀한 결합 패턴을 강한 결합이라고 한다. 이와 반대를 느슨한 결합이라고 한다.

  • 모놀리스 내에서의 강한 결합은 기술 결합과 도메인 결합의 두가지 방식으로 살펴볼 수 있다. 기술 결합은 아키텍처 계층이, 도메인 결합은 도메인이 서로 결합하는 방식을 말한다.

  • 마이크로서비스 아키텍처는 개별적이고 분산되어 있으며 느슨하게 결합된 서비스로 구성된다. 각 서비스는 특정 기능이 있으며 도메인 내에서 운영되는 다른 서비스와 분리된다. 한 서비스가 일시적 중단되더라도 다른 서비스의 기능에 영향을 주지 않는다.

4. 사용자 접근 : 싱글 VS 멀티테넌트

  • 데이터 엔지니어는 여러 팀과 조직 및 고객에 시스템을 공유하는 것에 대한 결정을 내려야 한다. 어떤 의미에서는 모든 클라우드 서비스가 멀티테넌트지만, 이러한 멀티테넌트는 다양한 방식으로 발생한다. 멀티테넌시에는 성능과 보안이라는 두 가지 요소를 고려해야 한다.

5. 이벤트 기반 아키텍처

  • 이벤트 기반 워크플로우는 이벤트 생성, 라우팅, 소비의 세 가지 주요 영역으로 요약된다. 이벤트 기반 아키텍처는 이벤트 중심 워크플로를 수용하고 이를 사용해 다양한 서비스 간에 통신한다. 이벤트 기반 아키텍처의 장점은 이벤트의 상태를 여러 서비스에 분산시킨다는 점이다. 이는 서비스가 오프라인 상태가 되거나, 분산 시스템에서 노드에 장애가 발생하거나, 여러 소비자 또는 서비스가 동일한 이벤트에 접근하도록 할 때 유용하다.

6. 브라운 필드 VS 그란필드 프로젝트

  • 데이터 아키텍처 프로젝트를 설계하기 전에 백지상태에서 처음부터 시작하는지, 아니면 기존 아키텍처를 재설계하는지를 알아야 한다. 주로 브라운필드(기존 재설계)와 그린필드(신규) 두 유형이 있다.

 

데이터 아키텍처의 사례 및 유형

  • 데이터 웨어하우스

  • 데이터 레이크

  • 융합, 차세대 데이터 레이크, 데이터 플랫폼

  • 모던 데이터 스택

  • 람다 아키텍처

  • 카파 아키텍처

  • 데이터 흐름 모델, 통합 배치, 스트리밍

  • IoT용 아키텍처

  • 데이터 메시

 

람다 아키텍처

  • 람다 아키텍처에서는 배치, 스트리밍 및 서빙 등의 시스템이 서로 독립적으로 작동한다. 원천 시스템은 이상적으로 변경할 수 없고 추가만 가능하며, 데이터를 처리할 때는 스트림과 배치라는 두 목적지로 전송한다.

 

카파 아키텍처

  • 람다 아키텍처의 단점에 대응책으로 카파 아키텍처라는 대안을 제시했고, 스트림 처리 플랫폼을 데이터 처리, 저장 및 서빙 등 모든 데이터 처리의 백본으로 사용하면 어떨까? 이를 통해 진정한 이벤트 기반 아키텍처를 실현할 수 있다. 실시간 이벤트 스트림을 직접 읽고 대량 데이터 청크를 재생해 일괄 처리함으로써 동일한 데이터에 실시간 및 배치 처리를 매끄럽게 적용할 수 있다.

 

데이터 메시

  • 데이터 메시는 거대한 모놀리식 데이터 플랫폼과 운영 데이터와 분석 데이터 사이에 환경이 구분되는 ‘데이터 격차’에 대한 최근의 대응책이다. 데이터 메시는 도메인 기반 설계 개념을 채택해 데이터 아키텍처에 적용함으로써 중앙 집중식 데이터 아키텍처의 문제를 뒤집으려 한다. 데이터 메시의 핵심은 탈 중앙화다.

 

데이터 메시의 핵심 구성 요소

  • 도메인 지향 분산형 데이터 소유권 및 아키텍처

  • 제품으로서의 데이터

  • 플랫폼으로서의 셀프서비스 데이터 인프라

  • 통합 컴퓨팅 거버넌스

 

CHAPTER 4. 데이터 엔지니어링 수명 주기 전체에 걸친 기술 선택

  • 팀의 규모와 능력

  • 시장 출시 속도

  • 상호 운용성

  • 비용 최적화 및 비즈니스 가치

  • 현재 vs 미래 : 불변의 기술과 일시적 기술 비교

  • 장소 : 온프레미스, 클라우드, 하이브리드 클라우드, 멀티 클라우드

  • 구축과 구매 비교

  • 모놀리식과 모듈식 비교

  • 서버리스와 서버 비교

  • 최적화, 성능, 벤치마크 전쟁

  • 데이터 엔지니어링 수명 주기의 드러나지 않는 요소


Part II. 데이터 엔지니어링 수명 주기 심층 분석

CHAPTER 5. 1단계 : 원천 시스템에서의 데이터 생성

데이터 엔지니어링 수명주기의 첫 번째 단계는 ‘원천 시스템에서 데이터 생성’이다. 데이터를 생성하는 시스템의 다양한 기본 운영 패턴을 학습할 때는 데이터가 어떻게 생성되는지를 이해해야 한다. 데이터는 사실과 수치의 비조직적이고 맥락 없는 집합이다. 데이터는 아날로그와 디지털 등 다양한 방법으로 생성될 수 있다. 원천 시스템은 다양한 방법으로 데이터를 생성한다.

 

원천시스템 : 주요 아이디어

  1. 파일과 비정형 데이터 : 파일은 바이트의 시퀀스로, 일반적으로 디스크에 저장된다. 애플리케이션은 종종 파일에 데이터를 쓴다. 파일은 로컬 매개변수, 이벤트, 로그, 이미지 및 오디오를 저장할 수 있다. 파일은 정형, 반정형, 비정형 등이 있다.

  2. API : 애플리케이션 프로그래밍 인터페이스(API)는 시스템 간에 데이터를 교환하는 표준 방식이다.

  3. 애플리케이션 DB : 애플리케이션의 상태를 저장한다. 은행 계좌의 잔액을 저장하는 데이터베이스 등이 일반적인 예다. 고객 거래 및 결제가 발생하면 애플리케이션은 은행 계좌 잔액을 갱신한다. 일반적으로 애플리케이션 데이터베이스는 개별 데이터 레코드를 높은 속도로 읽고 쓰는 온라인 트랜잭션 처리(OLTP) 시스템이다. ACID는 데이터베이스의 중요한 특성 중 하나로 원자성, 일관성, 독립성, 내구성을 나타낸다. 원자적 트랜잭션은 단위로 커밋되는 여러 변경 사항의 집합이다.

  4. 온라인 분석 처리(OLAP) 시스템 : OLTP와 달리 온라인 분석 처리 시스템은 대규모 분석 쿼리를 실행하도록 구축되어 있으며 일반적으로 개별 레코드의 조회 처리에는 비효율적이다.

  5. 변경 데이터 캡쳐(CDC) : 데이터베이스에서 발생하는 각 변경 이벤트(입력, 갱신, 삭제)를 추출하는 방법이다. CDC는 데이터베이스 간에 거의 실시간으로 복제하거나 다운스트림 처리를 위한 이벤트 스트림을 생성하는데 자주 사용된다.

  6. 로그 : 시스템에서 발생하는 이벤트에 대한 정보를 수집한다. 예를 들어 로그는 웹 서버의 트래픽과 사용 패턴을 수집할 수 있다. 모든 로그는 이벤트와 이벤트 메타데이터를 추적한다. 로그는 최소한 누가, 무엇을, 언제 수행했는지를 수집해야 한다.

  7. 데이터베이스 로그 : 데이터베이스 서버는 데이터베이스 테이블에 대한 쓰기 및 갱신 요청을 수신하고, 각 작업을 로그에 저장한 후에 요청을 확인응답 한다. 데이터베이스 로그는 데이터 엔지니어링에 유용한데, 특히 CDC가 데이터베이스 변경에서 이벤트 스트림을 생성하는 데 매우 유용하다.

  8. CRUD : 생성, 조회, 갱신, 삭제를 의미하는 CRUD는 프로그래밍에서 일반적으로 사용되는 트랜잭션 패턴으로, 영구 스토리지의 네 가지 기본적인 연산 작업을 나타탠다. CRUD는 애플리케이션의 상태를 데이터베이스에 저장하는 가장 일반적인 패턴이다.

  9. 입력전용 : 데이터를 포함하는 테이블에서 이력을 직접 유지한다. 레코드를 갱신하는 대신, 새로운 레코드가 생성된 시점을 나타내는 타임스팸프와 함께 입력된다. CRUD 패턴을 사용할 때는 고객이 주소를 변경하면 레코드를 갱신하기만 하면 된다.

  10. 메시지와 스트림 : 이벤트 기반 아키텍처와 관련해 메시지 큐와 스트리밍 플랫폼이라는 용어가 서로 혼용되는 경우를 볼 수 있는데, 두 용어 사이에는 미묘하지만 본질적인 차이점이 있다. 메시지는 둘 이상의 시스템 간에 전달되는 원시 데이터이다. 스트림은 이벤트 레코드의 추가 전용 로그다.

  11. 시간 유형 : 이벤트 시간은 원본 이벤트 자체의 타임스탬프를 포함해 원천 시스템에서 이벤트가 생성된 시점을 나타낸다. 수집 시간은 원천 시스템에서 메시지 대기열, 캐시, 메모리, 객체 스토리지, 데이터베이스 또는 데이터가 저장된 다른 위치로 이벤트가 언제 수집되었는지를 나나탠다. 처리시간은 수집 시간 이후에 데이터가 처리될 때 발생한다.

 

원천 시스템의 실질적인 세부 사항

  1. 데이터베이스 : 관계형 데이터베이스(RDBMS), 비관계형 데이터베이스(NoSQL) : key-value, document, graph, search, time series

  2. API : REST, GraphQL, WebHook, RPC & gRPC

  3. 데이터 공유

  4. 서드파티 데이터 원천

  5. 메시지 큐와 이벤트 스트리밍 플랫폼

 

드러나지 않는 요소가 원천 시스템에 미치는 영향

  1. 보안

  2. 데이터 관리 : 데이터 거버넌스, 데이터 품질, 스키마, 마스터 데이터 관리, 개인정보보호와 윤리, 규정

  3. 데이터옵스 : 자동화, 관찰가능성, 사고 대응

  4. 데이터 아키텍처 : 신뢰성, 내구성, 가용성, 사람

  5. 오케스트레이션 : 주기와 빈도, 공통 프레임워크

  6. 소프트웨어 엔지니어링 : 네트워크, 인증과 권한, 접근 패턴, 오케스트레이션, 병렬화, 배포

 

CHAPTER 6. 2단계 : 데이터 저장

데이터 저장은 데이터 엔지니어링 수명 주기의 토대로서 주요 단계인 수집, 변환 및 서빙의 기초가 된다. 데이터는 수명 주기를 거치는 동안 여러 번 저장된다.

 

데이터 스토리지의 기본 구성요소

  1. 자기 디스크 드라이브 : HDD

  2. SSD(Solid State Drive)

  3. 임의 접근 메모리(RAM)

  4. 네트워킹과 CPU

  5. 직렬화

  6. 압축

  7. 캐싱

 

데이터 스토리지 시스템

  1. 단일 머신 VS 분산 스토리지

  2. 최종 일관성 VS 강력한 일관성

  3. 파일 스토리지

  4. 블록 스토리지

  5. 객체 스토리지

  6. 캐시 및 메모리 기반 스토리지 시스템

  7. 하둡 분산 파일 시스템

  8. 스트리밍 스토리지

  9. 인덱스, 파티셔닝 및 클러스터링

 

데이터 엔지니어링 스토리지 개요

  1. 데이터 웨어하우스

  2. 데이터 레이크

  3. 데이터 레이크하우스

  4. 데이터 플랫폼

  5. Stream-to-Batch 스토리지 아키텍처

 

스토리지의 주요 아이디어와 동향

  1. 데이터 카탈로그

  2. 데이터 공유

  3. 스키마

  4. 컴퓨팅과 스토리지의 분리

  5. 데이터 스토리지 수명 주기 및 데이터 보존

  6. 싱글테넌트 스토리지와 멀티테넌트 스토리지 비교

 

드러나지 않는 요소

  1. 보안

  2. 데이터 관리

  3. 데이터 옵스

  4. 데이터 아키텍처

  5. 오케스트레이션

  6. 소프트웨어 엔지니어링

 

CHAPTER 7. 3단계 : 데이터 수집

데이터 수집은 데이터를 한 장소에서 다른 장소로 옮기는 프로세스다. 데이터 엔지니어링 수명 주기에서는 원천 시스템에서 스토리지로 데이터가 이동하는 것으로, 수집은 중간 단계에서 이루어진다.

 

수집 단계의 주요 엔지니어링 고려 사항

  1. 유한 데이터 VS 무한 데이터

  2. 빈도

  3. 동기 수집 VS 비동기 수집

  4. 직렬화와 역직렬화

  5. 처리량과 확장성

  6. 신뢰성과 내구성

  7. 페이로드

  8. 푸시 VS 풀 VS 풀링 패턴

 

배치 수집 고려사항

  1. 스냅숏 또는 차등 추출

  2. 파일 기반 익스포트 및 수집

  3. ETL과 ELT

  4. 입력, 갱신 및 배치 크기

  5. 데이터 마이그레이션

 

메시지 및 스트림 수집에 관한 고려사항

  1. 스키마의 진화

  2. 늦게 도착하는 데이터

  3. 주문 및 복수 전달

  4. 재생

  5. 유효 시간

  6. 메시지 크기

  7. 에러 처리와 데드레터 규

  8. 소비자 풀 앤 푸시

  9. 위치

 

데이터 수집 방법

  1. 직접 데이터베이스 연결

  2. 변경 데이터 캡쳐

  3. API

  4. 메시지 큐와 이벤트 스트리밍 플랫폼

  5. 관리형 데이터 커넥터

  6. 객체 스토리지로 데이터 이도

  7. EDI

  8. 데이터베이스와 파일 익스포트

  9. 공통 파일 형식의 실질적 문제

  10. SSH

  11. SFTP 및 SCP

  12. 웹훅

  13. 웹 인터페이스

  14. 웹 스크레이핑

  15. 데이터 마이그레이션용 전송 어플라이언스

  16. 데이터 공유

 

드러나지 않는 요소

  1. 보안

  2. 데이터 관리

  3. 데이터옵스

  4. 오케스트레이션

  5. 소프트웨어 엔지니어링

 

CHAPTER 8. 4단계 : 쿼리 모델링 및 데이터 변환

데이터 엔지니어링 수명 주기의 단계는 주로 데이터를 한 장소에서 다른 곳으로 전달하거나 저장하는 것이다. 쿼리, 모델링 및 변환을 이해하면 원시 데이터 구성 요소를 다운스트림 이해관게자가 사용할 수 있는 것으로 전환하는 도구를 얻을 수 있다.

 

쿼리

데이터 엔지니어링, 데이터 과학 및 분석의 기본적인 부분이다. 변환을 위한 기본 패턴과 기술을 알아보기 전에 쿼리가 무엇인지, 쿼리가 다양한 데이터에서 어떻게 작동하는지, 쿼리 성능을 개선하는 기술은 무엇인지 등을 이해해야 한다.

  • 데이터 정의 언어(DDL) : CREATE, DROP, ALTER

  • 데이터 조작 언어(DML) : SELECT, INSERT, UPDATE, DELETE, COPY, MERGE

  • 데이터 제어 언어(DCL) : GRANT, DENY, REVOKE

  • 트랜잭션 제어 언어(TCL) : COMMIT, ROLLBACK

 

데이터 모델링

데이터 모델링은 데이터의 일관성 있는 구조를 의도적으로 선택하는 작업이며, 데이터를 비지니스에 유용하게 만드는 중요한 단계이다. 데이터 모델은 데이터가 실제 세계와 연관되는 방식을 나타낸다. 데이터 모델은 조직의 프로세스, 정의, 워크플로 및 논리를 가장 잘 반영하기 위해 데이터가 어떻게 구조화되고 표준화되어야 하는지를 반영한다.

 

정규화는 데이터베이스 내 테이블과 열의 관계를 엄격하게 제어하는 데이터베이스 데이터 모델링 관행이다. 정규화의 목표는 데이터베이스에서 데이터 중복을 제거하고 참조 무결성을 보장하는 것이다.

  • 비정규화 : 정규화되지 않음. 중첩 및 중복 데이터 허용

  • 제1정규화(1NF) : 각 열은 고유하며 단일 값을 가진다. 테이블은 고유한 기본 키가 있다.

  • 제2정규화(2NF) : 1NF의 요건과 일부 종속성이 제거된다.

  • 제3정규화(3NF) : 2NF의 요건과 더불어 각 테이블에는 기본 키와 관련된 필드만 포함되며 전이 종속성은 없다.

 

드러나지 않는 요소

  1. 보안

  2. 데이터 관리

  3. 데이터옵스

  4. 데이터 아키텍처

  5. 오케스트레이션

  6. 소프트웨어 엔지니어링

 

 

CHAPTER 9. 5단계 : 분석, 머신러닝 및 역 ETL을 위한 데이터 서빙

데이터 엔지니어로서 접하게 될 세 가지 주요 사용 사례의 데이터를 서빙하는 다양한 방법을 설명한다. 첫째, 분석 및 BI용 데이터를 제공한다. 둘째, ML 애플리케이션의 데이터를 제공한다. 셋째, 역 ETL을 통해 데이터를 제공한다.

 

데이터 서빙의 일반적인 고려 사항

  • 분석

  • 머신러닝

  • 데이터 엔지니어가 ML에 관해 알아야 할 사항

  • 분석 및 ML을 위한 데이터 서빙 방법

  • 역 ETL

 

드러나지 않는 요소

  • 보안

  • 데이터 관리

  • 데이터옵스

  • 데이터 아키텍처

  • 오케스트레이션

  • 소프트웨어 엔지니어링


Part III. 보안, 개인정보보호 및 데이터 엔지니어링의 미래

CHAPTER 10. 보안과 개인정보보호

  1. 사람

  2. 프로세스

  3. 기술

 

CHAPTER 11. 데이터 엔지니어링의 미래

  1. 사라지지 않는 데이터 엔지니어링 수명 주기

  2. 복잡성의 감소와 사용하기 쉬운 데이터 도구의 부상

  3. 클라우드 규모의 데이터 OS와 향상된 상호 운용성

  4. 엔터프라이즈 데이터 엔지니어링

  5. 직책과 책임의 변화

  6. 모던 데이터 스택을 넘어 라이브 데이터 스택으로

 

이 책을 정독하면서 느낀 점은 데이터 엔지니어 역할을 위해서 알아야 하는 수많은 정보 중에 꼭 필요한 개념과 단계들을 일관된 스타일로 정리가 되어 있어서 내가 필요하는 시점에 찾아보기가 쉽게 되어 있다는 점이다. 특히 데이터 를 만들기 위해 필요한 생성, 저장, 수집, 변환, 서빙 단계별 주요 요소 및 드러나지 않는 정보까지 다 담겨 있어서 좋았습니다. 마지막 부분에 보안, 개인정보보호까지 최근 데이터 취급시 필히 알아야하는 부분도 담겨 있기 때문에 끝까지 포기하지 않고 읽기를 바랍니다.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

 



## 느낀점

 

이 책은 데이터 엔지니어링의 실무와 비즈니스 측면에서 자세히 설명한다. 여러 개념에 대해 명확하게 정의를 하고 시작하는 점이 좋았으며 각 장마다 레퍼런스도 깔끔하게 정리되어 있다. 번역도 괜찮은 편에 속한다고 생각되며 실무에서 고려해야할 사항들에 대해 집중하고 있는 책이기 때문에 실무자가 이 책을 읽는다면 도움이 많이 될 것으로 보인다. 기술(코드, 프로그램 등)에 집중한 책이라기 보다는 여러 개념들과 실무측면에서의 고려사항들에 대해 이야기하는 책이므로 이 점을 참고해서 책을 읽는 것이 좋아보인다. (Survey라고 생각하면 되겠다.)

 

 

## 챕터별 다루는 내용

 

#### ① 데이터 엔지니어링 상세

 

1장에서는 데이터 엔지니어링이 무엇인지 정의하고 이 책에서 어떤 부분에 대해 집중할 지(데이터 엔지니어링 수명주기), 데이터 엔지니어의 역할에 대해 간단히 소개한다.

 

`이런 내용들을 다룰거예요` 라고 간단히 짚어주는 부분

 

#### ② 데이터 엔지니어링 수명

 

이 책의 중심 주제가 될 데이터 엔지니어링 수명을 소개한다. 각각 단계별로 고려되어야 할 사항, 앞으로 책에서 논의하게 될 내용들을 간단히 언급한다.

 

#### ③ 우수한 데이터 아키텍처 설계

 

데이터 아키텍처가 무엇이고 고려해야할 사항을 알려준다. 또, 우수한 아키텍처의 원칙에 대해 소개한다.

 

#### ④ 데이터 엔지니어링 수명 주기 전체에 걸친 기술 선택

 

데이터 기술을 선택할 때, 고려해야할 사항들에 대해 소개한다. 상당히 많은 요소들에 대해 설명해주고 있으며 이러한 기술의 선택이 비지니스 가치를 높여줄 수 있는지에 대해 집중한다.

 

#### ⑤ 원천 시스템에서의 데이터 생성

 

5~9장은 앞서 소개한 데이터 엔지니어링 수명 주기의 각 단계에 대해 자세히 설명해준다.

 

이 장에서는 여러 원천 시스템의 유형과 세부적인 사항들(DB, API 등)에 대해 설명하고 여러 고려사항들에 대해 이야기한다.

 

#### ⑥ 데이터 저장

 

데이터가 저장되는 스토리지 시스템과 스토리지 추상화에 대해 설명한다. 기본 요소들(HDD, SSD 등)을 시작으로 스토리지 시스템(분산 스토리지 ,네트워크 스토리지 등)에 대해 이야기하고 스토리지 추상화(데이터 웨어하우스, 레이크 하우스)와 동향에 대해 설명한다.

 

#### ⑦ 데이터 수집

 

데이터 수집과 파이프라인에 대해 설명하고 수집 시스템 구축 시 고려할 점에 대해 소개한다. (데이터 종류, 빈도, 스키마 구성 등) 또, 여러 데이터 수집 방법들에 대해 이야기한다.

 

#### ⑧ 쿼리 모델링 및 데이터 변환

 

쿼리와 모델링 및 변환에 대해 설명한다. 쿼리가 무엇이며 어떻게 사용되는지 이야기하고 이를 기반으로 데이터 모델링에 대해 설명한다. 이후, 데이터를 변환하는 여러 방법들에 대해 이야기한다.

 

#### ⑨ 분석, 머신러닝 및 역 ETL을 위한 데이터 서빙

 

데이터 서빙시의 여러 고려 사항에 대해 이야기하고 여러 데이터 서빙 방법에 대해 설명한다. 

 

#### ⑩ 보안과 개인정보보호

 

데이터 엔지니어링에서의 보안과 개인정보보호에 대해 이야기한다. 이를 위한 마음가짐, 메뉴얼, 기술에 대해 소개하고 데이터 보안에 대해 강조한다.

 

#### ⑪ 데이터 엔지니어링의 미래

 

책에 대한 마무리 부분으로 여러 데이터 엔지니어링 미래에 대한 이야기를 한다. (툴, 상호 운용성, 데이터 스택 등)

 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

견고한 데이터 엔지니어링

- 데이터 아키텍트를 위한 교과서 -

 

견고한데이터엔지니어링01.jpg

 

 

 

최근 인공지능과 빅데이터가 중요해지고, ChatGPT, Bard, Lamma, DALL-E 등 생성형 인공지능이 사회에 커다란 파란을 일으키면서 데이터 아키텍트에 대한 중요성도 높아지고 있습니다. 생성형 인공지능을 만들기 위해서는 잘 정제된 초대형 데이터가 필요하고 그것을 다루기 위해서는 데이터 아키텍트의 역할이 중요하기 때문입니다. 이러한 사회적 요구에 의해 최근 데이터 아키텍트, 데이터 엔지니어링 분야가 아주 각광을 받고 있고, 몸값도 상상 이상으로 높아지고 있는데요. 마침 한빛미디어에서 데이터 엔지니어링에 대한 신간이 출간되었습니다. 읽어 본 소감을 결론부터 말하자면, 

 

최근들어 중요해진 데이터 엔지니어링 분야의 교과서 라고 할 수 있습니다.

1. 누가 읽어야 하나요?

데이터 엔지니어닝, 데이터 아키텍쳐 전문가를 꿈꾸는 사람. 데이터 분석 관련 직종 혹은 데이터 분석쪽으로 공부하고 싶은 사람. 데이터 수집과 저장에 대해서 자세히 배우고 싶은 사람들에게 추천합니다. 

 

데이터 엔지니어링 관련 자격증인 

데이터아키텍처 전문가 (DAP : Data Architecture Professional)

데이터아키텍처 준전문가 (DAsP : Data Architecture semi-Professional)

를 취득하기 위해서 준비하는 학생들에게도 아주 유용합니다. 

 

 

2. 책의 내용 구성


책의 내용은 데이터 엔지니어링에 대한 이론과 실무 경험에서 나온 다양한 시스템별 차이점과 비교점에 대해서 아주 자세하게 설명합니다. 각 챕터 뒷쪽에는 다양한 논문과 책 출처가 있어서 추가적으로 공부하고 싶을 때 자료를 찾아보기에도 아주 좋게 되어 있습니다. 

 

단, 개념 설명이 많기 때문에 쉽게 읽히는 책은 아닙니다. 생소한 용어와 방대한 지식을 다 익히기 위해서는 여러 번 두고두고 읽어야 하는 책입니다. 

 

각 챕터별 내용은 아래와 같습니다. 

 

[PART I 데이터 엔지니어링 기반 구축하기]

 

CHAPTER 1 데이터 엔지니어링 상세

데이터 엔지니어링이 무엇인지, 데이터 엔지니어링의 정의, 데이터 엔지니어링 라이프사이클, 데이터 엔지니어의 진화, 데이터 엔지니어링과 데이터 과학, 데이터 엔지니어링 기술 및 활동, 데이터 성숙도와 데이터 엔지니어, 데이터 엔지니어의 배경 및 기술, 비즈니스 책임, 기술 책임 등에 대해 다룹니다

 

CHAPTER 2 데이터 엔지니어링 수명 주기

데이터 엔지니어링 라이프사이클이 무엇인지, 데이터 라이프사이클과 데이터 엔지니어링 라이프사이클의 차이점, 생성: 소스 시스템 저장소 수집 변환 서빙 데이터 등에 대해 다룹니다

 

CHAPTER 3 우수한 데이터 아키텍처 설계

데이터 아키텍처가 무엇인지에 대해 다룹니다 

 

CHAPTER 4 데이터 엔지니어링 수명 주기 전체에 걸친 기술 선택

데이터 엔지니어링 수명 주기 전체에 걸친 기술 선택에 대해 다룹니다. 이 장에서는 팀의 규모와 능력, 시장 출시 속도, 상호 운용성, 비용 최적화 및 비즈니스 가치, 현재 vs 미래: 불변의 기술과 일시적 기술 비교, 장소: 온프레미스, 클라우드, 하이브리드 클라우드, 멀티클라우드, 구축과 구매 비교, 모놀리식과 모듈식 비교, 서버리스와 서버 비교, 최적화, 성능, 벤치마크 전쟁 등에 대해 다룹니다.

 

[PART II 데이터 엔지니어링 수명 주기 심층 분석]

 

CHAPTER 5 1단계: 원천 시스템에서의 데이터 생성

원천 시스템에서의 데이터 생성에 대해 다룹니다. 이 장에서는 데이터 원천: 데이터는 어떻게 생성될까?, 원천 시스템: 주요 아이디어, 원천 시스템의 실질적인 세부 사항, 함께 작업할 대상 등에 대해 다룹니다.

 

CHAPTER 6 2단계: 데이터 저장

데이터 저장에 대해 다룹니다. 이 장에서는 데이터 스토리지의 기본 구성 요소, 데이터 스토리지 시스템, 데이터 엔지니어링 스토리지 개요, 스토리지의 주요 아이디어와 동향 등에 대해 다룹니다.

 

CHAPTER 7 3단계: 데이터 수집

데이터 수집에 대해 다룹니다. 이 장에서는 데이터 수집이란?, 수집 단계의 주요 엔지니어링 고려 사항, 배치 수집 고려 사항, 메시지 및 스트림 수집에 관한 고려 사항 등에 대해 다룹니다.

 

CHAPTER 8 4단계: 쿼리 모델링 및 데이터 변환

쿼리 모델링 및 데이터 변환에 대해 다룹니다. 이 장에서는 쿼리, 데이터 모델링, 변환 등에 대해 다룹니다.

 

CHAPTER 9 5단계: 분석, 머신러닝 및 역 ETL을 위한 데이터 서빙

분석, 머신러닝 및 역 ETL을 위한 데이터 서빙에 대해 다룹니다. 이 장에서는 데이터 서빙의 일반적인 고려 사항, 분석, 머신러닝 등에 대해 다룹니다.

 

[PART III 보안, 개인정보보호 및 데이터 엔지니어링의 미래]

 

CHAPTER 10 보안과 개인정보보호

보안과 개인정보보호에 대해 다룹니다. 이 장에서는 사람, 프로세스, 기술 등에 대해 다룹니다.

 

CHAPTER 11 데이터 엔지니어링의 미래

데이터 엔지니어링의 미래에 대해 다룹니다. 이 장에서는 사라지지 않는 데이터 엔지니어링 수명 주기, 복잡성의 감소와 사용하기 쉬운 데이터 도구의 부상, 클라우드 규모의 데이터 OS와 향상된 상호 운용성, ‘엔터프라이즈’ 데이터 엔지니어링, 직책과 책임의 변화, 모던 데이터 스택을 넘어 라이브 데이터 스택으로 등에 대해 다룹니다.

 

APPENDIX A 직렬화와 압축 기술 상세

APPENDIX B 클라우드 네트워킹

 

3. 마무리

 

견고한 데이터 엔지니어링은 최근들어 중요해진 데이터 엔지니어링 분야의 교과서 라고 할 수 있습니다. 방대한 내용을 담고 있으며 추가적인 학습을 위한 세부 개념에 대한 출처를 모두 표기하고 있으며, 실무를 통해서만 알 수 있는 스토리지별 차이점, 효율적인 쿼리 작성 등에 대한 내용도 상세히 소개 하고 있습니다. 


데이터 엔지니어링은 데이터의 수집, 저장, 전처리를 전문적으로 하는 영역입니다. 저자가 책 앞부분에서 이야기 하고 있듯 


'데이터 엔지니어링'은 데이터 엔지니어가 데이터를 가져와 저장하고, 데이터 과학자나 분석가 등이 사용할 수 있도록 준비한다. 


다른 어느 때 보다 데이터의 양과 품질이 중요해진 시대에 원본 데이터를 수집하면서도 고 퀄리티를 유지할 수 있도록 가공하고 분석가들에게 데이터 전처리에 대한 부담을 지우지 않도록 사전에 처리해 주는 역할을 합니다. 


최근들어 주목받고 있는 데이터 엔지니어링에 대해서 이렇게 상세하고 방대한 지식을 전달해주는 책이 출간되어 기쁩니다.  데이터 엔지니어링에 관심이 있거나 데이터 아키텍트가 꿈인 분들이라면 꼭 소장하면서 두고두고 참고해야 할 책이라고 생각합니다. 


 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


 

#견고한데이터엔지니어링 #데이터엔지니어링 #데이터아키텍쳐 #데이터아키텍쳐전문가 #데이터아키텍처 준전문가 #DAP #DAsP #한빛미디어 #데이터수집 #빅데이터 #인공지능 

 

요즘 세상을 나는 데이터 세상이라고 부르고 싶다.

잘 정제된 데이터만 있다면 할 수 있는 일이 너무도 많기 때문이다.

영화에서만 봐왔던 정보가 최고의 가치를 지니는 시대가 왔다고 해도 과언을 아니지 싶다.

 

요즘 우리를 뒤덮고 있는 AI 여기 제대로 된 데이터가 없다면 사상누각일 수 밖에 없다.

그래서 데이터에 대한 직업이 사람들의 집중관심을 받고 있다. 

 

​그리고 종류도 엄청 많은데 데이터 사이언티스트, 데이터 엔지니어, 데이터 리서처, 데이터 분석가, MLOps 등등 솔직히 이에 종사하는 사람이 아닌 일반인의 눈에는 전부다 같은 일 하는 사람 아니야? 

뭐 그런 생각을 하기 십상이고 솔직히 나도 위의 직업을 정확하게 분류해 보라고 하면 못 할 것 같다.

 

그래서 견고한 데이터 엔지니어링을 설명하는 이 책이 나에게 필요했다!

 

이 책에서는 데이터 엔지니어링이 무엇인가 부터 설명한다.

 

데이터 엔지니어링이란 무엇인가? 데이터 엔지니어링은 데이터를 수집, 저장, 처리, 분석, 시각화하는 과정을 설계하고 구축하고 운영하는 엔지니어링 분야이다. 

 

​데이터 엔지니어링은 데이터 과학 밀접한 관련이 있으며, 데이터 사이언스의 기반이 되는 인프라와 파이프라인을 제공한다. 즉,  데이터 엔지니어링 없이는 데이터를 수집하고 저장하고 처리하고 분석하고 시각화할 수 없다.

 

데이터 엔지니어링은 데이터의 품질과 신뢰성을 보장하고, 데이터의 가용성과 접근성을 높이고, 데이터의 통합과 협업을 촉진한다.

 

​그렇다면 이렇게 중요한 데이터 엔지니어링! 어떻게 하면 견고한 구축할 수 있을까? 

이 책은 바로 이 질문에 대한 답을 제공한다. 

 

이 책은 데이터 엔지니어링의 기본 개념과 원리를 설명하고, 실제 사례와 예제를 통해 데이터 엔지니어링의 전반적인 과정과 방법을 소개한다. 

 

​- 데이터 엔지니어링의 정의와 목적

- 데이터 엔지니어링의 핵심 요소와 구성 요소

- 데이터 엔지니어링의 주요 도구와 기술

- 데이터 엔지니어링의 설계 원칙과 모범 사례

- 데이터 엔지니어링의 적용 분야와 사례 연구

 

​이 책은 견고한 데이터 엔지니어링을 구축하는 데 필요한 모든 지식과 정보를 제공한다.  

이 책의 가장 큰 장점은 쉽게 읽고 이해할 수 있도록 구성되어 있다는 것이다.

그리고 내가 가장 많은 도움을 받은 부분인데 이 책은 데이터 엔지니어링에 대한 최신 트렌드와 동향도 반영하고 있다.

 

​이 책으로 뭔가 전문적이 스킬을 배울 수는 없을 수도 있다.

이 책은 데이터 엔지니어의 역할과 데이터 엔지니어링에 대한 개론서로 생각하면 좋을 것 같다.

꼭 데이터 엔지니어링에 국한된 내용이 아니라 데이터를 다루는 일을 공부하고 싶거나 그 분야에 종사하기를 희망하는 사람들에게 데이터 관련 업무에 대한 큰 그림을 그릴 수 있도록 도와준다.

그리고 데이터 엔지니어로서 꼭 한번 도전하고 싶은 의지가 충만해질 것이다. 

 

"이 책은 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성한 서평입니다 "

 

 

시작하며

필자는 데이터에 관심만 있고 이것저것 찍먹만 해본 상태이다. 데이터 관련 프로젝트는 예전에 해수부에서 했던 통계사이트 작업이 제일 많이 다룬 일이었고 그밖에 디비는 어떤 프로젝트던지 사용하기 때문에 그냥저냥 사용하는 수준이다. 데이터를 요리하면 뭐 하나 맛있는거 만들 수 있을까? 하는 마음에 이 책을 보게 되었다. 이 책을 읽기 전에 데이터 분석에 관련된 것인 줄 알았다. 전체적으로 훑어보니 그건 아니었고 데이터 관리 시스템 구축에 대한 내용으로 구성되어 있다.

데이터 엔지니어링

​책에서 데이터엔지니어링에 대한 정의 부분에 많은 부분을 할애한다. 각종 사전에서 데이터 엔지니어링이 무엇인지 가져와서 통합해서 정의를 내린 내용은 다음과 같다.

데이터 엔지니어링은 원시 데이터(raw data(를 가져와 분석 및 머신러닝과 같은 다운스트림 사용 사례를 지원하는, 고품질의 일관된 정보를 생성하는 시스템과 프로세스의 개발, 구현 및 유지 관리이다.

데이터 엔지니어링은 보안, 데이터 관리, 데이터 운영, 데이터 아키텍처, 오케스트레이션, 소프트웨어 엔지니어링의 교차점이다.

데이터 엔지니어는 원천 시스템에서 데이터를 가져오는 것부터 시작해 분석 또는 머신러닝과 같은 사용 사례에 데이터를 제공하는 것으로 끝나는 데이터 엔지니어링 수명 주기를 관리한다.

출처 : 견고한데이터 엔지니어링

정의가 참 복잡스럽다. 그냥 쉽게 이야기하자면 데이터엔지니어링은 데이터를 가지고 분석하기 위한 이전단계 작업라 할수 있다.

책의 전반적인 내용은 위의 그림에 대한 내용을 쭉 풀어 썼다고 생각하면 된다.

데이터를 어떻게 생성,저장,수집,변환,서빙을 하는지 전체적인 원칙에 대해서 아주 상세하게 설명을 하고 있다. 원칙에 대한 내용이 많다. 이 책 전체 페이지가 자그만치 1000페이지가 넘어간다. 물론 난 다 읽지 않았다. 그냥 훑어봤다.

데이터 과학 욕구단계

출처 링크 hackernoon.com

책을 보다가 좀 흥미로운 내용이 있어 첨부한다. 마치 매슬로의 욕구단계인듯 하지만 데이터 과학의 욕구단계가 있다고 하면서 그림을 하나 보여준다. 그림을 보고 알 수 있는 건 모든 데이터는 결국 AI의 밥이라는 것이다. 어떤 데이터든 열심히 쌓아서 AI에게 먹이로 주어 뭔가 신기방기한 것을 하는 것을 목표로 한다.

이 책의 주요 내용

  • 데이터 엔지니어링 수명주기의 주요 단계 및 단계별 기술과 원칙에 대한 내용

  • 인터넷에 뿌려져있는 다양한 데이터(다운스트림데이터)들을 수집하고 저장하기위한 인프라 설계 구축

  • 데이터 시스템 구축에 있어서 보안과 개인정보보호를 위해 고려해야 할 내용들

이 책은 데이터관련한 아~주 전반적인 내용을 다루고 있다. 구축 관련한 깊은 기술적인 내용이 있을것이라 생각했는데 그것 보다는 정말 전~반적인 관련 내용을 다루고 있다. 데이터 관련 작업을 해보지 않았거나 전반적인 내용을 알고 싶다면 이 책을 통해 도움을 받을 수 있을 것 같다. 기술 개념적인 내용 전반적인 이론에 대한 내용이 대부분을 차지하고 있다.

끝내며

분량이 분량이니만큼 다양한 기술들에 대한 내용을 읽어볼 수 있다. 아~주 전반적인 부분을 다루기 때문에 읽어볼 부분들이 많다. 이 책은 데이터 구축 및 운영에 대해 전반적으로 알고자 하는 사람들에게 추천한다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

참고하시고 봐주시면 되겠습니다. 

 

견고한 데이터 엔지니어링

 

 

data-engineering-1.png

 

data-engineering-2.png

 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

이 책은 데이터 엔지니어링에 대해 다루고 있다.

전체적인 엔지니어링 환경 뿐 아니라 수명주기와 아키텍처 설계에 대해서도 다룬다.

 

목차를 보면 크게 3개의 캡터로 나누어져있다.

- 1. 기반 구축

- 2. 엔지니어링 생명주기

- 3. 보안


엔지니어링 개요 > 수명주기 > 설계 > 기술 선택 > 데이터 생성 > 저장 > 수집 > 변환 > 서빙 > 보안

순서로 설명하고 있다.

가장 재미있게 봤던 부분은 챕터4. 데이터 엔지니어링 수명주기 전체에 걸친 기술 선택 부분이었다.

운영비용과 기회비용에 따라 기술 선택에 있어서의 조언을 볼 수 있는 챕터였다. 실무진에게 도움이 많이 되는 챕터가 아닐까 싶다.


- 장소: 온프레미스, 클라우드, 하이브리드 클라우드, 멀티 클라우드

- 구축, 구매: 오픈소스와 구매

- 모놀리식와 모듈식

- 서버리스와 서버


각각에 맞춰서 설명과 조언이 존재한다. 상당히 꼼꼼하면서도 조언을 통해 기술을 선택할 수도, 기술에 대한 고민을 해볼 수 있는 기회를 주는 책이다.


매일 새로운 기술과 패턴이 등장하는 상황에서 올바른 기술을 선택하기란 쉬운 일이 아니다. 오늘날은 아마 기술을 평가하고 선택하기에 역사장 가장 혼란스러운 시기일 것이다.


챕터4를 지나 5부터는 데이터의 생성부터 서빙까지 생명주기를 다룬다.

앞서 첨부한 이미지를 차근차근 설명하는 구간이다. 생명주기에 대해서만 설명할 것 같지만 생명주기 내에 존재하는 각종 고민들을 서술한다. 

원자적 트랜잭션, OLAP, OLTP, CDC 등 다양한 데이터 엔지니어링 관점의 개념들을 확인할 수 있다.

 

그렇게 자세한 내용을 다루는 책은 상당히 오랜만이다. 

책을 보다보니 '데이터 중심 애플리케이션 설계' 와 같이 봐도 좋겠다고 생각이 드는 책이다. 

이 책을 이어 꼭 읽어보면 좋은 책이 되지 않을까 생각이 된다.


책 내용이 어렵긴하다. 다양한 내용들을 다루고 있기 때문에 처음부터 차근차근 이해하고 넘어가지 않는다면 뒤로 갈수록 내용을 이해하는데 어렵게 느껴질 것이다. 그러나 책을 천천히 이해한다면 책을 다 읽을 때 쯤에는 데이터 엔지니어링에 대한 많은 개념들을 이해할 수 있을 것이다.


실무에서 일을 하다보면 친절한 사수 없이 스스로 시행착오를 겪으며 성장해야 하는 외로운 순간이 있다. 그 때 이 책이 옆에 있다면 어떨까? 이 책은 데이터 엔지니어링 업무를 하며 궁금한 A-Z까지의 내용을 친절한 사수처럼 설명한다.

견고한 데이터 엔지니어링은 실제 데이터 엔지니어링 문제 해결을 위한 탄탄한 기반 제공하는 것을 목표로 하는 책이다. 데이터 엔지니어링이란 무엇일까? 데이터를 좀 더 효과적으로 처리하고 활용하기 위한 기술 및 방법론으로 데이터와 관련된 작업을 효율적으로 하기 위한 노하우를 집대성한 책이다. 데이터 과학자, 소프트웨어 엔지니어, 데이터 팀 리더는 물론 다양한 분야의 전문가 쁀먼 아니라 데이터엔지니어링 관련 업무를 시작하는 사람이거나 혹은 엔지니어링 업무를 하고 있다 하더라도 전반적인 내용을 정리해 볼 수 있는 책이었다.

이 책에서 다루는 내용으로 이론적인 내용과 실무적인 내용을 모두 다루며 각 단계별 모범 사례를 다루고 있다.

  • 데이터 과학자, 소프트웨어 엔지니어, 데이터 팀 리더의 역할에서 데이터 엔지니어링의 영향
  • 마케팅 과대광고 판별 및 적합한 기술, 데이터 아키텍처, 프로세스 선택 방법
  • 데이터 엔지니어링 수명 주기를 활용한 강력한 아키텍처 설계 및 구축 방법
  • 데이터 수명 주기 각 단계의 모범 사례

또, 다음과 같은 역할을 기대해 볼 수 있는 책이기도 하다.

  • 현재 데이터 관련 역할에 데이터 엔지니어링 원칙 통합
  • 다양한 클라우드 기술 통합하여 다운스트림 데이터 소비자 요구 충족
  • 모범 사례 기반의 종단간(end-to-end) 프레임워크로 데이터 엔지니어링 문제 접근
  • 데이터 엔지니어링 수명 주기 전반에 걸친 데이터 거버넌스 및 보안 통합
데이터 엔지니어링 생명주기

데이터 엔지니어링 생명주기를 생성=>저장=>수집=>변환=>서빙 으로 단계별로 설명과 데이터 분석가, 엔지니어, 제품관리자, 프로젝트 매니저에 대한 역할 분담에 대한 조직 구성까지 설명하는 부분이 인상적이었다.

  • 데이터 생성 (Generation): 데이터가 원점에서 처음 만들어지는 과정. 예) 사용자의 웹사이트 방문 기록
  • 데이터 저장 (Storage): 생성된 데이터를 안정적으로 보관하는 단계. 예) 데이터베이스에 사용자 정보 저장
  • 데이터 수집 (Ingestion): 다양한 출처의 데이터를 중앙 저장소로 옮기는 과정. 예) 로그 데이터 실시간 수집
  • 데이터 변환 (Transformation): 데이터를 분석이나 처리에 적합한 형태로 변경하는 단계. 예) 로그 데이터에서 필요 정보만 추출 및 정제
  • 데이터 서빙 (Serving): 처리된 데이터를 사용자나 애플리케이션에 제공하는 과정. 예) API를 통해 데이터 제공
데이터 과학 욕구 단계

많은 데이터 과학자가 ML 모델을 구축하고 튜닝하기를 원하지만, 실제 작업 시간의 70~80%는 계층 구조상 하위 세 부분(데이터 수집, 데이터 정리, 데이터 처리)에 시간을 소비하는 것으로 추정되며, 분석과 ML에 할애하는 시 간은 극히 일부에 불과하다.

책에 나와있는 내용을 인용하면 대부분의 시간의 70~80%의 시간을 수집과 전처리에 보낸다는데 공감이 되고 이를 위해 데이터의 품질, 가용성, 일관성, 안전성 및 효율성을 위한 데이터 거버넌스 특정 데이터에 대한 관리와 품질을 보장하는 개인이나 팀을 운영하는 방안까지 소개하고 있다. 이 책은 단순히 데이터 엔지니어링의 기술적인 측면을 넘어 데이터 엔지니어링 업무의 전체적인 그림을 그리고 각 단계별로 필요한 기술적인 접근 방법까지 자세히 설명한다.

앞으로 데이터 엔지니어링 업무에 유용한 지침서로 활용해 볼 예정이다.

이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.

견고한 데이터 엔지니어링 서평 

 

이책은 데이터 생성, 저장, 수집, 변환, 서빙 등을 다루는 

데이터 엔지니어링 수명 주기에 대한 전반적인 내용을 

다루면서도 과거부터 최신 까지 모든 관련 기술을 

포관하면서 오랜 시간이 지나도 적용할 수 있는 원칙으로 

설명을 하고 있는 책이다 

 

데이터엔지니어링을 담당하는 실무자 뿐만 아니라 

소프트웨어 엔지니어, 분석가등 관련 있는 모든 

분들께 많은 도움이 될 것 같다 

 

책의 구성은 1부 데이터 엔지니어링 기반 구축하기 에서 

데이터 엔지니어링의 수명주기를 다룬다 

이 수명 주기에서 고려해야 되는 사항에 대한 설명이 나온다 

또한 드러나지 않는 요소 보안이나 데이터 거버넌스 품질과 같은 

이런 점도 실무에 적용하기 위한 내용으로 좋았다 

추가적으로 데이터 아키텍쳐의 정의를 우한 원칙을 수립하고 

뛰어난 아키텍쳐를 구현 하기 위한 

다양한 방법론들을 설명한다 

 

2부에서는 데이터 엔지니어링 수명 주기 심층 분석에서 

수명주기에 대한 내용을 더 깊이 있게 다룬다 

 

3부에서는 실무자들이 많이 관과 할 수있는 

보안, 개인정보보호에 대해서 짧지만 

내용을 다루 주는 부분이 좋았다

 

전체적으로 데이터 엔지니어링에 대한 실무적인 그리고 최신에 적용하는 

기술들을 다 다뤄주고 있는 점이 좋았다 

 

※ 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

데이터 엔지니어링 실무에 관련된 내용들보다는 주로 데이터 엔지니어링에 대한 주요 개념을 다루고 있는 개념서에 가까운 책입니다

빠르게 변화하는 분야에서 오랫동안 가치있는 내용들을 정리해내고 싶었던 저자의 의도가 녹아들어 

변화되고 쓸모없어지는 실무 기법보다는 주로 개념적인 내용들 위주로 다루고 있는 것 같습니다 

매우 만족스러운 책이고 데이터 분야에 종사하고 있는 사람들이라면 한번 읽어보는 것을 추천합니다

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원 무료배송
닫기

리뷰쓰기

닫기
* 상품명 :
견고한 데이터 엔지니어링
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
견고한 데이터 엔지니어링
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
견고한 데이터 엔지니어링
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1