</>
도서 목록으로 돌아가기
견고한 데이터 엔지니어링 책 표지

견고한 데이터 엔지니어링

데이터 파이프라인 설계와 구축의 핵심 원리를 다루는 실무 중심의 데이터 엔지니어링 가이드북

조 라이스, 맷 하우슬리
한빛미디어
2023년 6월
552페이지
읽은 날짜: 2025년 3월
#데이터 엔지니어링#파이프라인#아키텍처#클라우드#빅데이터

서평

이 책은 빅데이터를 지탱하는 기술, 데이터 파이프라인 핵심 가이드와 더불어 데이터 엔지니어링에 관한 기본서로 많은 내용을 담고 있습니다. 또한, 많은 분들께 추천을 받아 읽게 되었으며 데이터 수명 주기에 관해서 많이 공감하며 재밌게 읽었습니다.

이 책을 읽기 전까지 엔지니어가 결국 기업의 의사결정을 효율적으로 지원하는 역할을 해야 한다고 생각했습니다. 이에 따라 백엔드부터 비즈니스 인텔리전스, 인공지능, 머신러닝, 그리고 MLOps까지 다양한 분야를 고려해야 한다고 생각했습니다. 그러나 이 책을 통해 데이터 엔지니어의 궁극적인 목적과 역할에 대해 새롭게 조명을 받게 되었습니다.

데이터 엔지니어링의 생명주기는 데이터의 생성부터 저장, 수집, 변환, 그리고 서빙까지 이르며, 이 전 과정에 걸쳐 보안, 데이터 관리, DevOps, 아키텍처, 그리고 오케스트레이션, 소프트웨어 엔지니어링까지 다양한 요소들이 복합적으로 작용합니다. 결국, 데이터 엔지니어는 이러한 수명주기 전반에 걸쳐 기업의 투자수익률(ROI)을 극대화하고, 재무적, 기회적 비용을 최소화하며, 다양한 리스크(보안과 데이터 품질 등)를 효과적으로 관리하는 것이 최상위 목표라 할 수 있습니다.

이 책은 "어떻게 하면 비즈니스에 진정한 가치를 더하는 데이터 엔지니어가 될 수 있을까?" 그리고 "데이터 엔지니어로서 고려해야 할 핵심 요소들은 무엇인가?" 등의 본질적인 질문에 대한 깊이 있는 통찰을 제공합니다. 이 책에서 탐구하는 데이터 엔지니어의 역할은 더욱 정확하게는 '데이터 수명주기 엔지니어'라고 칭할 수 있을 만큼 전반적이고 종합적인 관점을 제시합니다.

리뷰

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

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

데이터 엔지니어링의 핵심 목적은 수명 주기 전체에 걸쳐 데이터를 운반하고, 최종 사용자의 요구에 따라 이를 제공하고 견고하고 신뢰성 높은 시스템 설계하는 것.


2. 데이터 엔지니어링의 발전 과정

1980년대: 데이터 웨어하우징의 시작

1980년대 데이터 웨어하우스라는 용어가 형성되고 1989년 빌 인먼이 '데이터 웨어하우스'라는 용어 공식화. IBM의 엔지니어들이 관계형 데이터베이스(RDBMS)와 SQL 개발하였으며 오라클이 이 기술 대중화. BI(비즈니스 인텔리전스) 도구와 데이터 파이프라인의 필요성 증가되고 랄프 킴벌과 빌 인먼, 데이터 모델링 기법 개발.

1990년대: 인터넷과 웹 우선 기업의 탄생

1990년대 중반: 인터넷이 주류가 되며 AOL, 야후, 아마존 등 웹 우선 기업 탄생. 닷컴 열풍으로 웹 애플리케이션과 백엔드 시스템에 활동 증가.

2000년대 초: 현대 데이터 엔지니어링의 시작

닷컴 열풍 이후 야후, 구글, 아마존 등이 강력한 기술 기업으로 성장했고 범용 하드웨어의 저렴화와 대규모 분산 컴퓨팅 클러스터의 발전. 2003년: 구글, 구글 파일 시스템 논문 발표. 2004년: 구글, 맵리듀스 논문 발표. 2006년: 야후 엔지니어들이 아파치 하둡 개발 및 오픈소스화. 아마존, AWS 개발 및 클라우드 시장 혁신.

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

하둡 생태계와 오픈소스 빅데이터 도구의 성숙. 실시간 빅데이터 분석의 새 시대 개막. 빅데이터 엔지니어의 등장과 데이터 전달의 중요성 증가.

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

데이터 엔지니어링의 모듈화, 분산, 고도의 추상화. 데이터 엔지니어의 역할, 보안, 데이터 관리, 데이터옵스, 아키텍처, 오케스트레이션으로 확장. CCPA, GDPR 등 데이터 프라이버시 및 규정 준수에 대한 중요성 증가.


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

데이터 엔지니어링의 정의

데이터 엔지니어링은 데이터 과학자, 데이터 분석가, 비즈니스 인텔리전스 개발자, 그리고 조직 내의 다른 전문가가 데이터를 사용할 수 있도록 만드는 일련의 작업입니다. 원시 데이터(raw data)를 가져와 분석 및 머신러닝과 같은 다운스트림 사용 사례를 지원하는, 고품질의 일관된 정보를 시스템과 프로세스의 개발, 구현 및 유지 관리라고 할 수 있습니다.

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

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

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

데이터 엔지니어링 수명 주기는 전체 수명 주기에 걸쳐 중요한 아이디어인 드러나지 않는 요소(undercurrent)라는 개념을 포함합니다. 여기에는 보안, 데이터 관리, 데이터옵스, 데이터 아키텍처, 오케스트레이션, 소프트웨어 엔지니어링이 포함됩니다.

데이터 성숙도와 데이터 엔지니어

데이터 성숙도(data maturity)는 조직 전체에 걸쳐 더 높은 데이터 활용률, 기능, 통합을 향해 나아가는 과정입니다.

1단계: 데이터로 시작하기

적절한 데이터 아키텍처 정의, 기업의 목표를 지원하는 데이터 아키텍처 설계 및 구축

2단계: 데이터로 확장하기

공식적인 데이터 관행 수립, 확장성 있고 견고한 데이터 아키텍처 구축, 데브옵스 및 데이터옵스 관행 채택

3단계: 데이터로 선도하기

자동화 구축, 경쟁 우위로서 데이터 활용, 데이터 관리 및 데이터옵스에 집중, 조직 전체 협업 환경 구축

데이터 엔지니어의 유형

A형 데이터 엔지니어 (추상화)

시판되는 기성 제품, 관리형 서비스와 도구들을 사용해 데이터 엔지니어링 수명 주기를 관리. 차별화되지 않은 과중한 작업을 피하고 단순하게 유지.

B형 데이터 엔지니어 (구축)

기업의 핵심 역량과 경쟁 우위를 확장하고 활용할 데이터 도구와 시스템을 구축. 맞춤형 데이터 도구 개발에 집중.

주요 기술 스택

핵심 언어

SQL (가장 중요), Python, Java, Scala, Bash

플랫폼 및 도구

Apache Spark, Hadoop, Kafka, Airflow, 클라우드 서비스 (AWS, GCP, Azure)

데이터베이스

관계형 DB, NoSQL, 데이터 웨어하우스, 데이터 레이크

조직 내 역할과 협업

데이터 엔지니어는 데이터 생산자(소프트웨어 엔지니어, 데이터 아키텍트, DevOps 엔지니어)와 데이터 소비자(데이터 분석가, 데이터 과학자, ML 엔지니어) 사이에서 허브 역할을 수행합니다.

업스트림 협업
  • • 데이터 아키텍트: 전체 데이터 전략 수립
  • • 소프트웨어 엔지니어: 내부 데이터 생성
  • • DevOps/SRE: 운영 모니터링
다운스트림 지원
  • • 데이터 과학자: ML 모델 개발 지원
  • • 데이터 분석가: BI 및 리포팅 지원
  • • ML 엔지니어: 모델 운영 인프라 제공

느낀점

저자는 최신 기술과 사례들의 장단점을 이해하는 데 도움이 되는 분야 전문가를 찾아보는 것을 권장합니다. 또한, 다양한 최신 서적, 블로그 게시물, 논문을 광범위하게 조사하고, 데이터 엔지니어링 관련 밋업에 참여하여 다양한 관점을 듣고, 질문하며, 자신의 전문 지식을 공유하는 것이 유익하다고 말합니다.

데이터 엔지니어로서 주니어로써 저자의 권유에 따라 이러한 다양한 활동에 참여하고 있으며, 이는 스킬업 큰 도움이 되고 있습니다. 책을 읽으며 많은 부분에 공감하고 경험과 지식을 풍부하게 하는 데에 많은 도움을 받았습니다.

이 책은 우수한 아키텍처 설계, 데이터 엔지니어링의 수명 주기 단계, 그리고 보안 관행에 대해 깊이 있게 탐구합니다. 저자는 데이터 엔지니어링의 연속성과 그 뒤에 숨겨진 요소들에 중점을 두고, 관련된 주제들을 상세히 다루어 많은 통찰력을 제공합니다.

이 책의 내용을 한 번만 읽기에는 아쉬움이 남아, 내용을 꼼꼼하게 정리하며 정독했습니다. 데이터 엔지니어링에 관한 이 책은 제게 기본서가 되어, 앞으로도 여러 번 읽을 계획입니다.