그럼 먼저 데이터 엔지니어란 무엇이고 조직에서 어떤역할을 하는지에 대해 알아보자.
데이터 엔지니어(Data Engineer, DE)
데이터 엔지니어는 "데이터 영역을 전문으로 담당하는 엔지니어" 라고 정의 할 수 있다.
구체적인 역할은 산업별, 회사별로 데이터 엔지니어가 하는 업무과 기술이 다르지만, 공통적으로는
"내-외부 원천 데이터를 수집, 가공, 적재하여 데이터가 흐르는 파이프라인을 설계 및 구축하는 역할" 이라고 생각할 수 있다.
조금 더 쉽게 설명하면 "데이터를 활용하기 쉽게 환경을 만들어주는 역할" 이라고 생각하면 된다.
DataEngineer Roadmap - 2022
아래는 데이터 엔지니어 관련 로드맵 이미지이다.
데이터 엔지니어의 역할
데이터 엔지니어가 하는 업무중 가장 핵심은 데이터의 수집, 저장, 가공(=ETL) 업무이다.
이 업무를 하나로 합쳐서 부르면 데이터 파이프라인을 구축 및 관리하는 것이다.
Data 파이프라인 - ETL
수집할 데이터를 필터링해서 원하는 곳에 수집한 뒤,
수집된 데이터를 전처리한 후 저장에 필요한 형태로 가공한 뒤,
저장소에 원하는 형태로 저장하는 일련의 과정을 통틀어 데이터 파이프라인이라고 한다.
- E : Extract
- 데이터를 추출(수집)하는 과정
- 기본적인 데이터 형태(Excel, CSV, JSON) 등을 직접 받아 옴
- 또는, 웹(Web), 앱(Application)의 로그(log)를 추출
(*로그(log)란 온라인 상에서 발생하는 모든 상황(클릭시간, 접속정보, 접속한 콘텐츠 등)에 대한 기록)
- T : Transform
- 데이터를 분석하기 쉬운 데이터로 변환하는 과정
- Extract의 과정에서 다양한 형태(JSON, CSV 등)로 수집된 데이터들을 바로 저장하거나 분석하기에는 적합한 형태가 아닐 수 있기 때문에 row와 column의 형태로 변환해서 SQL, NoSQL 등으로 활용할 수 있도록 변환하는 과정
- L : Load
- 데이터를 저장 또는 불러오는 과정
- 변호나한 데이터를 데이터 레이크(Data Lake) 또는 웨어하우스(Warehouse)에 저장하는 과정
데이터 엔지니어의 역량
위에서 정리한 역할들을 수행하기 위해서 필요한 역량을 생각해보았다.
- 데이터 파이프라인에 필요한 기술(Airflow 등)
- 서버, 네트워크, CS 지식
- 클라우드 서비스(AWS, GCP, Azure 등) 경험
- 데이터 관리 능력(SQL)
- 프로그래밍 능력(Python, JAVA)
- 분산처리 시스템(Spark, Hadoop)
- + 시각화 기술(Tableau)
- + 소통 능력(협업 with Analyst, DS, SE)
실무, 자기계발을 통해서 위 같은 역량을 갖추고 발전시킨 사람은 좋은 데이터 엔지니어가 될 수 있다고 생각하며,
데이터를 활용하여 사업적인 가치를 만들어내는 것이 이후 데이터 엔지니어로서의 역량을 평가할 수 있는 중요한 척도가 될 수 있다고 생각한다.
데이터 엔지니어 모집 기술스택
현재 올라오는 모집공고를 통해 데이터 엔지니어의 기술과 Tool 트랜드를 확인할 수 있다고 생각하기때문에 관련 직군 포지션 모집에 대한 글을 찾아보았다.
- 쏘카 공고
- 카카오스타일 공고
- 네이버 클라우드 공고
- 카카오 데이터실 공고
- 라인 공고
위 공고들이 흔히 말하는 네카라쿠배 들의 데이터 엔지니어 관련 공고이다.
데이터 엔지니어의 역량으로 데이터파이프라인 구축 능력은 필수이고, Spark, Hadoop 같은 분산처리, AI 기술에 대한 역량도 기본, 우대 역량으로 보는것을 알 수 있다.
한번에 바로 데엔 직군으로 빌드업하기는 힘들 수 있다.
데분, SW엔지니어, 백엔드개발자 등으로 경력을 쌓으면서 데엔에 대한 공부를 꾸준히 하면 분명 좋은 기회가 올것이다.
다음 포스팅으로 지금 현업에서 사용중인 Airflow에 대한 설명을 다룰 예정이다.
'DB(DataBase) > DataEngineer' 카테고리의 다른 글
[Trino]Trino란 무엇일까? (0) | 2024.01.18 |
---|---|
[Airflow] Apache Airflow(에어플로우) 알아보기 (0) | 2024.01.02 |