한 줄로 정의하자면 데이터 영역을 전문으로 담당하는 소프트웨어 엔지니어 라고 볼 수 있다.
구체적으로 나눠보면 산업별, 회사별로 데이터 엔지니어가 하는 업무와 사용 기술이 다르지만 공통적으로 하는 역할은 같다.
바로 사업에 필요한 데이터를 잘 분석할 수 있도록 데이터 시스템을 관리하는 것이다.
이것이 데이터 엔지니어링이며 해당 직무의 핵심 역할을 잘 설명할 수 있는 말이라고 생각한다.
산업에는 프론트엔드, 백엔드 엔지니어 등 여러 직무가 있다.
이 중 백엔드 엔지니어 역시도 데이터와 관련된 업무를 많이 하고 데이터베이스 관련 지식도 필수적이다. 어떤 회사에서는 데이터 엔지니어의 역할까지 백엔드 엔지니어가 함께 수행하기도 한다.
그렇다면 데이터 엔지니어라는 직무가 따로 필요한 이유는 무엇일까?
데이터 엔지니어라는 역할의 필요성이 커지게 된 이유는 '빅데이터' 라는 키워드와 밀접한 관련이 있다.
그럼 빅데이터가 무엇인지 간단히 정리해보자.
IT산업에서 '데이터' 의 중요성은 비교적 최근부터 급격히 커지기 시작했다.
왜냐하면 이전에는 많은 데이터를 저장하는 것에 대한 비용 부담이 크기도 하고
설령 저장한다고 한들 그만한 데이터를 분석할 수 있는 환경도 조성되지 못했으며
그만한 사업적 가치를 인정받지도 못했기 때문이다.
하지만 클라우드 환경의 활용가치가 높아지고 데이터 관련 기술이 발전하면서
이전에는 버려지던 데이터들을 모아 사업 모델을 만드는 기업들이 점차 늘어갔다.
이를테면 기존 서비스를 업그레이드 시키거나 광고 또는 마케팅 등으로 돈을 벌었던 것이다.
이처럼 데이터를 잘 활용한 기업들의 성공 사례가 많아지면서 데이터의 활용가치에 대한 시장의 관심이 매우 높아졌다.
이 때부터 기업에 쌓이는 데이터의 양이 굉장히 많아지기 시작했고
이렇게 형성된 거대한 데이터는 기존 데이터베이스(RDB)와 전통적 분석 방식을 통해서는 활용하기가 힘들어졌다.
이렇듯 기존 방식과는 다른 방식을 사용해야 하는 거대한 데이터를 우리는 빅데이터 라고 부르게 된다.
데이터 엔지니어는 이러한 빅데이터 환경에서 데이터 인프라를 구축하고 관리하는 데에 특화된 직무이며 이러한 역할이 담당하는 업무는 기존 데이터 환경과 많은 기술적 차이를 가진다.
이것이 바로 데이터 엔지니어라는 직무가 필요한 이유라고 이해하고 있다.
데이터 엔지니어가 하는 업무 중 가장 핵심을 정리하면 다음과 같다.
데이터의 수집, 저장, 가공(ETL 또는 ELT)
=>
이 업무를 하나로 합쳐서 부르면 데이터 파이프라인을 구축 및 관리하는 것이다.
데이터를 만들어내는 실제 서비스들에서 데이터를 수집하고,
수집한 데이터를 전처리한 후 저장에 필요한 형태로 가공한 뒤,
안전한 목표 저장소에 저장하는 일련의 과정을 의미한다.
일반적으로 데이터를 모아서 처리하는 배치 처리와 실시간으로 처리하는 스트리밍 처리가 있으며 각각의 처리형태 혹은 파이프라인 단계마다 사용할 수 있는 기술스택이 매우 다양하다.
따라서 서비스의 특성을 잘 고려하여 적절한 기술을 선택하는 것이 중요하며 이는 데이터 엔지니어에게 가장 중요한 역량 중 하나이다.
분석(+ 시각화)
데이터 엔지니어는 자신이 관리하는 데이터가 결국 어떻게 쓰이는지 알고 필요한 데이터를 직접 분석할 수 있어야 한다.
또한 데이터가 정상적으로 쌓이고 있는지 확인할 때에도 이러한 작업이 필요하다.
이러한 일회성 분석도 반드시 필요하지만 데이터 분석가 혹은 조직원들이 원할 때 지표를 바로 볼 수 있도록 분석 시스템을 만들 수도 있다.
이 경우에는 적절한 시각화 툴에 대한 이해도 역시 필요하다.
이렇게 두 가지로 크게 나누었지만 실제 업무에서는 사실 개발, 사업 등 조직을 가리지 않고 데이터를 활용하는 모든 직무와 끊임없이 소통해야 하며 종종 백엔드 엔지니어의 역할까지 함께 수행하기도 한다.
위에서 정리한 역할들을 수행하기 위해서 필요한 역량을 정리하면 대략적으로 다음과 같다.
이러한 역량을 고루 갖추었을 때 비로소 좋은 데이터 엔지니어가 된다고 생각하며 이미 구축된 시스템이 더 좋은 성능을 낼 수 있도록, 혹은 비용 효율을 높일 수 있도록 개선하거나
데이터를 활용하여 사업적인 가치를 만들어내는 것이 이후 데이터 엔지니어로서의 역량을 평가할 수 있는 중요한 척도가 된다고 생각한다.
개인적으로 엔지니어는 자신의 역할에만 갇혀 시선을 좁게 보지 않아야 하고
자신이 속한 조직에서 본인이 어떤 사업적 가치를 이끌어낼 수 있는가를 항상 생각하며 큰 그림을 그릴 수 있어야 한다고 생각한다.
따라서 데이터 엔지니어도 자신이 관리하는 데이터의 활용 주체의 니즈를 파악하기 위한 노력을 끊임없이 해야한다고 생각한다.
잘 읽었습니다!