20 August 2023

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

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

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

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

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

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

데이터 엔지니어링 생명주기

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

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

데이터 과학 욕구 단계

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

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

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

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