본문 바로가기
Data Engineering/데이터 엔지니어링

데이터 엔지니어링 로드맵 (feat. 현실적)

by 무언가 하는 소소 2022. 9. 13.
728x90
반응형

 

 

개발자를 꿈꾸는 사람들이라면 다들 OOO 로드맵은 한번 씩 쳐봤을 것이다. 데이터 엔지니어링 로드맵도 치면 특정한 이미지가 나오는데 이미지만 봐도 아득해져서 접어놨다. 

이게 로드맵인지 포기 유도 이미지인지 모르겠다. 그래서 좀 더 현실적인 로드맵은 없을까 찾던 중에 외국의 좋은 글들을 찾게되어 공유한다. 

 

첫 번째 로드맵은 FAANG의 데이터 엔지니어가 적은 데이터 엔지니어링 로드맵 2021이다. 이것도 역시 영어가 되면 본문을 읽는 걸 추천한다. 해당 로드맵은 컴공에 대한 지식이 별로 없는 사람이 참고하면 좋을 것 같다. 데이터 엔지니어링 관련 내용 뿐만 아니라 개발자라면 필수로 지니고 있어야 할 지식(리눅스, API 등)도 최소한으로 소개해 놓았다. 

참고로 이 사람은 udemy나 freecodecamp 등에 있는 강의도 많이 추천해놨는데 해당 강의도 다 영어로 되어있다. 어차피 무엇을 배워야 하는지는 알려줬으니 영어가 힘들다면 한국어 강의나 책을 찾아보는 걸 추천한다. 한가지 아쉬운 점이라고 한다면 빅데이터 관련 로드맵(하둡, 스파크, 카프카 등)은 너무 짧게 소개되어있다. 빅데이터 로드맵은 나중에 따로 찾아봐야겠다. 

https://medium.com/coriers/data-engineering-roadmap-for-2021-eac7898f0641

 

Data Engineering Roadmap For 2021

12 Steps To Help You Go From 0 To Data Engineering

medium.com


Data Engineering Roadmap For 2021


 

1. 기초지식 쌓기 (SQL, 코딩, 리눅스)

데이터 엔지니어링에 특화된 지식을 찾기 앞서 일단 베이스를 탄탄히 쌓아야 한다. 꼭 쌓아야 하는 기초지식은 아래와 같다. 

1) SQL

2) 파이썬, 자바 등의 프로그래밍 언어 (이 사람은 파이썬 추천)

3) 자료구조와 알고리즘

4) 리눅스 기초

5) FTP, SFTP, TFTP 등의 서버 기초 내용

 

2. 첫 번째 프로젝트 - Flask API 설계하기

데이터 엔지니어라면 일상적으로 API를 사용해야 한다. 따라서 API를 직접 만들어 보는 것은 첫 번째 프로젝트로 아주 좋은 선택이다. 해당 프로젝트를 통해 포트, HTTP 리퀘스크, 커맨드라인 등의 기본 개념을 실전으로 익힐 수 있다. 플라스크는 쉽고 빠르게 API를 만들 수 있는 파이썬 라이브러리이다. 내가 추천하는 플라스트 튜토리얼은 유튜브에 있는 freeCodeCamp의 플라스크 튜토리얼이다.  

https://www.youtube.com/watch?v=Z1RJmh_OqeA

1시간 밖에 안하고 영어자막도 제공되어서 한번 해볼만 할 것 같다

 

 

3. 데이터 웨어하우징과 데이터 파이프라인 배우기 (ETL, ELT, EL)

데이터 사이언티스트와 데이터 엔지니어의 차이는 무엇일까? 큰 차이중 하나는 데이터 웨어하우스와 데이터 파이프라인에 대한 지식이다. 데이터 엔지니어라면 데이터 웨어하우스와 데이터 파이프라인이 무엇인지 필수적으로 알고 있어야 한다. 데이터 웨어하우스에 대한 지식을 쌓는데에는 나는 "랄프 킴벌의 데이터 웨어하우스 툴킷"이라는 책과 udemy의 강의를 추천한다. 

http://www.yes24.com/Product/Goods/18412431

 

랄프 킴벌의 데이터 웨어하우스 툴킷 - YES24

최신 내용으로 완벽하게 업데이트된 종합적인 다차원 모델링 가이드『The Data Warehouse Toolkit』 초판(1996)에서 랄프 킴벌이 다차원 모델링의 기법을 소개한 뒤, 다차원 모델링은 데이터 웨어하우스

www.yes24.com

https://www.udemy.com/course/data-warehouse-fundamentals-for-beginners/?ranMID=39197&ranEAID=GjbDpcHcs4w&ranSiteID=GjbDpcHcs4w-8xplSp9w_fkfgoR0YXaG2A&LSNPUBID=GjbDpcHcs4w&utm_source=aff-campaign&utm_medium=udemyads 

 

Data Warehouse Fundamentals for Beginners

Best Practices and Concepts for Architecture and Dimensional Design

www.udemy.com

 

 

4. 두 번째 프로젝트 - 데이터 웨어하우징 실습

데이터 파이프라인과 데이터 웨어하우스에 대한 지식을 쌓았다면 이제 적용해보자. 아래 네 개의 단계를 수행하면 된다. 

1) 온라인 데이터 소스 스크래핑

2) 암호화된 데이터를 SFTP에 저장하기

3) 디멘셔널 모델 만들기

4) SFTP로부터 데이터를 풀해와서 데이터 웨어하우스에 저장하기

 

 

5. 테스팅 베우기

개발자라면 필수적으로 테스트 케이스를 작성할 수 있어야 한다. 또한 유닛 테스트와 인테그레이션 테스트를 구분할 줄 알아야 한다. 테스팅을 배우기 위해 나는 udemy의 강의를 추천한다. 만약 무료 강의를 원한다면 유튜브에 적합한 강의가 있다. 

https://www.udemy.com/course/unit-testing-and-tdd-in-python/?ranMID=39197&ranEAID=GjbDpcHcs4w&ranSiteID=GjbDpcHcs4w-KudpdnnpEA3QyjbxvMhcRg&LSNPUBID=GjbDpcHcs4w&utm_source=aff-campaign&utm_medium=udemyads 

 

Run Unit Tests in Python (+ Test-Driven Development)

Learning the discipline of Test Driven Development (also known as TDD) Using the Python Programming Language

www.udemy.com

https://www.youtube.com/watch?v=eAPmXQ0dC7Q&t=6s 

 

 

5b. 에어플로우와 도커

해당 단계까지 왔다면 남은 단계는 순서가 별로 중요하지 않다. 본인에게 필요한 것을 먼저 익히면 된다. 나는 해당 단계에서는 에어플로우와 도커를 익히는 것을 추천한다. 에어플로우에는 유튜브에 있는 튜토리얼을 추천한다. 

https://www.youtube.com/watch?v=AHMm1wfGuHE 

 
 
 
 
 

6. 클라우드와 NoSQL

클라우드와 관련해서는 클라우드 벤더에서 주는 자격증을 하나 취득하면 좋다. 또한 NoSQL에는 freeCodeCamp의 데이터베이스시스템 강의를 추천한다. 

https://www.youtube.com/watch?v=4cWkVbC2bNE&t=1s 

 
 

7. 스트리밍과 분산시스템

필요에 따라 하둡이나 스파크, 카프카와 같은 분산시스템이나 스트리밍에 대해 배울 수 있다.


스텝 7 이후로 가지 스텝이 더 있지만 굳이 번역할 필요는 없을것 같아서 여기서 마무리한다. 해당 로드랩을 간단히 요약하자면 아래와 같다.  

 


1. 기본 익히기

1) Linux

2) SQL

3) Python / Java

4) FTP, SFTP, TFTP

2. 프로젝트 1 - Flask를 이용해 API 설계해보기

3. 데이터 웨어하우징과 데이터 파이프라인 배우기

4. 프로젝트 2 - 데이터 웨어하우징 실습

5. 테스팅 배우기 (TDD)

6. 에어플로우와 도커 배우기

7. 클라우드와 NoSQL 배우기

8. 분산시스템과 스트리밍 시스템 배우기


 
 

이것도 만만한 양은 절대 아니지만 그래도 구글에 나오는 로드맵 보다는 훨씬 나은 것 같다. 이미 언어를 알고 있다는 전제 하에 넉넉잡아 6개월 정도 걸릴 것 같다. 나도 중간중간 공백이 있는데 틈틈히 채워넣고 포스팅해야겠다. 

728x90
반응형

댓글