데이터 엔지니어로 4년 일했고, 최근 3년은 소프트웨어 엔지니어로 일했다.
데이터 엔지니어로 일했던건 분명 즐겁고, 베울점도 많았다.
그러나 다시는 데이터 엔지니어로 일하기 싫다.
이 글은, 스스로 왜 그렇게 결정을 내렸는지에 대한 정리이다.
데이터 엔지니어란?
일단 데이터 엔지니어라 무슨 일을 하는지 간략하게 짚고 넘어가자면,
현대의 기술 기업들은 다루는 데이터의 양이 기하 급수적으로 늘어나면서, 데이터를 수집 & 가공 하는데에만 엔지니어링 역량이 많이 필요로 하게 되었다. 따라서, 데이터를 수집 & 가공 하는 전문 개발 직군인 데이터 엔지니어가 탄생하게 되었다.
데이터 엔지니어는 회사마다 역할의 구분이 조금씩 다르지만 보통의 역할은 다음과 같다:
- 회사의 내/외부 시스템이 생산한 데이터를 가공할 분산 시스템 인프라를 개발
- 가공된 데이터로 사업에 도움을 주는 대시보드에 필요한 데이터 제공
- 머신러닝 알고리즘 따위로 예측 모델 개발 등 이 있다.
데이터 엔지니어로 일했을때 좋았던 점
데이터 엔지니어로 일하는건 많은 장점이 있는데, 개인적으로 가장 큰 장점부터 시작하자면:
데이터와 일한다는 장점
나는 항상 데이터와 일하는것에는 재미와 흥미를 느꼈다. 특히 그 데이터가 너무 커서, 데이터 처리가 하나의 머신에서는 힘들고, 분산 시스템이 필요하다면 더욱더 흥미있고 재밌게 느껴졌다.
데이터 엔지니어로 일하면, 회사 내의 분석가들과 협업해, 인사이트를 도출하고, 회사를 더 나은 방향으로 이끌어가는 조타수 같은 역할을 맡는다. 보통 각각의 기능 개발을 맡는 백엔드 개발과 다르게, 데이터 엔지니어는 수많은 데이터속에서 인사이트를 도출하는 인프라를 만든다. 데이터 엔지니어는, 데이터 인프라라는 하나의 거대한 프로덕트를 맡아서 개발하는 소프트웨어 엔지니어의 일종이다.
데이터
사업에 관한 이해
만약 당신도 나와 비슷하게, 기술에도 관심있지만 사업 전반에 관한 관심도 있다면, 데이터 엔지니어로 일하는데에 즐거움을 찾을 수 있을것이다. 위에서 서술한것과 같이, 백엔드/프론트엔드/데브옵스/etc 등의 개발 직군은, 하나의 scope나 기능에 집중하는 면이 있다. 그러나 데이터 엔지니어라면, 사업에 관한 내용을 자동적으로 베워야 한다. 흔히 말하는 BI (Business Intelligence)를 이해를 해야, BI를 위한 데이터 파이프라인을 만들것 아닌가? 그래서 데이터 엔지니어는 사업을 베워야 한다.
통상 회사의 데이터는 넓은 카테고리에 분포 되어 있다, 마케팅 데이터, 인프라관련 데이터, 매출, 유저 통계, 등.
데이터 엔지니어로 일하면서 나는 여러 데이터
기술적인 자유와 풀스택 오너쉽
유저와 맞닿은 프로덕트를 개발하는 직군과 비교하면 데이터 엔지니어는 사실 여유가 있다.
첫번째는 바로 기술적인 자유이다. 데이터 엔지니어가 개발하는 데이터 인프라와 파이프라인은 대게 사내에서 사용된다. stakes are different 유저와 맞닿은 프로덕트은 서비스 장애에 민감할수 밖게 없기에, 기술 선택에 있어 보수적이고 검증된 기술을 사용하는 경향이 있다. 하나의 잘못된 코드가, 수백만 혹은 수천만명의 사람에게 영향을 줄 수 있기 때문이다.
다행이 데이터 엔지니어는 기술 선택에 있어 조금 모험을 할 여유가 있다:
- 새로운 오픈소스 데이터 퀄리티 툴을 사용하고 싶다고? 해봐
- 혹시 기존에 파이썬으로 작성된 파이프라인을 스칼라로 재작성하면 성능 개선이 있을까? 테스트 환경을 띄워서 직접 테스트 해보면 된다.
- 기존에 사용하던 AWS EMR을 Databricks로 교체하면 어떨까? 프로토타이핑 해보고 비교하면 된다. (아마도?)
만약 새벽 두시에 데이터 파이프라인에서 에러가 발생한다면, 데이터 분석가 동료들에게만 영향이 있지, 수백만 유저들에게는 별 영향이 없다.
두번째는, 데이터 엔지니어는 보통 풀스택 오너쉽을 가진다. 프로덕트 팀의 역할은 더 세분화 되어 있다. 백엔드 엔지니어는 서버 코드를 작성하고, 프론트 엔지니어는 클라이언트 코드를 작성하고, 데브옵스/SRE는 인프라를 다룬다. 데이터 엔지니어는 보통 이 작업들을 전부 직접 해야한다. (물론 이는 회사마다 다르다.) 데이터 파이프라인을 위한 코드도 직접 잓

번역중...