인사이트
데이터 엔지니어가 하는 일은?ㅣ데이터 엔지니어 로드맵, 필요 역량
2022년 08월 05일
우리는 홍수처럼 쏟아지는 데이터 시대에 살고 있습니다. 알게 모르게 오늘날의 우리는 많은 데이터를 생산하는데 기여하고 있는데요. 예를 들면, 평소 시청하는 넷플릭스나 유튜브 콘텐츠, 요일별로 즐겨보는 웹툰, 구글 검색, 흥미로운 광고 클릭 등 컴퓨터 또는 스마트폰으로 하는 대부분의 일이 온라인 데이터로 쌓이고 있습니다. 최근 이슈가 되고 있는 ‘이상한 변호사 우영우’는 전 세계 20개 국에서 1위를 기록하고 있다고 하는데요. 몇 억명이 관람하고 있다면, 드라마 한 편에서만 발생하는 데이터가 엄청나겠죠?
그렇다면 세계에서 “1분 안에 발생하는 데이터의 양”은 어느 정도 될까요? 아래 이미지는 매일 1분마다 발생하고 있는 데이터의 양을 표현한 것입니다. 2020년도 자료이니 지금은 그 양이 더욱 많아졌을 텐데요. “데이터는 잠들지 않는다.” 는 말, 참 재밌지 않나요?
오늘날 기업들은 이렇게 발생한 데이터를 활용하여 데이터 분석, 머신러닝, 딥러닝 등 데이터를 통한 가치창출을 하기 위해서 노력하고 있습니다.
오늘은 데이터를 전문적으로 다루는 데이터 직군에 대해 간단하게 소개하고 데이터 엔지니어는 어떤 일을 하는 지, 데이터 엔지니어 로드맵을 보면서 어떤 역량을 키워야 하는지 대해 정리해보았습니다.
데이터 직군은 크게 아래 세 가지로 구분할 수 있습니다. 팀을 이뤄 같이 일하기도 하고, 혼자서 일하기도 하는데요. 각 직무가 하는 일에 대해서 간단하게 살펴볼까요?
데이터를 분석 & 정리하여, 비즈니스적인 결정을 할 때 도움을 줄 수 있는 데이터 분석 보고서를 만드는 역할
비즈니스 문제를 정의하고, 문제를 해결하기 위해서 데이터 분석 모델(e.g. ML/DL)을 만드는 역할
내-외부 원천 데이터를 수집, 가공, 적재하여 데이터가 흐르는 파이프라인을 설계 및 구축하는 역할
세 포지션의 차이점이 이해가 되시나요?
분석을 위주로 하느냐, 인프라 구축을 위주로 하느냐, 분석 알고리즘을 위주로 하느냐에 따라서 크게 구분이 된다고 할 수 있어요. 2년 전인, 2020년만 해도 “데이터 직군”의 직무 설명서(Job Description, JD)를 살펴보면, 업무 내용이 뚜렷하게 구분되어있기보다는, DE 업무에 DA가 섞여 있거나 DS에 DE 업무가 섞여있거나 했는데요. 최근 이직 시장을 보면 명확하게 구분이 되는 추세입니다.
(아직 일부 JD에는 공통업무를 수행할 수 있는 능력을 보기도 합니다.)
데이터 관련 직군에 대한 보다 상세한 내용은 해당 포스팅을 참고하셔도 좋습니다.
최근 데이터 직군, 특히 데이터 엔지니어에 대한 관심도가 높아지고 있습니다. 그 이유가 무엇이라고 생각하시나요? 다양한 이유가 있겠지만 가장 큰 이유는 바로 빅데이터(Big Data) 때문인데요.
빅데이터를 활용한 가장 대표적인 인공지능 모델의 예시로는 알파고(Alphago), GPT, DALL-E 2 등 거대 인공지능(Artificial Intelligence, AI) 모델이 있습니다. 이러한 거대 AI 모델들을 만들어내기 위해서는 빅 데이터가 필수적으로 필요하고, 자연스럽게 전세계 기업들은 빅데이터와 빅데이터를 전문적으로 다룰 수 있는 직군을 주목하게 되었습니다.
그렇다면 데이터 직군에 있어서 중요한 요소인 빅데이터가 무엇인지 간단히 알아보겠습니다.
위키 백과에서는 빅 데이터를 아래와 같이 정의하고 있습니다.
빅 데이터란 기존 데이터베이스 관리 도구의 능력을 넘어서는 대량(수십 TB)의 정형 또는 심지어 데이터베이스 형태가 아닌 비정형의 데이터 집합조차 포함한 데이터로부터 가치를 추출하고 결과를 분석하는 기술이다.
즉, 데이터베이스 등 기존의 데이터 처리 응용 소프트웨어로는 수집, 저장, 분석, 처리하기 어려울 정도로 방대한 양의 데이터를 의미한다.
또한, 오라클(ORACLE)에서는 빅 데이터를 아래와 같이 정의하고 있습니다.
빅 데이터란 양(volume)이 매우 많고, 증가 속도(velocity)가 빠르며, 종류(variety)가 매우 다양한 데이터를 말합니다.
간단히 말해, 빅 데이터는 특히 새로운 데이터 소스에서 나온 더 크고 더 복잡한 데이터 세트입니다. 이러한 데이터 세트는 너무 방대하여 기존의 데이터 처리 소프트웨어로는 관리할 수 없습니다. 그러나 이러한 방대한 양의 데이터는 이전에 해결할 수 없었던 비즈니스 문제를 해결하는 데 사용될 수 있습니다.
여기서 공통으로 알 수 있는 것은 가치를 추출하고 비즈니스 문제를 해결할 때 바로 “데이터”가 사용된다는 것입니다. 기존의 데이터를 다루는 시스템으로는 빅 데이터를 처리하기 힘들고, 더 많은 가치를 창출하기 위해서 데이터 엔지니어를 포함한 여러 데이터 직군이 많은 관심을 받고 있고, 현재 떠오르고 있다고 할 수 있어요.
특히, 데이터 엔지니어는 빅 데이터를 수집, 가공, 적재해야 하는 “개발자적인 성향”을 띄고 있기 때문에 기획자 성향의 데이터 분석가, 연구자 성향의 데이터 사이언티스트와 비교했을 때 가장 수요가 많은 포지션이라는 것도 알고 계시면 좋을 것 같습니다.
데이터를 “쉽게” 활용할 수 있는 환경을 만들어주는 사람
데이터 엔지니어는 데이터 분석가나 데이터 사이언티스트가 데이터를 활용해서 데이터 분석, 머신러닝 모델 구현 등을 편하게 할 수 있도록 환경을 만들어주는 사람입니다.
데이터가 발생하는 시점에서부터 분석할 수 있도록 정제해 주는 역할이 필요합니다.
여기가 데이터 엔지니어의 가장 핵심 업무입니다. 데이터를 수집(Extract), 가공(Transform), 적재(Load)하는 업무인 ETL을 할 수 있는 데이터 파이프라인을 설계하고 구축하는 것입니다. (참고, ELT : 데이터를 먼저 저장하고 이후에 변형하는 방식)
추가로 이 데이터 파이프라인을 운영, 모니터링하는 업무도 중요하니 기억해두시면 좋겠습니다.
데이터 엔지니어에게 기본적으로 요구되는 역량은 앞서 배운 ETL을 위한 컴퓨터 과학적 지식이 필요합니다.
또한 데이터 파이프라인을 구현할 수 있는 프로그래밍 능력, 데이터베이스의 높은 이해도, 클라우드 서비스 등 직무를 위한 다양한 “하드 스킬”을 필요로 합니다. 뿐만아니라 같은 데이터 비개발직군과도 협업을 자주 해야하므로 원활한 “커뮤니케이션 능력”도 꼭 필요합니다.
회사마다 데이터 엔지니어에게 요구하는 역량은 조금 다를 수도 있지만, 데이터 엔지니어 로드맵에서 볼 수 있는 공통적으로 필요한 역량은 다음과 같습니다.
첫 번째로, 컴퓨터과학(Computer Science, CS) 지식이 필요합니다.
데이터 엔지니어의 핵심 업무인 ETL은 대부분 서버, 즉 백엔드(back-end)에서 이루어지기 때문에 백엔드 엔지니어의 역량과 상당 부분 일치합니다. (e.g. Git, API, OS, 컴퓨터 구조, 네트워크, 자료 구조 등등), 이런 이유로 백엔드 엔지니어에서 데이터 엔지니어로 직무 전환을 하기도 합니다.
두 번째로, SQL과 더불어 한 가지 이상의 프로그래밍 언어를 능숙하게 다뤄야 합니다.
데이터 파이프라인을 설계한 다음 실제로 구현해내기 위해서 프로그래밍 능력도 필요합니다.
(e.g. Python, JAVA, Scala, GO, R 등)
세 번째로, 데이터베이스와 데이터에 대한 깊은 이해도를 가지고 있어야 합니다.
매일 쌓이는 엄청난 양의 데이터는 하나의 물리적 공간에만 저장할 수 없습니다. 데이터 베이스는 데이터를 안전하고, 정확하게 보관하고 출력하는 업무를 위해서 여러 기능들을 제공합니다. 데이터베이스의 특성을 파악하고, 오류 없이 데이터를 안전하게 다루고 관리하는 시스템에 대해서 이해해야 합니다.
네 번째로, 커뮤니케이션 능력도 중요합니다.
데이터 엔지니어는 데이터에 관한 모든 업무에 관련 있기 때문에 같은 데이터 직군인 데이터 분석가와 데이터 사이언티스트는 물론이고, 프론트엔드, 백엔드 개발자, 비개발직군과도 소통하는 업무도 많습니다. 데이터 수집은 어떻게 하는지, 처리는 어떻게 하는지 등 설명을 하는 경우도 많기 때문입니다.
다섯 번째로, 클라우드 서비스(AWS, GCP, Azure 등)에 대한 경험도 중요합니다.
사내에서 엄청난 양의 데이터를 자체적으로 관리하는 것은 쉽지 않습니다. 최근 많은 회사들이 클라우드 서비스를 이용하고 있고, 클라우드 서비스의 경험이 있는 사람들을 원하고 있습니다. 필수 사항은 아니지만 대부분의 채용공고에서 우대사항으로 포함되어 있습니다.
마지막으로, 데이터 분야는 트렌드가 워낙 빠르게 바뀌기 때문에 새로운 기술이 나왔을 때 과감하게 시도해볼 수 있는 “도전 정신”이 필요합니다.
데이터 엔지니어는 항상 정해진 시간과 비용 내에서 최대한의 효율을 낼 수 있는 데이터 파이프라인을 설계해야 하기 때문에 여러 연구와 시도가 필요합니다.
데이터 엔지니어에 비교적 최근에 관심이 생기신 분들이나 취업을 위해서 공부하고 계신 분들은 해당 링크를 통해 데이터 엔지니어 로드맵을 살펴보길 권장합니다. 하지만 이 로드맵에서 알려주는 방대한 양의 스택을 보고 압도당하실 필요는 없어요!
아래 박스 안의 내용만 한번 같이 읽어볼까요?
CS Fundamentals → Learn a Programing Language → Testing → Database fundamentals → Relational database (RDB) → No Relational database (NoSQL) → Data Warehouse → Object Storage (Data Lake) → Cluster computing fundamentals → Data Processing → Messaging → workflow scheduling → monitoring data pipelines → Networking → Infrastructure as Code → CI/CD → Identify and access → Data security & privacy
컴퓨터공학 기초, 프로그래밍 언어, 데이터베이스 등 아시는 것들도 있을 것이고, 또 모르시는 것들이 많이 있을 것입니다. 그러나 모든 것들을 알아야 하는 것은 아닙니다! 로드맵을 보면서 이런 것들이 있다는 것 정도를 잘 정리해보시고, 원하시는 포지션의 JD를 살펴보시면서 하나씩 준비하시면 좋겠습니다.
주니어 레벨의 데이터 엔지니어에게 로드맵에 있는 모든 스택을 요구하지 않을뿐더러, 회사마다 사용하고 있는 툴이 다르므로 모든 툴을 알아야 한다는 부담감을 가지지 않으셔도 됩니다. (참고로 시니어 분들도 여기있는 스택들을 다 사용해보신 분은 많이 않을테니 부담 갖지 않으셔도 됩니다.)
데이터의 가치는 우리가 만드는 것!
데이터 엔지니어 커리어를 원한다면?
“Data is New Oil.” 이란 말이 있습니다. 데이터도 석유와 비슷하게 실제 사용을 위해서는 용도에 맞게 정제하는 과정이 필요하다는 의미입니다. 정제되기 전까지는 데이터의 가치를 발견하기 어렵고, 데이터를 적절하게 사용할 수 있을 때 비로소 가치를 인정받을 수 있습니다. 데이터에서 가치를 발견할 수 있게 토대를 만들어주는 사람이 바로 데이터 엔지니어입니다.
데이터 엔지니어 커리어를 쌓기 위해 기초적인 데이터 학습이 필요하다면 코드스테이츠 AI 부트캠프의 문을 두드려주세요. 기초 학습뿐 아니라 다양한 개인, 팀, 기업 프로젝트를 진행하며 보다 비즈니스적인 관점의 데이터 분석 경험을 쌓을 수 있습니다.
글 김태범 Product Manger (AI 부트캠프)
편집 조주연 Content Manager
👨🚀 데이터 사이언스 커리어의 시작,
AI 부트캠프가 더 궁금하다면?
목록 보기
추천글