새발블로그

[견고한 데이터 엔지니어링] CH1. 데이터 엔지니어링 상세 본문

Data Engineering/BOOK

[견고한 데이터 엔지니어링] CH1. 데이터 엔지니어링 상세

EUG 2025. 12. 27. 17:04

데이터 엔지니어링이란 무엇인가

데이터 엔지니어링은 데이터를 ‘쓰게 만드는 일’이다.

원천 시스템에서 생성된 데이터를 가져와 저장하고, 데이터 과학자·분석가·머신러닝 엔지니어가 바로 활용할 수 있는 상태로 만드는 역할을 한다. 단순히 데이터를 모으는 것이 아니라,

  • 원시 데이터를 수집하고
  • 분석·머신러닝 같은 다운스트림 사용 사례를 지원하며
  • 고품질·일관된 정보를 지속적으로 제공하는
  • 시스템과 프로세스를 설계·구현·운영한다.

즉, 데이터 엔지니어는 데이터 수명 주기 전체를 책임지는 엔지니어다.

데이터 엔지니어링의 핵심 역할

데이터 엔지니어링은 다음 영역이 교차하는 지점에 있다.

  • 보안 (Security)
  • 데이터 관리 (Data Management)
  • 데이터 운영 (DataOps)
  • 데이터 아키텍처
  • 오케스트레이션
  • 소프트웨어 엔지니어링

데이터 엔지니어는 “원천 시스템 → 데이터 수집 → 저장 → 처리 → 분석/ML 제공” 까지 이어지는 엔드 투 엔드 수명 주기를 관리한다.

(https://books.google.co.kr/books?id=cOvLEAAAQBAJ&pg=PT62&hl=ko&source=gbs_selected_pages&cad=1#v=onepage&q&f=false)

데이터 엔지니어링은 왜 ‘업스트림’인가?

책에서는 데이터 엔지니어링을 데이터 과학(Data Science)의 업스트림(Upstream) 에 위치한다고 설명한다.

  • 업스트림: 데이터 생성·수집·정제·저장
  • 다운스트림: 분석, 시각화, 머신러닝, 의사결정

현실에서는 전체 작업 시간의 70~80%가 데이터 수집·정리·처리에 소모된다.

→ 이 부분을 자동화하고 안정화하지 않으면 데이터 과학자는 분석보다 준비 작업에 시간을 낭비하게 된다.

그래서 데이터 엔지니어링은 “데이터 과학이 잘 되게 만드는 전제 조건” 이다.

맵리듀스의 등장과 코드 우선 엔지니어링

초기 빅데이터 시대에는 맵리듀스(MapReduce) 가 핵심이었다.

  • 대규모 데이터를 분산 처리하기 위한 프로그래밍 모델
  • 개발자가 직접 저수준 코드로 데이터 처리 로직 구현
  • 강력하지만 생산성과 유지보수성이 낮음

→ 이 시기를 “코드 우선 데이터 엔지니어링” 이라 볼 수 있다.

모던 데이터 스택이란?

오늘날의 데이터 엔지니어링은 모던 데이터 스택(Modern Data Stack) 기반으로 발전했다.

모던 데이터 스택이란,

  • 상용 오픈소스
  • 관리형 클라우드 서비스
  • 서드파티 데이터 도구 들의 조합..

특징은 다음과 같다.

  • 직접 구현보다 기성 제품 활용
  • 확장성과 안정성 중시
  • 추상화 수준이 높음

→ 데이터 엔지니어의 역할도 “코드 작성자”에서 “데이터 수명 주기 설계자”로 변화했다.

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

책에서 묘사하는 현대적 데이터 엔지니어는 다음과 같다.

  • 여전히 저수준 데이터 프로그래밍 역량은 유지
  • 필요할 때만 직접 코드 작성
  • 주요 관심사는 상위 레벨 영역

즉,

  • 데이터 관리
  • 데이터 옵스
  • 데이터 아키텍처
  • 오케스트레이션
  • 데이터 거버넌스

더 많은 시간을 투자한다.

특히 대규모 데이터를 보유한 조직일수록 통제, 품질, 발견 용이성이 중요해진다.

데이터 성숙도란?

데이터 성숙도(Data Maturity)는 조직이 데이터를 얼마나 잘 활용하고 있는지를 나타내는 수준이다.

책에서는 데이터 관리 성숙도 모델(DMM)을 바탕으로 3단계로 설명한다.

1 데이터로 시작하기

  • 목표가 모호하고 느슨함
  • 데이터 아키텍처를 처음 설계
  • 데이터 확인·검수에 집중
  • 보고서 생성을 위한 기초 데이터 기반 구축

-> “일단 데이터부터 모아보자” 단계

2 데이터로 확장하기

  • 공식적인 데이터 요청 프로세스 존재
  • 확장 가능하고 견고한 아키텍처
  • DevOps / DataOps 관행 도입
  • 자동화와 운영 안정성 강화

-> “데이터가 조직 전반으로 확산되는 단계”

3 데이터로 선도하기

  • 기업 자체가 데이터 중심
  • 배포·사용을 위한 자동화 체계 완성
  • 데이터 거버넌스와 품질 관리 내재화
  • 데이터 카탈로그, 계보, 메타데이터 관리

-> “데이터가 전략이 되는 단계”

데이터 옵스(DataOps)란?

DataOps는 데이터 파이프라인의 개발·배포·운영을 자동화하고 표준화하는 문화와 방법론이다.

  • 데이터 버전 관리
  • 테스트 자동화
  • 파이프라인 모니터링
  • 장애 대응 속도 향상

-> DevOps의 개념을 데이터 영역에 적용한 것이라 이해하면 된다.

데이터 레이크란?

데이터 레이크(Data Lake)는

  • 대규모 원시 데이터를
  • 가공하지 않은 상태로
  • 다양한 형식 그대로 저장하는 리포지터리

특징:

  • 스키마 온 리드(Schema-on-Read)
  • 분석·ML 등 다양한 사용 사례 대응

A형 vs B형 데이터 엔지니어

책에서는 데이터 엔지니어를 두 유형으로 구분한다.

A형 데이터 엔지니어 (Analysis)

  • 추상화와 단순화 중시
  • 관리형 서비스·기성 도구 적극 활용
  • 빠른 데이터 활용 환경 구축에 강점
  • 데이터 성숙도 전 단계에서 공통적으로 필요

-> 기반을 빠르게 다지는 역할

B형 데이터 엔지니어 (Build)

  • 직접 시스템을 구축
  • 핵심 기술을 사내 경쟁력으로 만듦
  • 주로 데이터 성숙도 2~3단계 조직에 존재
  • 필요 기술은 내부 학습 또는 인재 채용

-> 확장성과 차별화를 만드는 역할

보통 A형이 기반을 만들고 → B형이 고도화한다.

데이터 엔지니어가 협업하는 대상

데이터 엔지니어는 데이터 생산자와 소비자를 잇는 허브다.

업스트림 이해관계자 (데이터 생산자)

  • 데이터 아키텍트 → 데이터 청사진 설계, 시스템 매핑
  • 소프트웨어 엔지니어 → 애플리케이션 데이터·로그 생성
  • DevOps / SRE → 모니터링·운영 데이터 생성

다운스트림 이해관계자 (데이터 소비자)

  • 데이터 과학자(데이터 준비 작업은 자동화되어야 함) → 예측·추천 모델 구축
  • 데이터 분석가 → 과거·현재 데이터 분석, 쿼리 중심
  • 머신러닝 엔지니어 / AI 연구원→ 모델 운영, 고급 프레임워크 활용

경영진과 데이터

데이터가 중요해지며 다양한 C레벨 역할이 등장한다.

  • CEO: 데이터 기반 비전 제시
  • CIO: IT·비즈니스 프로세스 총괄
  • CTO: 외부 대면 기술·아키텍처 전략
  • CDO: 데이터 관리·거버넌스·개인정보
  • CAO: 분석 중심 의사결정
  • CAO-2: 알고리즘·ML 연구 중심