신입을 위한 데이터 엔지니어링 로드맵


Fri, 08 Jul 2022 15:31 KST

데이터 엔지니어가 되려면 어떻게 공부해야 하는가?


deroadmap


안녕하세요. shcDE입니다. 오늘은 제가 취업 준비를 하고 있는 ‘데이터 엔지니어’ 직무에 대한 이야기를 하고자 합니다. 저는 취업 시작과 동시에 개발 관련 오픈채팅 톡방을 통해서 로드맵을 추천받았고, 이를 토대로 여러 수정을 거친 끝에 저만의 신입 취업 준비용 로드맵을 완성할 수 있었습니다. 상단의 사진은 제가 노션으로 직접 제작한 로드맵입니다. 이번 포스팅에서는 해당 로드맵에 대한 상세한 설명을 하고자 합니다.


1. Relational Databases - Design & Architecture

우선 시작은 관계형 데이터베이스 공부부터 진행하였습니다. 저는 여러 기술 중 MySQL을 선택하였는데, 그 이유는 제가 주로 사용하고 있는 언어인 Python과 호환성이 좋기 때문입니다. 그뿐만 아니라, SQL 코딩테스트를 응시할 때 MySQL로도 응시가 가능해서 해당 기술을 관계형 데이터베이스 공부를 하기 위해 선택하였습니다. 아무래도 코딩테스트 뿐 아니라 데이터베이스 구축의 기초 단계인 만큼, 최대한 깊게 공부를 해야 할 필요성을 느껴 저는 해당 기술을 배울 수 있는 책 한 권을 구입하여 1회독을 하였습니다. 제가 선택한 책은 우재남님의 ‘이것이 MySQL이다’였고, 개인적으로 SQL 기초부터 MySQL 파이썬 및 PHP 연동까지 다루었기에 많은 도움이 되었다고 생각합니다. 참고로 말씀드리자면, 저는 PHP를 사용하지 않아서 교재 내에서 PHP 관련 내용은 스킵하였습니다. 자신의 기호에 맞게 읽으시면 될 것 같습니다ㅎㅎ


2. noSQL

다음으로 소개해드릴 단계는 noSQL입니다. 저는 처음에 무작정 DynamoDB를 직접 다루어 보려고 AWS 프리티어 계정 생성까지 했었습니다. 이 당시 굉장히 어리석었던 행동은 Key-Value, Document, Graph와 관련한 기술의 공식문서를 모두 읽으려는 시도를 한 것이었습니다. 기술이 대략 5-6가지 정도 되는데, 이 기술을 모두 습득하는 것은 좋지만 상당히 부담감이 심합니다. 해당 기술을 모두 익히는 것은 취업 후에 해도 늦지 않겠다고 생각하여 noSQL에 대한 기초 개념만 블로그를 통해 간단히 살펴보고 해당 파트는 넘어갔습니다.


3. Columnar Database

여기는 Wide Column에 관한 내용을 다루고 있습니다. noSQL과 마찬가지로 구글링으로 기초 개념만 간단히 살펴보고 해당 파트도 넘어갔습니다.


4. Data warehouses

4단계는 데이터 웨어하우스 구축을 위한 프로그램에 대하여 정리하였습니다. 대표적으로 Snowflake, Amazon Redshift, Google Bigquery가 있고, 실제 데이터 파이프라인 구축 프로젝트 진행 시 해당 프로그램 중 하나를 선택하여 진행할 예정입니다. 이 파트는 직접 프로젝트를 만들면서 공부할 예정입니다.


5. OLAP Data Modeling

OLAP 데이터 모델링 기법에 대해서도 구글링을 통해 가볍게 이해만 하고 넘어갔습니다. MOLAP과 ROLAP으로 구분된다는 정도만 잡고 넘어가면 될 것 같습니다.


data


6. Batch data processing & MapReduce

6단계에서는 우선 Batch는 Apache Pig를 사용한다는 사실만 파악하였습니다. 하둡과 맵리듀스는 hs_seo님의 ‘빅데이터 - 하둡, 하이브로 시작하기’로 공부할 예정입니다. 1장은 사전에 가볍게 봤는데 빅데이터 시스템에 대한 개념 위주여서 2장부터가 본격적인 내용을 다룰 것으로 생각합니다.


저는 6단계부터 7월 11일 이후부터 제 블로그에 포스팅하면서 공부할 것 같습니다. 관심 있으신 분들은 제가 정리할 예정인 포스팅을 참고하셔서 공부하셔도 좋으실 것 같습니다ㅎㅎ

7. Stream data processing

해당 단계는 Streaming과 Hybrid(Batch + Streaming)로 나뉘는데, Streaming은 카프카, Hybrid는 스파크와 플린크가 있음을 확인할 수 있습니다. 저는 여기에서 카프카와 스파크를 공부할 예정입니다. 6단계를 마친 이후에 해당 프레임워크들에 대해서도 포스팅을 할 예정입니다.


8. Pipeline/Workflow Management

8단계에서 다루는 프로그램은 Airflow, Google Composer, Prometheus, Datadog, Sentry 등이 있습니다. 이 중에서 저는 요즘 핫한 Airflow를 사용할 예정입니다.


9. Security and privacy

마지막 단계인 9단계에서는 Legal Compliance, Encryption, Key Management, Data Governance & Integrity에 대해 다루는데, 이 부분은 CS 공부를 하면서 어느 정도 커버가 될 것 같아서 취업 이후에 자세히 공부할 것 같습니다.


여기까지가 제가 정리한 로드맵에 대한 내용이었습니다. 해당 로드맵은 ‘Awesome Data Engineering’ 사이트를 바탕으로 제작하였으며, 간소화를 하였음에도 내용이 많아 보여서 처음 이 로드맵을 보시는 분들은 혼란스러워 하실 수도 있다고 생각합니다. 하지만 실제로 데이터 파이프라인 구축을 위해서 필수로 공부해야 할 기술은 다음과 같다고 생각합니다.


  1. Python(프로그래밍 언어이기에 필수)
  2. MySQL
  3. Hadoop
  4. Kafka
  5. Spark

나머지는 데이터 파이프라인을 구축하면서 그때그때 실습하면 될 것 같다고 개인적으로 생각합니다. 여러 조언을 주신 분들의 의견을 종합했을 때 신입은 우선 알고리즘 및 CS가 탄탄하고, 잘 만든 프로젝트 2-3개 정도면 충분히 취업 시장에서 살아남을 수 있다고 생각합니다. 비록 저도 같은 신입 데이터 엔지니어 취업준비생이지만 이 글을 통해 조금이나마 도움을 받으셨길 바랍니다.


감사합니다.


[레퍼런스]

  1. 이것이 MySQL이다 : ‘http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791162242780'
  2. noSQL 기초 개념 정리 : ‘https://inpa.tistory.com/entry/DB-📚-NoSQL-개념-정리’
  3. 빅데이터 - 하둡, 하이브로 시작하기 : ‘https://wikidocs.net/book/2203'
  4. Awesome Data Engineering : ‘https://awesomedataengineering.com/'