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

류지현·2024년 8월 21일

1.1 데이터 엔지니어링이란?

데이터 엔지니어링에 대해 전문가들은 어떤 정의를 내리고 있을까?

💓 ...데이터 엔지니어는 조직의 데이터 인프라를 구축하고 운영해 데이터 분석가와 데이터 과학자가 추가 분석을 수행할 수 있도록 준비한다…
-알텍스소프트의 ‘데이터 엔지니어링의 개념, 프로세스 및 도구’

데이터 엔지니어링의 첫 번째 유형은 SQL 중심이다…
데이터 엔지니어링의 두 번째 유형은 빅데이터 중심이다…
-제시 앤더슨

1.1.1 데이터 엔지니어링 정의

수 많은 용어 정의가 있지만 우리 나름대로 앞으로 책을 읽어가며 사용할 용어를 채택해야됨! 아래와 같음.

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

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

핵심은

  • 데이터 생성
  • 데이터 저장
  • 데이터 수집
  • 데이터 변환
  • 데이터 서빙
    • 드러나지 않는 요소
      • 보안 / 데이터관리 / 데이터옵스 / 데이터 아키텍처 / 오케스트레이션 / 소프트웨어 엔지니어링

1.1.3 데이터 엔지니어의 진화

1980년~2000년 : 데이터 웨어하우징 → 웹

데이터웨어하우스 : 1989년, 빌 인먼

✅ 데이터 웨어하우스는 POS 트랜잭션, 마케팅 자동화, 고객 관계 관리 시스템 등의 여러 소스에서 가져온 구조화된 데이터와 반구조화된 데이터를 분석하고 보고하는 데 사용되는 엔터프라이즈 시스템입니다. 데이터 웨어하우스는 임시 분석과 커스텀 보고서 생성에 적합합니다. 데이터 웨어하우스는 현재 데이터와 과거 데이터를 모두 한곳에 저장할 수 있으며, 시간 흐름에 따른 장기간의 데이터 동향을 확인할 수 있도록 설계되었으므로 비즈니스 인텔리전스의 주요 구성요소입니다.
출처: https://cloud.google.com/learn/what-is-a-data-warehouse?hl=ko

인터넷 : AOL, 야후, 아마존 등 1990년

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

  • 차세대 시스템 : 비용 효율적, 확장성, 가용성, 안정성
  • 빅데이터 시대의 시작 (모놀리식 서비스 분산, 분리)
  • 구글 논문 → 아파치 하둡
  • 아마존 EC2, S3, NoSQL → AWS → 구글 클라우드, 마이크로소프트 애저, 디지털 오션 등 퍼블릭 클라우드의 잇따른 등장

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

  • 실시간 데이터 혁명
  • 이벤트 스트리밍
  • 빅데이터 엔지니어 단순화!!!!와 추상화!!!!!(복잡하고 어려운 기술 사용에 집중하지 않아도되게됨)

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

  • 분산, 모듈화, 관리, 고도의 추상화
  • 모던 데이터 스택 : 조립된 상용 오픈 소스/서드파티제품들의 모음
  • 데이터 수명 주기 엔지니어로 데이터 엔지니어를 더 정확하게 묘사할 수 있게 됨
  • 저수준의 프레임워크 세부 사항에 방해 받지 않음!!!
  • 데이터 관리와 통제에 더 집중
  • 탈중앙화 민첩성
  • 현재를 데이터 수명 주기 관리의 황금기로 봄!

1.1.4 데이터 엔지니어링과 데이터 과학


  • 하위 세 부분에 소비하는 시간이 거의 70-80%
  • 데이터 엔지니어가 계층 구조 최하단에 있는 작업 집중할 때 DS도 성공할 수 있는 견고한 기반 구축할 수 있음

1.2 데이터 엔지니어링 기술과 활동

기술 역량 中 드러나지 않는 요소 : 비용, 민첩성, 확장성, 단순성, 재사용성, 상호 운용성

  • 소프트웨어 엔지니어링, 네트워킹, 분산 컴퓨팅, 스토리지 / 기타 저수준의 세부사항 역시 정교하게 이해해야함

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

데이터 성숙도 : 조직 전체에 걸쳐 더 높은 데이터 활용률, 기능, 통합을 향해 나아가는 과정. BUT 매출에 의해 결정되는 단순한 것은 아님… 중요한 것은 데이터가 경쟁 우위로 활용되는 방식!

  1. 데이터로 시작하기
    1. 데이터를 이제 막 시작하는 기업! 회사에는 애매모호하고 느슨하게 정의된 목표가 있거나 없을 수도..
  2. 데이터로 확장하기
    1. 공식적인 데이터 요청 관행을 가짐 데이터 관행을 수립하고 확장성 있고 견고한 데이터 아키텍처 구축을 해야함
  3. 데이터로 선도하기
    1. 이 단계에서 기업은 데이터 중심. DE가 작성한 자동화된 파이프라인과 시스템을 통해 사내 직원은 셀프 서비스 분석과 ML수행 가능

1.2.2 데이터 엔지니어의 배경과 기술

  • 소프트웨어 엔지니어, ETL 개발, 데이터베이스 관리, 데이터 과학, 데이터 분석과 같은 인접한 분야에서 전환하기가 가장 쉽다
  • 데이터 엔지니어는 정의상 데이터와 기술을 모두 이해해야 한다.
  • 데이터 엔지니어는 데이터 소비자(데이터 분석가 및 데이터 과학자)의 요구 사항과 조직 전체에 걸친 데이터의 광범위한 의미를 이해해야 한다.
  • 데이터 엔지니어링은 전체적인 (종합적인) 실무이며 최고의 데이터 엔지니어는 비즈나스 및 기술적 관점에서 그들의 책임을 판단한다.
  • 한마디로 만능…

1.2.3 비지니스 책임

  • 비기술자 및 기술자와 커뮤니케이션
  • 비지니스 요건과 제품 요건 살펴보고 수집하는 방법 이해
  • 애자일, 데브옵스, 데이터 옵스의 문화적기반 이해
  • 비용 관리
  • 지속적 학습

1.2.4 기술 책임

수명주기 드러나는 요소 + 드러나지 않는 요소

코딩도 할 줄 알아야됨

상세한 아키텍처 잘 들여다볼 수 있어야됨

SQL, 파이썬, JVM언어, 배시 등

✅ 새로운 기술이 등장했을 때 그 흐름에 동참하지 못하면 도태될 것이다. - 스튜어트 브랜던 ㄷ ㄷ ㄷ ㄷ

1.2.5 A에서 B로 이어지는 데이터 엔지니어링 역할의 연속성

A(analysis)형 데이터 과학자 : 분석 , 통찰력, 추상화

B(build)형 데이터 과학자 : 강력한 프로그래밍 기술, 시스템 구축

1.3 조직 내 데이터 엔지니어

1.3.1 내부 vs 외부 대면 데이터 엔지니어

외부 대면 데이터 엔지니어 : sns, iot, 전자 상거래 등 외부용 앱 사용자와 연계/피드백 루프가 있음

내부 대면 데이터 엔지니어 : BI 대시보드, 보고서, 비지니스 프로세스, 데이터 과학, ml 모델용 데이터 파이프라인과 데이터 웨어 하우스 생성 / 유지보수 등

1.3.2 데이터 엔지니어와 기타 기술 역할

  • 데이터 생산자와 데이터 소비자 사이에서의 허브 역할
  • 데브옵스 엔지니어와 같이 운영 역할 하는 사람들과도 소통

업스트림 이해관계자

데이터 아키텍트, 소프트웨어 엔지니어, 데브옵스 엔지니어와 사이트 신뢰성 엔지니어

다운스트림 데이터 소비자

데이터 과학자, 데이터 분석가, 머신러닝 엔지니어

1.3.3 데이터 엔지니어와 비지니스 리더십

  • 비기술적 역할도 수행
  • 이니셔티브 주도 : CEO, CIO, CTO, CDO, CAO, CAO-2
  • 데이터 엔지니어 및 PM, 제품 관리자
  • 데이터 엔지니어와 기타 관리 역할 : 다양한 수신 요청 처리, 특정 관리자, 프로젝트 OR 제품에 할당된 자원으로 작업

0개의 댓글