-
데이터 엔지니어란?Data 2021. 1. 2. 11:12반응형
데이터 환경이 고도화되면서 데이터 엔지니어(Data Engineer)의 역할도 넓어지고 있습니다. 빠르게 발달하는 역할에 대해 적절한 정의와 함께 구체적으로 하는 일이 무엇인지 기술한 글을 찾기 어려웠습니다. 또는, 존재하더라도 제가 경험한 실무와는 다른 ETL이나, 데이터 정제 등 국소적인 부분에 한정된 관점의 글만 존재하였습니다.
그렇기에 이 글에서는 개발자가 아닌 분들도 데이터 엔지니어가 어떤 직무인지 아실 수 있도록, 제 경험에 기반해 데이터 엔지니어는 무엇이고 무엇이 아닌지와 관련해 전달드리려 합니다.
이 글의 범위를 넘는 부분인 다음과 같은 내용들은 다른 글에 자세히 적어두었습니다:
- '데이터 엔지니어'라는 직무는 어떻게 탄생되었나: 요구사항과 도구들
- 기업 내의 데이터 환경은 어떤 모습인가
- 데이터 엔지니어의 업무범위(하는 일)
- 데이터 엔지니어 역량 (feat. 구인구직사이트 자격요건)
데이터 엔지니어는 무엇이고 무엇이 아닌가
데이터 엔지니어는 '데이터 상품'을 만드는 소프트웨어 엔지니어입니다(아래 이미지를 보면, 데이터 엔지니어는 대다수 소프트웨어 엔지니어가 구성하고 있습니다, 최근에는 점차 그 양상이 많이 바뀌고 있다고 느낍니다). 기존의 소프트웨어 엔지니어라는 직무에서 데이터 엔지니어를 다르게 하는 부분은 '데이터 상품'이라는 부분인데요. 그렇기에 데이터 상품이 무엇인지 알아보면, 데이터 엔지니어가 무엇이고 어떤 일을 하는지 떠올릴 수 있습니다.
다양한 직접과 간접 경험을 정리해보면 다음과 같은 데이터 상품군이 존재합니다:
- 데이터와 메타데이터 (Data & Metadata): 좋은 품질의 데이터와 사용자 편의성을 높이는 메타데이터는 그 자체로 상품입니다. 오픈소스 형태로 제공되는 데이터셋(dolthub), 상업적으로 판매되는 데이터(Acxiom, Nielson 등)와 메타데이터 뒤에는 사용자가 잘 쓸 수 있도록 수많은 데이터 가공과 처리, 정제가 필요합니다. 한 기업의 내부에서도 데이터 엔지니어가 만든 데이터와 메타데이터는 다양한 '내부고객(데이터 분석가, 데이터 사이언티스트 등)'가 사용하게 됩니다.
- 데이터 플랫폼 (Data Platform): 데이터 시스템이 온프레미스(On-Premis), 클라우드(Cloud), Hybrid에 기반하는지에 따라 그 모습은 다르지만, 데이터 엔지니어는 (정도의 차이는 있을지 몰라도) 데이터 플랫폼을 제공합니다. 온프레미스 환경이라면 클라우드와 유사한 형태의 서비스(분석가가 사용할 분석도구, 데이터 구조가 어떤지 메타데이터를 살펴보고 검색하기 위한 Web UI 등)를 제공하거나, 클라우드 환경이라면 클라우드 환경을 관리하거나 구현되지 않은 요구사항을 구현하게 됩니다.
- 데이터 서비스 (Data Service): 데이터를 기반으로 만든 서비스(ClickStream 데이터 실시간 분석을 통한 이상감지 등)나 ML 모델(Google Vision AI 등)은 다양한 형태의 서비스로 제공될 수 있습니다. 기업 내의 다른 팀이 사용할 수 있도록 API나 Web View 등을 운영한다던가, 외부고객에게도 판매될 수 있습니다.
데이터 엔지니어는 위의 데이터 상품에서 소프트웨어 엔지니어 역할을 합니다. 그렇기에 아래와 같은 경우(이 글에서는) 데이터 엔지니어에서 제외합니다:
- 인프라 엔지니어: '데이터 상품'의 운영이 아닌 사용되는 서버, OS, 네트워크 등을 담당하는 경우
- 데이터 분석가 또는 데이터 사이언티스트(혹은 BI 담당): 데이터 상품 개발 및 운영 시에 데이터 분석, 대쉬보드 개발 및 구성, 모델 또는 알고리즘 훈련 및 개선 등을 담당하는 경우
그렇기에 데이터 엔지니어는 내부고객(데이터 분석가, 데이터 사이언티스트 또는 다양한 데이터 소비자)과 외부고객(데이터 소비자)에게 위와 같은 상품을 제공한다는 사실을 알 수 있습니다.
728x90
그렇다면 데이터 엔지니어는 어떤 일을 하고 어떤 역량이 필요할까요?
환경에 따라 다를 수 있으나, 기본적으로 데이터와 메타데이터 생성과 관리를 위한 데이터 파이프라인 관리, 데이터 플랫폼 개발 및 운영 등의 업무를 담당합니다. 그리고 환경에 따라 프론트 또는 백엔드 엔지니어와 같이 데이터 서비스를 개발하거나, 데이터 품질 검수 도구를 만드는 등의 폭넓은 형태로 업무를 진행하는 경우도 있습니다. (자세한 사항은 이 글을 참고)
또한, 필요한 역량으로는 기본적으로 소프트웨어 엔지니어의 소양(컴퓨터 구조, 운영체제, 네트워크 등)에 더해 데이터 시스템에 대한 이해(분산환경의 Hadoop, Spark, Yarn 등), 데이터 서비스 개발을 위한 웹 서비스 개발 능력, 고객에 대한 이해(데이터 분석가가 어떻게 데이터를 사용해 분석리포트, 대쉬보드를 생성하는지 또는 데이터 사이언티스트가 어떻게 추천 모델을 만들고 개선하는지 등)가 필요합니다.
반응형'Data' 카테고리의 다른 글
데이터 엔지니어 역량 (feat. 구인구직사이트 자격요건) (0) 2021.01.06 데이터 엔지니어의 업무범위(하는 일) (0) 2021.01.06 기업 내의 데이터 환경은 어떤 모습인가: 데이터 생성과 소비 (0) 2021.01.03 '데이터 엔지니어'라는 직무는 어떻게 탄생되었나: 요구사항과 도구들 (0) 2021.01.03 (FASTCAMPUS) 패스트캠퍼스 온라인 'THE RED: 데이터사이언티스트 하용호' 후기 - 강의내용요약 #3 (0) 2020.12.24 'Cloudera Sessions Korea 2020'으로 보는 데이터 플랫폼의 변화 방향성 (0) 2020.12.23 (FASTCAMPUS) 패스트캠퍼스 온라인 'THE RED: 데이터사이언티스트 하용호' 후기 - 강의내용요약 #2 (0) 2020.12.21 데이터 엔지니어 공부를 위한 5권의 책 (2) 2020.12.19