personal blog based on github pages
by Dooho, Park a.k.a pakddo
이 글은 towardsdatascience.com에 연재된 The New Data Engineering Stack을 번역한 글입니다. 원문링크
소프트웨어 개발 산업에서 풀스택 개발자(데이터 모델링, 백엔드 코드를 작성하며 프론트 엔드 작업을 수행하는 개발자)가 각광받기 시작했던 때를 기억하시나요? 복합적인 기술을 한 사람이 작업한다면 각 기술을 서로 긴밀하게 연결시켜 사용할 수 있다는 사실이 발전된 형태였습니다. 약 5년 전 데이터 엔지니어가 탄생하면서 데이터 산업에도 비슷한 일이 일어나고 있습니다.
다들 아시겠지만, 풀스택 개발자는 신화적인 존재로 남아있습니다. 프론트엔드와 백엔드 그리고 데이터를 다루기 위한 기술을 모두 다 익히는 것은 쉽지 않기 때문입니다. 하지만, 완전한 데이터 엔지니어는 신화 속의 존재가 아닐 수 있습니다. 그 이유 중 하나는 시각화 (비즈니스 인텔리전스)가 그 자체로 거대한 분야가 되었기 때문일 수 있습니다.
데이터 엔지니어는 데이터를 사용할 수 있는 상태로 만들고, 접근할 수 있도록 하며, 데이터를 한 저장소에서 다른 저장소로 이동시키는 등의 다양한 시스템을 구축하는 역할을 수행합니다. 비록 많은 기업에서 데이터 엔지니어가 시각화까지 수행하기를 원하지만, 이는 일반적인 경우는 아닙니다. 그럼에도 불구하고 BI 스킬 셋은 데이터 엔지니어가 익히면 확실히 업무에 도움이 되는 기술입니다.
이 글에서는 데이터 엔지니어로써 놓치면 안 되는 중요한 기술들에 대해 이야기하려고 합니다. 이 기술들을 모두 마스터할 필요는 없으며 모든 기술을 완벽하게 익히는 것은 불가능한 일입니다. 하지만 데이터 엔지니어링 분야에서 경쟁력 있게 일을 하기 위해서는 이러한 기술 대부분을 인지하고 어느 정도 익혀 놓는 것이 중요합니다. 새로운 기술들은 꾸준히 등장하고, 과거의 기술도 조금씩 발전하고 변화한다는 것을 잊지 마십시오.
이러한 기술들을 나열하는 철학은 투자 세계에서 차용되는 단순한 아이디어에서 비롯된 것입니다. 세계가 움직이는 방향대로 투자도 움직입니다. 기술 동향의 흐름을 이해하는 것은 중요합니다.
온라인 트랜잭션 처리 / 관계형 데이터 베이스 / OLTP (Online Transaction Processing)
Oracle / MySQL / MS-SQL Server / PostgreSQL
온라인 분석 처리 / 데이터 웨어하우스 / OLAP(Online Analytical Processing)
BigQuery / Redshift / Snowflacke / AzureDW
기타 특수 목적 DB (시계열, 공간데이터, 그래프 처리, 메시지 큐, 검색 엔진 등)
MongoDB / InfluxDB / neo4j / Redis / ElasticSearch / CosmosDB / DynamoDB / Cloud Datastore
인프라
Google Cloud / Azuer / AWS
Airflow
SQL / Spark
코드 기반 인프라 스트럭처 관리
Terraform / Plumi
코드를 지속적으로 관리하여야 함
Jenkins / AWS code Pipline / Google Cloud Build / Azure DevOps
추출 코드도 테스팅을 사용하는 것이 좋음
Pytest / JUnit
Git
여전히 SQL로 할 수 있는 작업이 많음
SQL / Python / Java
데이터 엔지니어는 단순히 데이터를 추출(ETL)하는 사람이 아닙니다. 또한, 그들은 데이터베이스만을 관리하는 사람도 아닙니다. 데이터 엔지니어는 이 글에서 이야기한 모든 것들과 좀 더 많은 것들을 융합하여 일하는 사람입니다. 다시 말하지만, 글에 언급된 모든 기술의 숙달은 불가능하다는 것을 기억하십시오. 시간이 필요하겠지만, 나열한 기술을 익히고 숙련되게 다룰 수 있다면 향후 몇 년 동안의 트렌드를 빠르게 따라갈 수 있을 것입니다.