Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

jeongwon

데이터 엔지니어 로드맵 / 필요 역량 본문

데이터 엔지니어링

데이터 엔지니어 로드맵 / 필요 역량

jeongwon_ 2022. 12. 11. 15:45

https://github.com/datastacktv/data-engineer-roadmap

 

데이터 엔지니어란?

 

데이터 영역을 전문 담당하는 소프트웨어 엔지니어.

산업별, 회사별로 업무와 사용 기술은 다르지만 공통적으로 '사업에 필요한 데이터를 잘 분석할 수 있도록 데이터 시스템은 관리'하는 것.

백엔드 엔지니어가 데이터 엔지니어 역할을 함께 수행하는 곳도 있지만, 빅데이터의 등장과 함께 전문적 데이터 엔지니어가 필요하게 되었다. 빅데이터 환경에서 데이터 인프라를 구축하고 관리하는 데 특화되어 있으며, 기존 데이터 환경과는 많은 기술적 차이를 갖는다. 

(거대한 데이터를 기존 RDB(데이터베이스), 전통적 분석 방식을 통해 활용하기 어려워졌다. 이 거대한 데이터를 빅데이터라 한다. )

 

 

데이터 엔지니어의 업무?

 

1. 데이터 수집, 저장, 가공 (ETL / ELT)

데이터 파이프라인들 구축 및 관리한다. 데이터를 만들어내는 서비스들로부터 데이터를 수집하고, 전처리, 필요한 형태로 가공하여 안전한 저장소에 저장하는 과정이다. 

일반적으로 데이터를 모아서 처리하는 배치 처리, 실시간으로 처리하는 스트리밍 처리 방식이 있으며 각 처리 형태나 단계마다 사용 가능한 기술 스택이 다양하다. 

데이터엔지니어는 서비스 특성을 고려하여 적절한 기술을 선택해야 한다. 

 

2. 분석 + 시각화

데이터 엔지니어는 관리하는 데이터를 직접 분석할 수 있어야 하한다. 데이터가 정상적으로 쌓이고 있는지 확인할 때(일회성 분석)도 이런 작업은 필요하고, 조직원들에게 지표를 볼 수 있도록 분석 시스템을 만들 수도 있다. (이 경우 시각화 툴에 대한 이해도 필요하다)

 

3. 이외

개발, 사업 등 조직을 가리지 않고 데이터를 활용하는 직무와 소통해야 한다. 종종 백엔드 엔지니어 역할도 수행한다.

넓은 시야가 필요한, 큰 그림을 그릴 줄 알아야 하는 직무다. 

 

 

데이터 엔지니어의 필요 역량은?

 

- 데이터 파이프라인에 필요한 기술

- 프로그래밍 능력

- 데이터 분석 능력(쿼리)

- 시각화 기술

- 소통 능력(데이터 분석가, 사이언티스트, 개발자 등과 소통)

- 도메인에 대한 깊은 이해

 

출처: https://velog.io/@dlawlrb/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%9E%80-%EB%AD%98%EA%B9%8C

 


 

ETL 과 ELT 의 주요 차이점 = 순서

데이터 리포지토리에 데이터를 로드하기 전과 후 중 데이터 변환 시점은 언제가 적절할까? 

 

1. ETL 은 데이터의 추출, 변환, 로드 프로세스를 가리키며, ELT 는 데이터의 추출, 로드, 변환 프로세스다.

2. ETL 에서 데이터는 데이터 소스에서 스테이징을 거쳐 데이터웨어하우스로 이동한다.

3. ELT 는 데이터 웨어하우스를 활용하여 기본 변환을 실행하며 데이터 스테이징을 할 필요가 없다.

4. ETL 은 민감한 보안 데이터를 정리한 후 데이터 웨어하우스에 로드하므로, 데이터 개인 정보 보호와 규정 준수에 도움이 된다.

5. ETL 은 정교한 데이터 변환을 수행할 수 있고, ELT 보다 비용 효율적일 수 있다. 

 

- 추출: 원본 데이터베이스 또는 데이터 소스에서 소스 데이터를 가져오는 것. ETL에서는 데이터가 임시 스테이징 영역으로 들어간다. 

ELT의 경우 데이터는 데이터 레이크 스토리지 시스템으로 들어간다. 

- 변환: 대상 데이터 시스템 및 해당 시스템의 나머지 데이터와 통합할 수 있도록 정보의 구조를 변경하는 과정.

- 로드: 정보를 데이터 스토리지 시스템에 보관하는 과정.

 

출처: https://www.integrate.io/ko/blog/etl-vs-elt-5-critical-differences-ko/

 


데이터 레이크

본질적으로 데이터 레이크는 정보 저장소이다. 데이터 웨어하우스와 혼동되기도 하지만 데이터 레이크와 데이터 웨어하우스는 서로 다른 비즈니스 요구사항을 충족하며 아키텍처가 다르다.

특히 클라우드 데이터 레이크는 소셜 데이터, 사물인터넷(IoT) 기계 데이터, 트랜잭션 데이터가 점점 더 빠른 속도로 확산되면서 오늘날 데이터 관리 전략의 핵심 요소로 자리 잡았다. 데이터 레이크의 모든 데이터 유형을 저장, 변환, 분석할 수 있는 기능은 새로운 비즈니스 기회와 디지털 혁신을 지원한다.

 

데이터 웨어하우스는 데이터 관리 기능을 제공하며, 사전 정의된 질문이나 적용 사례에 대해 이미 처리되고 필터링된 데이터를 저장한다.

 

 

 

참고) 데이터 레이크하우스는 새롭게 떠오르고 있는 개념으로, 기존 데이터 레이크에 데이터 관리 기능을 추가했다.

 

출처/상세: https://www.sap.com/korea/insights/what-is-a-data-lake.html

 

 


데이터 엔지니어와 데이터 플랫폼 엔지니어

데이터 엔지니어는 분석가 또는 기획자의 요구에 부합하는 데이터를 제공하는 것이 목표. 데이터 저장소, 메세징 큐, 데이터 가공을 구성하는 세부 기술 활용 능력을 필수로 갖춰야 한다. 새로운 요구사항이 발생할 시 언제든 파이프라인을 구축하고 데이터를 제공해줄 수 있어야 한다. 이를 위해 각 세부 기술의 목표, 특징, 최적의 사용 방법 등 기본 지식을 충분히 활용해야 한다.

 

데이터 플랫폼 엔지니어는 데이터 엔지니어가 파이프라인을 안정적으로 구성할 수 있도록 돕는 것이 목표다. 데이터의 생성, 가공, 적재를 담당할 플랫폼을 구축하고, 데이터 엔지니어가 문제를 쉽게 해결할 수 있도록 플랫폼을 안정적으로 운영하며 기술지원을 하고, 플랫폼이 성능, 효율성, 안정성을 갖출 수 있도록 고도화해 나간다. 이를 위해 데이터 파이프라인을 구성하는 각 세부 기술에 대한 깊은 이해가 필요하며, OS(unix/linux), 네트워크 등 시스템 엔지니어링 관련 지식도 일부 갖춰야 한다.

 

데이터 엔지니어가 되기 위해

*가장 먼저 JAVA에 대한 이해를 갖추자. 데이터 엔지니어링 관련 거의 모든 도구는 비슷한 이유로 Java를 기반으로 작성돼 있고, JVM으로 실행한다. 각 도구를 잘 이해하는 것이 데이터 엔지니어 / 데이터 플랫폼 엔지니어의 기본 역량인 만큼, 이미 작성된 Java코드를 읽고 이해하는 것, 그리고 새로 Java 코드를 작성하는 게 가능하다면 기본은 준비된 것이다.

 

*Hadoop을 살펴보자. 데이터 파이프라인 구축에 있어 Hadoop은 핵심적 역할을 담당(데이터 파이프라인 구축의 시작과 끝)한다. 하둡에 대한 이해가 깊을수록 좋다. 오픈소스이므로 관련 서적/논문을 토대로 기본 개념을 갖추고, 코드를 보고 내부 동작을 확인하고, 완전 분산 클러스터를 구축하고 활용하는 경험을 갖추면 좋다.

 

*Linux 상에서 데이터 활용 프로젝트를 경험해보길 권한다. 페이퍼로 얻을 수 없는 지식을 갖추었는지 확인이 가능하다. Linux 상에서 데이터 수집부터 가공, 적재까지 가능한 분산처리 환경을 구축하고, 이 환경을 기반으로 새로운 가치를 창출하는 프로젝트를 뜻한다. 

*컴퓨터 클러스터

컴퓨터 클러스터는 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합을 말한다. 클러스터의 구성 요소들은 일반적으로 고속의 근거리 통신망으로 연결된다. 서버로 사용되는 노드에는 각각의 운영 체제가 실행된다.

 

출처/상세: https://tech.kakao.com/2022/09/29/data-jobs/

 


*추가 참고: https://www.secoda.co/blog/future-of-data-engineering

https://www.secoda.co/blog/5-responsibilities-of-a-data-engineering-manager