데이터 엔지니어
데이터 엔지니어는 앱 또는 웹에서 발생하는 데이터들을 파이프라인을 통해 저장소(Database, S3,...)에 저장합니다. 대용량 데이터를 수집하고 관리하며 유지하는 일을 담당합니다.
주요 업무
- 여러 서버 클러스터로 빅데이터를 처리
- 클러스터 관리, 분산 컴퓨팅, 리소스 관리, Load Balancing 관련 문제 해결
- ETL(Extract - Transform - Load)
- DW(Data Warehouse) 구축
- BI(Business Intelligence) 구축
- Hadoop, Spark, Kafka 등을 사용해 업무
채용 공고에 자주 나오는 자격 요건
- 리눅스, 쉘 스크립트
- 데이터 수집 및 가공
- Hadoop
- Spark
- SQL
- DW 시스템 설계 및 운영
- ETL
- 파이프라인 개발
- BI Tool 또는 대시보드 구축
- 추천 시스템 구축
- 머신러닝/딥러닝
필요 역량
- Java, Scala, Python
- 데이터 엔지니어의 업무는 주어진 환경에서 최상의 퍼포먼스를 낼 수 있도록 파이프라인을 구축하는 것입니다
- 아래 역량 밑에 있는 도구들은 도구일 뿐, 모두 알 필요는 없습니다(블럭같이 각 항목에서 몇개를 조합해서 사용해요)
- 특정 기술을 사용할 때 비슷한 도구 대비 왜 이 도구를 선택했는가?를 항상 고민해보는 습관이 필요합니다
- 언어와 플랫폼은 "선택"의 문제이고 문제해결을 위한 "도구"라 생각하는 유연한 개발자가 되길
- 데이터 수집
- Apache Kafka, Fluntd, Embulk, Logstash, Redis, Pub/Sub, Kinesis
- 데이터 저장
- HDFS, json, Parquet, AWS S3 or GCP Storage, RDB, NoSQL, Amazon Redshift, Google BigQuery
- 데이터 처리
- Apache Hadoop, Apache Spark, Apache Hive, SQL
- 리눅스
- 클라우드 서비스
- AWS, GCP, Azure, IBM, NBP 등
- Dashboard
- Metabase, Superset, Zeppelin, Redash, Tableau
- Task Management Tool(Luigi, Airflow...)
- Docker
실제 업무 사례
데이터 파이프라인 구축
- 파이프라인 : 데이터 수집 및 가공, 저장을 포함하는 일련의 과정. ETL(Extract - Transform - Load)를 수행
- 추천 시스템 아키텍쳐 구축(End to End Streaming 사례
공부 로드맵
- 데이터 엔지니어링 전반적인 내용이 잘 담겨있는 책, <빅데이터를 지탱하는 기술> 한번 읽어보시는 것을 추천. 온라인에 있는 자료는 <Data Engineering Cookbook>을 추천
- 기업에선 1TB 이상의 데이터를 처리해본 사람을 선호
- 그러나 신입의 경우 1TB 이상의 데이터를 구할 수 없거나, 많은 서버 클러스터가 없기 때문에 빅데이터 경력이 있기 힘듬
- 따라서 컴퓨터 사이언스 전반의 지식을 중점적으로 평가
- Linux, 자료구조, 알고리즘, OS, 네트워크 등