본문 바로가기
IT리뷰

견고한 데이터 엔지니어링-리뷰 1탄 (2023.06.26)

by jb213 2023. 8. 27.

좋은 책이라고 소문만 듣다가 드디어 읽게 되었다.

아래 걸어둔 저자의 글 또한 공감할 부분이 많다.

앞에 베타리더, 추천사, 책에 대한 안내 등이 꽤 길어 공을 많이 들였겠다 생각이 들었다.

 

이 책은 '데이터 엔지니어링 수명주기'에 대해 주로 다룬다.

클라우드에 대해서도 짚고 넘어가는데 온프렘으로 회귀하는 경우도 있다. 

대부분 보안 문제로 인해 온프렘, private cloud를 고려하게 되는데 나 또한 public cloud가 거시적으로는 이기지 않을까 생각한다. 지금이야 문제가 생기겠지만 최근 주목받는 양자컴퓨팅 같은 게 보안에서 혁신을 가져온다면 또 다른 해결책을 주지 않을까?

현업에서 논의할 만한 부분도 굉장히 많기 때문에 DE라면 내용을 자세히 훑는 걸 추천한다.

 

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

생성 -> 저장(수집, 변환, 서빙) -> 분석, 머신러닝, 역ETL

드러나지 않는 요소 : 보안, 데이터 관리, 데이터옵스, 데이터 아키텍처, 오케스트레이션, 소프트웨어 엔지니어링

 

2. 데이터 엔지니어의 진화

1980-2000 : 데이터 웨어하우징에서 웹으로

-비즈니스 데이터 웨어하우스(BDW)

-1989년 Bill Inmon이 '데이터 웨어하우스'라는 용어 공식 사용

-BI 툴과 데이터 모델링 기법 개발됨

-MPP(대규모병렬처리) 데이터베이스로 확장성 있는 분석의 첫 시대를 엶

-BI엔지니어, ETL 개발자, 데이터 웨어하우스 엔지니어 등 등장

 

1990년대 중반 : 인터넷 주류(AOL, 야후, 아마존)

- 닷컴 열풍-> 웹 애플리케이션, 백엔드(서버, 데이터베이스, 스토리지) 엄청난 발전

 

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

-닷컴 열풍 무너지고 생존자만(야후, 구글, 아마존)

-모놀리식 관계형 데이터베이스가 한계에 다다르며 시스템 불안정

-데이터 증가를 처리할 최신화된 접근 방식 필요

-차세대 시스템은 비용 효율적, 확장성과 가용성, 안정적 필요

-서버, RAM, 디스크 등 범용 하드웨어 가격 저렴

-서비스 분산하고 분리하기 시작 -> 빅데이터 시대 시작

-2003년 구글 : 파일시스템(file system)에 대한 논문 발표

-2004년 : 맵리듀스 논문 발표

-2006년 : 야후 아파치 하둡 개발 후 오픈소스화

-기업 데이터가 테라바이트, 페타바이트 규모로 증가하며 빅데이터 엔지니어 시대 개막

-아마존 : EC2(탄력적 컴퓨팅 환경), S3(무한 확장 가능한 스토리지 시스템), DynamoDB(확장성이 뛰어난 NoSQL DB)

 

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

-하둡 생태계의 오픈소스 도구 빠르게 발전

-배치 컴퓨팅, 이벤트 스트리밍 등 실시간 빅데이터 분석이 가능해짐

-하둡, 피그, 하이브, 드레멜, HBase, 스톰, 카산드라, 스파크, 프레스토

-기존 엔터프라이즈 지향적이고 GUI 기반인 데이터 도구 -> 맵리듀스 출현으로 코드 우선 엔지니어링 유행

-2000년대 후반과 2010년대에 데이터 도구 폭발적으로 증가하며 빅데이터 엔지니어 탄생

-'Big Data Hype'의 열풍 : 몇 기가를 처리할 때도 하둡 사용?

-누가 가장 큰 데이터를 보유하는가?

 

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

-'빅데이터' -> '데이터' 엔지니어링

-하둡, 스파크, 인포매티카 등 모놀리식 프레임워크의 저수준 세부 정보를 사용하는 경향-> 변경

-분산, 모듈화, 관리, 고도로 추상화된 도구로 이동

-데이터를 어떻게 활용할 것인가?

-CCPA, GDPR 등 파이프라인 설계시 개인정보보호, 익명화, 데이터 가비지 수집 및 규정 준수에 관심 가져야 함

-견고한 데이터 기반 필요(수집, 이동/저장, 탐색/변환)

 

3. 데이터 성숙도

3-1. 데이터로 시작하기(임시 데이터 요청)

: 확실한 데이터 기반이 없다면 ML은 성급함, 적절한 데이터 아키텍처를 정의해야 함, 조기 성과 vs 기술 부채 고민해야 함.

3-2. 데이터로 확장하기(공식 데이터 요청 관행)

: 확장성 있는 데이터 아키텍처, 데브옵스, ML 지원 시스템 구축, 주요 병목은 배포와 관리에서 나타나므로 쉬운 솔루션 선택 해야 함

3-3. 데이터로 선도하기

: 셀프서비스 분석과 ML수행 가능, 사용자 정의 도구와 시스템 구축에 주력, 데이터 카탈로그, 데이터 계보, 메타데이터 관리 등 데이터를 조직 전체에 노출하고 전파하는 도구 배포 필요

 

성공적인 데이터 엔지니어는 항상 전체적인 큰 그림을 이해하고 비즈니스 가치를 극대화하는 방법을 파악하고자 한다.(60p)

[샛길로 빠져 드는 생각]

데이터와 관련된 트렌드는 금방 바뀐다. 

지금은 플랫폼 춘추전국인 것 같고 그 다음은 가상화/디지털 트윈으로 보고 있다.

그런 의미에서 외국의 P사를 유심히 보는 중이다.

괜히 2020년도부터 테넷, 양자역학, 초전도체 등이 나오는 게 아니라고 본다. 신호에 가깝달까.

태평양 건너에 있는 미국에서 IT혁명을 통해 경쟁력을 극한으로 끌어올렸듯이 다가올 시대도 준비 이빠이 하는 느낌이다.

자율주행, UAM 아무튼 이전까지의 질서가 V2로 업그레이드 될 준비는 끝난 것 같다. 

보통 한국이 서방국가보다 2년 정도 늦는 걸 감안하면,, 아직 시간은 좀 있다. 다만 정보 업데이트에 허덕허덕일뿐...

영생만 해결하면 인류는 완전한 신이 될 수 있는 걸까? 

신이 된다는 건 답이 꼭 하나가 아니라는 것. 동시에, 여러 개의 이야기가 가능할 것이다. 

개인적으로 마블 별로 좋아하지 않지만 이미 인간의 무의식 속에 대중적으로 박히는 중일지도 모른다.

뭐 그렇게 된다면 어떤 결론이 나오든 적응하면 그만일 테지.

 

다시 돌아가서...

 

나 또한 최신식 기술만 고집하는 건 반대다. 레거시라는 것, 기존 회사가 갖고있는 고유의 성질이 있는데 그걸 깡그리 무시하고 이 기술이 좋아서 해라는 말도 안된다. 결정적으로 실무를 해보면 알겠지만 '비용'. 여기서 막히는 게 대부분이라..

 

4. 데이터 엔지니어의 언어

-SQL : DB, DL의 가장 일반적인 인터페이스. 사실상 데이터 공용어.

-파이썬 : pandas, numpy, airflow, sci-kit learn, tensorflow, pytorch, pyspark 등 사용 가능. 기본 컴포넌트 간 접착제와 같은 역할. 프레임워크와 인터페이스를 위한 일류 API언어

-JVM언어 : 스파크, 하이브, 드루이드 등 아파치 오픈소스 프로젝트에 널리 쓰임. 자바, 스칼라 등의 이해가 있으면 좋음

-bash : 리눅스 운영체제용 명령행 인터페이스. CLI 사용에 능숙하면 생산성이 향상됨. 

 

 

 

https://m.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS1025902134&cate_cd=

 

현장에서의 기록, ‘데이터 엔지니어’에게 아찔했던 순간

오라일리의 <Fundamentals of Data Engineering>이라는 책을 번역하는 과정에서, 현장에서 내가 겪었던 아찔했던 기억들을 새삼 돌이켜볼 수 있었다. 당시에는 그냥 넘어갔지만, 이제 와서 생각해보면 움

m.hanbit.co.kr

 

 

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

댓글