NEW 기획 디자인 개발 프로덕트 아웃소싱 프리랜싱

개발

데이터 엔지니어는 무슨 일을 할까?

데이터 과학자: 21세기에 가장 섹시한 직업

 

벌써 10년이 넘은, 그래서 관계자들에게 많이 인용된 기사가 있습니다. 이처럼 데이터 직군은 21세기에 가장 매력적인 직업으로 주목받고 있습니다. 그렇지만 정작 ‘어떤 일을 하는지’에 대해서는 덜 알려진 편입니다. 특히 데이터 직군 중 하나인 ‘데이터 엔지니어’는 업무의 중요도에 비해 정보를 구하기가 어렵고, 특히 해당 일을 하는 사람을 만나기도 힘듭니다.

 

다행히 저는 데이터 직군에서 일을 시작했기 때문에 업계에서 일하는 관계자들을 쉽게 만날 수 있었습니다. 각자의 배경, 소속한 기업의 상황에 따라 조금씩 다르지만 데이터 엔지니어의 업무에 대한 전반적인 이야기를 들어 보았습니다. 오늘은 이러한 내용들을 정리해 데이터 엔지니어를 목표로 하는 사람들을 위한 가이드를 작성해 보겠습니다.

 

데이터 엔지니어의 핵심 목표

데이터 엔지니어의 업무를 위한 핵심 문장은 ‘데이터를 잘 가져오고, 잘 사용할 수 있게 정리한다’입니다. 조금 더 전문적인 단어를 인용하면 ‘데이터 파이프라인 시스템 아키텍처를 구축한다’라고 표현할 수 있습니다. 그렇지만 이렇게 설명하면 막상 업무에 대해 이해하기 쉽지 않습니다. 그래서 예시를 통해 데이터 엔지니어의 업무를 설명해 보겠습니다.

 

해피 고양이
(출처: Pixabay)

 

저는 고양이를 너무 좋아하기 때문에 ‘고양이가 행복하자’라는 미션을 가지고 있습니다. 그래서 이를 실현하기 위해 ‘캣닢’을 가공해 판매하기로 했습니다. 이름은 ‘캣닢컴퍼니’입니다.

 

사업에는 고민할 것이 많지만, 데이터의 관점으로 보는 건 조금 독특합니다. 고객에게 캣닢을 판매하면서 ‘캣닢을 어떤 고객이 언제 얼만큼 샀는지(구매 로그)’, 상품이 잔뜩 올라와 있는 랜딩페이지에서 ‘어떤 클릭이 이루어졌는지(방문 로그)’ 등 우리 서비스로 만들어지는 데이터를 먼저 생각해야 합니다. 이렇게 내부에서 저장하고 활용하는 데이터를 ‘내부 데이터’라고 하겠습니다.

 

내부 데이터가 있으니 당연히 ‘외부 데이터’도 있습니다. 외부 데이터는 우리의 비즈니스를 더 잘 굴러가게 하는 데이터지만, 외부에 저장되는 데이터를 뜻합니다. 예를 들어, 현재 판매하는 캣닢의 ‘채널별 판매 데이터(자사 사이트가 아닌 외부 커머스 사이트)’나 ‘캣닢 원자재의 가격 데이터’, ‘최근 날짜별 SNS 캣닢 태그 언급 수 데이터’ 등이라고 할 수 있습니다. 혹은 회사 홈페이지에 설치한 ‘마케팅 효과 분석 툴 데이터’ 역시 외부 데이터입니다.

 

설명이 조금 길었습니다. 이제 캣닢컴퍼니에서 일하는 데이터 엔지니어의 첫 업무를 살펴보겠습니다. 먼저 위에서 설명한 내외부 데이터를 회사 구성원이 쉽고 빠르게 사용할 수 있도록 저장하고, 이를 잘 꺼내 올 수 있는 환경을 구축하는 것입니다.

 

여기서 저장 방법은 ‘데이터 웨어하우스(사용자의 의사 결정에 도움을 주기 위해 기간 시스템에 저장한 데이터를 공통 형식으로 변환해서 관리하는 데이터베이스)’나 ‘데이터 레이크’ 등 다양한 방법이 있으며, 데이터의 크기나 산업의 도메인 등에 따라 ‘하둡(Hadoop, 여러 개의 저렴한 컴퓨터를 마치 하나인 것처럼 묶어 대용량 데이터를 처리하는 기술)’과 같은 ‘빅데이터’ 혹은 ‘분산 시스템’을 사용해야 할 수도 있습니다.

 

계속해서 우리 캣닢컴퍼니는 이러한 데이터 저장 서버를 직접 구입하거나 분산 시스템을 사용할 정도로 규모가 있는 상황이 아닙니다. 그래서 ‘Snowflake’나 ‘AWS Redshift’, ‘GCP Bigquery’와 같은 클라우드 기반 서비스를 사용하기로 했습니다. 클라우드 서비스는 데이터를 대시보드나 모델로 만들어 배포하는 걸 도와주는 기능이 있기 때문에 데이터 활용에도 어렵지 않기 때문입니다.

 

데이터 파이프라인 구축
(출처: Pixabay)

 

정리하면 회사의 데이터 수집 및 저장해 이를 구성원이 잘 활용할 수 있는 파이프라인을 구축하는 것, 이게 바로 데이터 엔지니어의 핵심 업무입니다. 물론 이를 위해 계정 권한부터 서비스 선택, 외부 데이터 가져오는 방법 등 여러 일을 해야 하지만, 이러한 기술적 방법론은 이번 글에서 다루지 않으려고 합니다.

 

 

데이터 엔지니어의 다른 업무

데이터 파이프라인을 구축하는 것 외에도 데이터 엔지니어에게는 여러 업무가 있습니다.

 

데이터 엔지니어 업무

 

첫 번째는 데이터를 제공하는 일입니다. 일종의 ‘Data as a Service’이며, 이 서비스의 고객은 주로 회사 구성원(여기서는 캣닢컴퍼니 직원)입니다.

 

두 번째는 저장했던 데이터를 ‘더 잘’ 사용할 수 있는 환경을 만드는 것입니다. 용어로 설명하면, ‘운영 DB’에서의 데이터를 직접 사용하는 것은 여러 문제를 만들 수 있기 때문에, 자주 쓰는 쿼리를 기반으로 분석용 데이터 마트를 만드는 일이 이러한 업무에 포함됩니다. 조금 더 나아가 실제 이 데이터를 사용할 사람들이 쉽고 빠르게 활용할 수 있게 ‘데이터 플랫폼’을 만드는 작업도 포함됩니다.

 

세 번째는 새로운 데이터를 저장하는 일입니다. 데이터 저장의 가장 큰 이유는 구성원이 비즈니스에 활용하기 위해서입니다. 그렇지만 외부 사용자에게 제공하기 위한 목적으로 데이터를 가공할 때도 있습니다. 예를 들어 캣닢컴퍼니의 데이터를 다른 기업(고양이 관련 회사)에 판매하거나 API를 통해 모두가 분석할 수 있는 공공데이터로 제공할 수 있습니다.

 

여기서 말하는 데이터 저장은 외부 데이터를 수집할 때 우리가 직접 수집하지 않는 상황을 포함합니다. 예를 들어 회사 홈페이지 구글 애널리틱스를 설치해 고객 관련 데이터를 생성한다면, 이 데이터는 엄밀히 말해 우리 회사 서버가 아닌 구글 서버에 저장이 됩니다. 따라서 이 데이터를 더 잘 활용하기 위해서는 구글 서버에서 원본 그대로 가져오거나 혹은 가공 후 저장하는 업무가 필요합니다.

 

끝으로 MLOps(머신 러닝 작업, Machine Learning Operations) 관점에서 해야 하는 업무도 있습니다. 데이터 웨어하우스를 만들고 난 후 다른 데이터 직군과 협업해서 ‘세이지메이커(클라우드 기계 학습 플랫폼, Sagemaker)’와 같은 분석툴로 데이터를 자동으로 관리 및 배포하게 만드는 업무입니다. 데이터 엔지니어가 이러한 인프라를 만들면, 데이터 사이언티스트는 이 인프라를 활용해 회사에 필요한 결과물을 만듭니다. 그리고 구성원은 결과물을 활용해 회사에 필요한 업무(영업, 마케팅 등)를 진행합니다.

 

물론 조직과 환경마다 조금씩 업무들이 다를 수 있습니다. 그렇지만 데이터 엔지니어의 핵심 업무인 ‘데이터를 잘 가져오고(적재), 잘 사용할 수 있게 정리한다(구축)’라는 관점은 크게 달라지지 않습니다.

 

 

데이터 엔지니어가 되려면?

우리나라에서 ‘데이터 분석가’나 ‘데이터 사이언티스트’가 되고 싶을 때는 ‘AI 대학원’을 비롯한 여러 수단을 통해 많은 정보를 얻을 수 있습니다. 그러나 데이터 엔지니어는 이런 아카데미 형식으로 배울 수 있는 정보가 상대적으로 적습니다. 그래서 데이터 엔지니어가 되려면 대략 어떤 공부가 필요한지 알아보겠습니다.

 

먼저 데이터 엔지니어는 데이터를 (외부) 소스에서 회사의 서버, 혹은 구성원의 로컬 PC까지 이동할 수 있어야 하기 때문에 네트워크에 대한 지식이 있어야 합니다. 또 상당히 많은 데이터 엔지니어 툴이 커맨드 상에서 작업이 이뤄지기 때문에 각종 소스에 대한 이해가 높아야 합니다.

 

온라인상에서 데이터를 끊임없이 관리해야 하므로 클라우드 플랫폼에 대한 이해가 있어야 합니다. 물론 조직마다 사용하는 서비스가 달라서 모든 종류를 다 알 필요는 없지만, 최소한 1가지 정도는 주력으로 이용할 수 있도록 해당 서비스에 대한 경험 혹은 정보를 가지고 있어야 합니다.

 

프로그래밍 언어도 중요합니다. 앞서 말했던 것처럼 Django나 Airflow, Datahub 등 각종 데이터 엔지니어 툴을 다루기 위해서는 ‘파이썬(Python)’을 사용할 수 있어야 합니다. 끝으로 데이터 이용을 넘어 환경까지 구축해야 하는 데이터 엔지니어의 특성상 ‘데이터 베이스’에 대해 잘 알고 있어야 합니다.

 

중요한 건 이러한 자격을 위해 자격증이나 수료증에 너무 매달리지 않는 것입니다. ‘데이터 엔지니어가 되려면 이런 지식들은 알고 있어야 한다’라는 일종의 참고서 정도로 생각하는 게 좋습니다. 이론으로 배우는 자격증이 도움이 되는 건 맞지만, 어렵더라도 스스로 고민하면서 실제 경험을 쌓는 것도 좋은 데이터 엔지니어가 되는 방법 중 하나이기 때문입니다.

 

 

데이터 엔지니어의 꿈을 응원하며

다른 많은 직업처럼 데이터 엔지니어 역시 데이터 외에 다양한 분야의 지식을 꾸준히 학습하고 각자 경험한 문제들을 풀어나가야 합니다. 무엇보다 내가 공들여 설계한 환경을 통해 다른 사람들의 업무(데이터 분석가, 데이터 사이언티스트)가 더 빛날 수 있는 것도 데이터 엔지니어의 매력 포인트입니다.

 

최근 여러 직군에서 데이터를 활용하는 일이 많아지면서 이를 지원하는 데이터 엔지니어의 가치가 갈수록 더 높아질 것으로 생각됩니다. 이번 글을 통해 데이터 엔지니어라는 직업에 대해 알게 되고, 조금이나마 도움이 되었기를 바랍니다.

 

요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.

댓글 0

애옹킴

데이터, 프로덕트, 개발, 글쓰기, 마지막으로 고양이 간식 주기를 좋아합니다. 잘 정리된 성공 글보다는 맨땅에 헤딩 경험담, 제게 흥미로운 것, 데이터를 활용 할 수 있는 방법 등을 미디엄(https://jhk0530.medium.com/)을 통해 자유롭게 공유 하고 있어요.

같은 분야를 다룬 글들을 권해드려요.

요즘 인기있는 이야기들을 권해드려요.

일주일에 한 번!
전문가들의 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.

일주일에 한 번! 전문가들의 요즘IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.