아래 내용은 견고한 데이터 엔지니어링(조 라이스, 맷 하우슬리 지음)의 1.1장의 내용을 정리한 것이다.
1.1 데이터 엔지니어링이란?
데이터 엔지니어링은 2010년대 데이터사이언스의 부상과 함께 급격히 주목받기 시작했다.
데이터엔지니어링의 정의는 매우 여러가지가 있어서, ‘데이터 엔지니어링이란?’ 에 대한 답변도 매우 다양하다.
1.1.1 데이터 엔지니어링 정의
이 책에서는 데이터 엔지니어링과 데이터 엔지니어를 아래와 같이 정의 한다.
데이터 엔지니어링
데이터 엔지니어링은 Raw데이터를 가져와 분석 및 머신러닝과 같은 다운스트림 사용 사례를 지원하는, 고품질의 일관된 정보를 생성하는 시스템과 프로세스의 개발, 구현 및 유지 관리이다. 데이터 엔지니어링은 보안, 데이터관리, 데이터 운영, 데이터 아키텍처, 오케스트레이션, 소프트웨어 엔지니어링의 교차점이다.
데이터 엔지니어
데이터 엔지니어는 원천 시스템에서 데이터를 가져오는 것부터 시작해 분석 또는 머신러닝과 같은 사용 사례에 데이터를 제공하는 것으로 끝나는 데이터 엔지니어링 수명 주기를 관리한다.
1.1.2 데이터 엔진니어링 수명 주기
데이터 엔지니어링은 데이터 자체와 데이터가 제공해야하는 최종 목표에 따라 아래 그림과 같은 수명주기를 가진다. 여기에는 전체 수명주기에 걸쳐 중요한 아이디어인 드러나지 않는 요소를 포함한다.

1.1.3 데이터엔지니어링 진화
데이터 엔지니어링은 어떻게 탄생했고, 어떻게 발전했나?
- 1980~2000: 데이터 웨어하우징과 웹
- 1980년대 이후 등장한 데이터 웨어하우스는 대량의 데이터를 처리하고자, 대규모 병렬처리(MPP) 데이터베이스로 확장성 있는 분석의 첫 시대를 열었다.
- 1990년대 중반에 인터넷이 주를 이루면서, 야휴, 아마존과 같은 웹 우선 기업이 탄생했다.
- 당시 대부분의 인프라는 비용부담이 매우 컸다.
- 2000년대 초 : 현대 데이터 엔지니어링의 탄생
- 1990년대 전통적인 시스템에 한계에 부딪히면서, 데이터 증가를 처리 할 고효율, 높은 확장성, 고가용성의 안정적인 시스템이 필요했다.
- 범용 하드웨어가 저렴해 지면서 모놀리식 서비스에서 벗어나 대규모 컴퓨팅 클러스터에서의 분산 연산과 저장을 실현했고 이와 함께 빅데이터 시대가 시작됐다.
- 2004년 구글의 맵리듀스 논문을 발표했고, 2006년 야후에서 하둡을 개발하여 오픈소스화 했다.
- 아마존은 데이터 빌딩블록을 구축해 컴퓨팅/스토리지 자원을 대여해서 사용하는 AWS를 출시 했다.
- 2000년대, 2010년대: 빅데이터 엔지니어링
- 빅데이터의 유행
- 하둡 생태계 오픈소스의 빠른 발전으로 모든 기업에서 최첨단 데이터 도구에 접근 할 수 있었다.
- 배치 컴퓨팅에서 스트리밍으로의 전환이 일어났다.
- 데이터 도구의 폭발적 증가로 빅데이터 엔지니어가 탄생했고, 핵심 기술 개발이 아닌 데이터 전달로 초점이 옮겨 졌다.
- 빅데이터의 유행으로 작은 데이터 문제도 하둡 클러스터와 같은 빅데이터 도구를 사용하는 오버스펙이 자주 발행했다.
- 빅데이터의 변화
- 복잡한 빅데이터 도구를 유지관리하는데 많은 비용이 들면서, 추상화하고 단순화하게 됐다.
- 이제는 빅데이터라는 용어를 잘 사용하지 않고, 데이터의 크기와 상관없이 데이터 문제를 해결한다.
- 빅데이터의 유행
- 2020년대: 데이터 수명주기
- 데이터 도구가 고도로 단순화 되고 추상화 되면서, 데이터 엔지니어링은 더이상 저수준의 세부 정보에 구애받지 않고 점차 다양한 기술을 연결하고 상호 운용하는 분야가 되고 있다.
- 데이터의 사이즈보다 데이터 관리와 통제, 품질 향상, 사용/발견의 용이성등이 더 중요해졌다.
- 데이터 관리와 같은 기업화 사항들은 더이상 대기업만이 아닌 소규모 기업에서도 초점을 두며, 탈중앙화와 민첩성에 중점을 두고 있다.
1.1.4 데이터 엔지니어링과 데이터 과학
책에서는 데이터 엔지니어링은 데이터 사이언스는 서로를 보완하긴 하지만 분명히 별개의 개념이라고 가정한다.

- 데이터 엔지니어링은 데이터 과학의 업스트림에 위치한다.
- 데이터 엔지니어가 데이터 기반을 구축하는 작업을 담당 함으로써, 데이터 과학자는 데이터 기반에 신경쓰지 않고 분석, 실험, ML에 집중한다.
'Data Engineering' 카테고리의 다른 글
DuckDB를 사용해서 Iceberg 테이블에 쿼리 실행하기 (0) | 2024.09.15 |
---|---|
견고한 데이터 엔지니어링 - 데이터 수집 (0) | 2024.08.18 |
견고한 데이터 엔지니어링 - 원천 시스템에서의 데이터 생성 (0) | 2024.05.26 |
견고한 데이터 엔지니어링 - 우수한 데이터 아키텍처의 원칙 (0) | 2024.05.12 |
Airflow Dag 작성 Best practice (0) | 2023.11.05 |