일상/정보

데이터 관련 직무 정리 (데이터 엔지니어, 분석가, 데이터 사이언티스트, 머신러닝 엔지니어등)

jordan.bae 2023. 2. 28. 00:32

이번 글에서는 데이터와 관련된 직무들을 정리해보려고 합니다.

최근에 AI가 많은 사용되면서 데이터의 중요성이 높아지게 됐고, 그 결과로 데이터와 관련된 많은 직무들이 나타났습니다. 그 전에도 사실 비슷한 업무들을 하는 사람들이 존재 했지만 지금 처럼 데이터 엔지니어, 머신러닝 엔지니어등이 직군이 제대로 분리되어 있지는 않았습니다. 그렇기 때문에 아직은 서버 엔지니어나 프론트 엔지니어에 비해서 인원도 적고, 회사 별로 하는 일도 조금씩 다르기 때문에 항상 취업을 준비하시는 분들에게 혼란이 있는 것 같습니다.

각각의 직무가 하는 일은 다르지만 하나의 공통점은 데이터플랫폼을 만들거나 데이터플랫폼을 기반으로 일을 한다는 사실입니다. 그래서 각각의 직무에 대해서 살펴보기 전에 데이터 플랫폼에 대한 간단한 설명과 각 직무들이 데이터플랫폼의 어떤 부분과 관련이 있는지 알아보겠습니다. 데이터플랫폼은 전에 BI목적으로 간단한 ETL 파이프라인과 Datawarehouse나 Mart로만 구성되어 있는 분석환경을 Ingestion/Data Lake/Process/Data warehouse/Utilization등 여러 계층과 서비스로 분리해서 구성한 것을 의미합니다. (왜 데이터 웨어하우스 중심에서 데이터플랫폼 기반으로 변경되고 있는지는 아래 설명을 참고 하시면 됩니다.)

데이터 플랫폼

 

어느 정도 규모가 있는 회사에서는 데이터플랫폼을 구축하는데 간단하게 살펴보면 그 이유는 아래와 같습니다. 흔히 말하는 Data의 세가지 V(규모, 다양성, 크기)를 충족시키기 때문입니다.

- 다양한 데이터를 저장. 데이터 레이크(=주로 오브젝트 스토리지(ex.S3, GCS))  구축함으로써 다양한 형식의 데이터를 다룰 수 있고, 더 큰 사이즈의 데이터도 저장이 가능합니다. (<-> 기존 데이터웨어하우스는 다양한 데이터를 저장하고 다루는데 한계가 있음.)

- 다양한 팀에서 데이터를 활용하게 되는데 DS는 data lake를 활용해서 데이터에 접근하고, DA는 data warehouse나 Mart를 통해 데이터를 접근합니다. (데이터를 더 다양한 분야에서 활용하게 되면서 (특히, AI) 각 분야에 최적화된 형태로 데이터를 제공해야 하는 니즈가 생김) 

- 그 밖에도 스키마 변경에 유연하게 대처하고 각 계층별로 느슨하게 연결해서 구성할 수 있다는 점에서 관리가 편리합니다.

 

대부분의 직무들은 Data Lake, Warehouse나 Mart를 사용해서 업무가 진행되기 때문에 Data lake, warehouse나 Mart의 특성을 이해하고, 잘 다루는 것은 모든 직무의 기본이 될 것 같습니다. 

Data Platform를 구축한 후에 해당 데이터를 BI, Machine Learning, Data Product등 다양하게 데이터를 활용하게 됩니다.

데이터 플랫폼에 대해서 조금 더 알고 싶으시다면 이 글(데이터 플랫폼이란?)을 추천드립니다.

다양한 데이터 소스로부터의 데이터 파이프라인과 Data Lake/Warehouse를 구축하는 부분까지 주로 Data Engineer가 주축으로 진행이되고, 그 이후의 다양한 활용하는 부분에서 데이터 분석가, 머신러닝 엔지니어, 데이터 사이언티스트 다양한 직군이 데이터를 활용하게 됩니다. 이제 각 직무를 하나씩 살펴보도록 하겠습니다.

 

데이터 엔지니어(Data Engineer)

데이터 엔지니어 힘들어요...

데이터 엔지니어는 데이터 파이프라인과 데이터웨어하우스 그리고 Lake를 설계, 구축, 유지 보수하는 일을 수행합니다. 데이터 엔지니어는 데이터 추출, 전환, 로드(ETL) 과정을 처리하는 스크립트 작성, 데이터 웨어하우스 및 데이터 레이크의 아키텍처 설계, 데이터베이스 성능 최적화 및 데이터 보안을 유지 관리하는 역할을 맡고 있습니다. 특히 Data Platform에서 Ingestion Layer를 구축해서 데이터를 Lake에 수집하고 다양한 데이터를 처리할 수 있는 Processing Layer또한 관리합니다. 또, 최근에는 데이터의 퀄리티를 위해서 데이터 Observility Platform이나 데이터 Discovery Platform을 구축하고 관리 합니다.

결국 데이터를 잘 활용할 수 있는 플랫폼을 만들고 이 데이터를 다양한 직군에서 활용해서 제품을 만든다고 생각하시면 될 것 같습니다... 위에 짤 너무 공감....!

필요한 스킬

  1. 프로그래밍 언어
    • Python: 데이터 처리, ETL 작업, 스크립팅에 널리 사용됩니다.
    • Java/Scala: 대용량 데이터 처리 및 복잡한 데이터 시스템 구축에 사용됩니다.
    • SQL: 데이터베이스 쿼리 작성 및 최적화에 필수적입니다.
  2. 프레임워크
    • Apache Airflow: 데이터 파이프라인 자동화 및 스케줄링에 사용됩니다.
    • Apache Spark: 대규모 데이터 처리 및 실시간 분석에 사용됩니다.
    • Apache Hadoop: 대용량 데이터 저장 및 처리에 사용되는 에코시스템입니다.
    • Pandas: Python에서 사용되는 데이터 처리 및 분석을 위한 라이브러리입니다.
  3. 소프트웨어 및 시스템
    • Kubernetes (K8s): 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 위한 시스템입니다.
    • Apache Kafka: 대규모 실시간 데이터 스트리밍 처리를 위한 플랫폼입니다.
    • 데이터 웨어하우스(DW): 예를 들어 Amazon Redshift, Google BigQuery 등과 같은 대용량 데이터 분석 및 보고 시스템입니다.
    • 데이터베이스(DB): 관계형 및 비관계형 데이터베이스 시스템에 대한 깊은 이해.
    • Data Lake: 대규모 원시 데이터를 저장하고 분석하기 위한 시스템입니다.
    • ETL Tool: 데이터 추출, 변환, 로딩을 위한 도구, 예를 들어 Talend, Informatica 등.

관련 글 

초기팀의 데이터 엔지니어는 무슨 일을 하나요?

 

데이터 분석가(Data Analyst)

 데이터 분석가는 비즈니스 문제를 해결하기 위해 데이터를 수집하고 분석하는 일을 합니다. 데이터 분석가는 SQL, 파이썬, R 등의 도구를 사용하여 데이터를 추출하고 조작하며, 그래프 및 차트와 같은 시각화 도구를 사용하여 데이터를 시각적으로 표현합니다. 데이터 분석가는 데이터로부터 인사이트를 추출하여 조직의 의사 결정을 지원합니다. 데이터 분석가는 주로 Datawarehouse나 Mart에 있는 데이터를 분석하고, BI tool을 사용해서 대시보드를 생성하고 관리하는 역할을 합니다. 회사에 따라서 PO(프러덕트 오너)와 붙어서 제품의 성장을 위해서실험하고 분석하는 역할을 하기도 하고, 회사 전체의 지표를 대쉬보드화 하고 전반적인 회사 자체의 그로스와 효율을 분석하는 역할을 하는 경우도 있습니다. 이 경우는 Busniess Analyst라고도 부르는 것 같습니다.

필요한 스킬

  1. 프로그래밍 언어
    • Python: 데이터 분석, 시각화, 기본적인 데이터 처리에 널리 사용됩니다. Pandas, NumPy, Matplotlib 등의 라이브러리가 중요합니다.
    • R: 통계적 분석 및 데이터 시각화에 강점을 가진 언어입니다.
    • SQL: 데이터베이스에서 데이터를 추출하고 분석하는 데 필수적입니다.
  2. 데이터 분석 도구
    • Excel: 기본적인 데이터 분석, 데이터 정제, 피벗 테이블 등에 사용됩니다.
    • Tableau, Power BI: 데이터 시각화 및 대시보드 생성에 널리 사용되는 도구입니다.
    • Google Analytics: 웹사이트 분석 및 사용자 행동 분석에 사용됩니다.
  3. 데이터 관리 및 처리
    • 데이터베이스 관리: 관계형 및 비관계형 데이터베이스 시스템에 대한 이해.
    • 데이터 클렌징 및 전처리: 데이터 품질 향상과 분석을 위한 전처리 기술.
  4. 통계 및 분석 기법
    • 통계 지식: 기초적인 통계적 방법론과 분석 기법에 대한 이해.
    • 기초 머신 러닝: 분류, 회귀, 클러스터링 등의 간단한 머신 러닝 기법에 대한 기본적인 지식.
  5. 소프트 스킬
    • 문제 해결 능력: 데이터를 통해 비즈니스 문제를 해결하는 능력.
    • 커뮤니케이션: 분석 결과를 명확하고 이해하기 쉽게 전달하는 능력.
    • 비즈니스 이해: 분석 결과를 비즈니스 맥락에서 해석하고 응용하는 능력.

데이터 분석가는 기술적인 데이터 분석 능력뿐만 아니라, 비즈니스 문제 해결 능력과 이해관계자와의 효과적인 커뮤니케이션 능력이 필요합니다.

관련 글

데이터 분석가는 어떤 일을 하나요? (데이터리안)

 

데이터 과학자 (Data Scientist)

데이터 과학자는 데이터에서 의미있는 인사이트를 추출하고, 이를 통해 비즈니스 문제를 해결하거나 의사결정을 지원하는 역할을 합니다. 이들은 데이터 분석, 머신 러닝 모델 개발, 통계적 방법을 통한 가설 검증, 데이터 시각화 및 인터프리테이션에 집중합니다. 데이터 과학자는 데이터를 깊이 있게 분석하고, 복잡한 데이터 세트에서 패턴과 상관관계를 찾아내며, 예측 모델을 만들어 미래의 트렌드나 결과를 예측합니다. 또한, 이들은 데이터의 이해를 바탕으로 비즈니스 전략을 제안하고, 데이터 중심의 솔루션을 개발합니다.

필요한 스킬

  1. 프레임워크 및 도구
    • Jupyter, RStudio: 데이터 분석 및 시각화에 사용되는 인터랙티브 개발 환경입니다.
    • TensorFlow, PyTorch: 딥러닝 및 머신 러닝 모델을 개발하는 데 사용되는 프레임워크입니다.
    • Matplotlib, Seaborn: 데이터 시각화를 위한 Python 라이브러리입니다.
  2. 데이터 관리 및 처리
    • Big Data Tools: Apache Spark, Hadoop 등 대규모 데이터 처리를 위한 도구에 대한 이해가 필요합니다.
    • 데이터 웨어하우스: Amazon Redshift, Google BigQuery 등 데이터 웨어하우스 솔루션 활용 경험.
    • Data Lake: 데이터 레이크 아키텍처 및 관리에 대한 지식.
  3. 고급 분석 및 모델링
    • 통계 및 수학: 데이터 분석 및 모델링을 위한 통계적 방법론에 대한 깊은 이해.
    • 머신 러닝: 지도학습, 비지도학습, 강화학습 등 다양한 머신 러닝 기법에 대한 지식.
  4. 소프트 스킬
    • 문제 해결 능력: 복잡한 데이터 관련 문제를 해결하는 능력.
    • 커뮤니케이션: 분석 결과를 명확하고 이해하기 쉽게 전달하는 능력.
    • 비즈니스 이해: 비즈니스 문제를 이해하고 이를 데이터 솔루션으로 전환하는 능력.

 

분석 엔지니어 (Analytics Engineer)

Analytics Engineer는 우리나라에서는 흔하지 않은 직무지만 해외에서는 활발하게 채용 중인 직무입니다. 해당 직무는 Data Engineer와 Data Analyst가 필요한 능력들이 각각 섞여있으면서 추가적으로 문서화나 팀 교육을 위한 능력을 필요로합니다. Data engineer처럼 data를 transform 하는 역할도 하지만 Data analyst처럼 해당 데이터에 대한 도메인 및 정보를 알고 있어서 end user(PO, DA, 일반 데이터를 분석하기 싶은 구성원) 들을 위한 데이터를 가공해서 만들어주고, 해당 데이터를 활용하기 위한 문서 및 교육도 진행하게 됩니다. 

조금 더 자세하게 알고 싶다면 이 글을 참고 하셔도 좋을 것 같습니다.

Analytics Engineer 란? (Feat. Modern Data Stack)

필요한 스킬

  1. 프로그래밍 언어
    • SQL: 데이터 모델링, 데이터 변환, 분석 쿼리 작성에 필수적입니다.
    • Python: 데이터 처리, 자동화 스크립트, 분석 작업에 널리 사용됩니다.
  2. 데이터 모델링 및 ETL 도구
    • DBT (Data Build Tool): 데이터 변환을 위한 SQL 기반 도구, 특히 애널리틱스 엔지니어링에 널리 사용됩니다.
    • ETL/ELT 도구: 데이터 파이프라인 구축 및 관리에 사용되는 도구, 예를 들어 Apache Airflow, Talend 등.
  3. 데이터 웨어하우스 및 데이터 레이크
    • 데이터 웨어하우스: Amazon Redshift, Google BigQuery, Snowflake 등의 데이터 웨어하우스 솔루션에 대한 경험.
    • Data Lake: 대규모 원시 데이터를 저장하고 분석하기 위한 시스템에 대한 이해.
  4. 데이터 시각화 및 보고 도구
    • Tableau, Power BI: 대시보드 생성 및 데이터 시각화에 사용됩니다.
    • Looker, Metabase: 비즈니스 인텔리전스 및 데이터 시각화에 사용되는 도구입니다.
  5. 버전 관리 및 협업 도구
    • Git: 소스 코드 버전 관리 및 팀과의 협업에 사용됩니다.
    • 협업 도구: JIRA, Confluence 등 프로젝트 관리 및 문서화에 사용되는 도구.
  6. 소프트 스킬
    • 문제 해결 능력: 데이터 기반 문제 해결 및 분석적 사고 능력.
    • 커뮤니케이션: 이해관계자와의 효과적인 커뮤니케이션 및 데이터 분석 결과의 명확한 전달.
    • 비즈니스 이해: 비즈니스 요구사항을 이해하고 이를 데이터 솔루션으로 전환하는 능력.

애널리틱스 엔지니어는 데이터 웨어하우스 및 데이터 모델링, 데이터 파이프라인 구축, 데이터 품질 관리, 그리고 데이터 분석 및 시각화를 통해 비즈니스 인사이트를 도출하는 중요한 역할을 담당합니다. 이러한 기술적인 스킬 외에도 데이터 기반 의사결정을 지원하기 위한 비즈니스 및 분석적 사고가 필수적입니다

 

머신러닝 엔지니어(Machine Learning Engineer)

 머신러닝 엔지니어는 머신러닝 모델을 개발하고 배포하는 역할을 합니다. 이를 위해 데이터를 수집하고 전처리한 , 모델을 설계하고 학습시킵니다. 머신러닝 엔지니어는 또한 모델의 성능을 개선하고, 데이터의 품질을 유지하며, 모델의 예측 성능을 모니터링합니다. 머신러닝 엔지니어는 머신러닝 프레임워크(: TensorFlow, PyTorch) 클라우드 서비스(: AWS, GCP) 사용하여 머신러닝 모델을 개발합니다. 회사마다 직접 Raw데이터 부터 Feature를 만드는 경우도 있고, 데이터 엔지니어에게 요청해 Feature를 만든 데이터부터 시작해서 머신러닝 모델을 서비스하는 경우도 있습니다.

필요한 스킬

  1. 프로그래밍 언어
    • Python: 머신 러닝 라이브러리(예: Scikit-learn, TensorFlow, PyTorch)를 활용한 모델 개발에 널리 사용됩니다.
    • R: 통계적 분석 및 머신 러닝에 사용될 수 있습니다.
    • SQL: 데이터 추출 및 데이터베이스 쿼리에 필수적입니다.
  2. 머신 러닝 프레임워크 및 라이브러리
    • Scikit-learn: 다양한 머신 러닝 알고리즘을 제공하는 Python 라이브러리입니다.
    • TensorFlow, PyTorch: 딥러닝 알고리즘 개발에 사용되는 프레임워크입니다.
    • Pandas, NumPy: 데이터 처리 및 분석을 위한 Python 라이브러리입니다.
  3. 데이터 처리 및 관리
    • Big Data Tools: Apache Spark, Hadoop 등 대규모 데이터 처리를 위한 도구에 대한 이해가 필요합니다.
    • 데이터베이스 관리: 관계형 및 비관계형 데이터베이스 시스템에 대한 지식.
  4. 모델링 및 평가
    • 통계 지식: 데이터 분석 및 모델링을 위한 통계적 방법론에 대한 깊은 이해.
    • 모델 평가: 교차 검증, A/B 테스팅, 성능 지표 이해.
  5. 데이터 시각화 및 보고 도구
    • Matplotlib, Seaborn: Python에서 사용되는 데이터 시각화 라이브러리입니다.
    • BI 도구: Tableau, Power BI 등의 비즈니스 인텔리전스 도구를 활용한 데이터 시각화 및 보고.
  6. 버전 관리 및 협업 도구
    • Git: 소스 코드 버전 관리 및 협업에 필수적입니다.
    • 협업 도구: JIRA, Confluence 등 프로젝트 관리 및 문서화에 사용됩니다.
  7. 소프트 스킬
    • 문제 해결 능력: 복잡한 데이터 관련 문제를 해결하는 능력.
    • 커뮤니케이션: 분석 결과를 명확하고 이해하기 쉽게 전달하는 능력.
    • 비즈니스 이해: 머신 러닝 솔루션을 비즈니스 문제 해결에 적용하는 능력.

머신러닝 엔지니어는 머신 러닝 모델의 개발, 훈련, 평가 및 배포에 중점을 두며, 이를 위해 다양한 기술적 스킬과 함께 데이터에 대한 깊은 이해와 분석적 사고가 필요합니다.

 

ML Ops(Machine Learning Operations)

ML Ops는 머신러닝 모델을 운영하고 관리하는 프로세스를 의미합니다. ML Ops는 머신러닝 모델을 개발한 후, 해당 모델을 제품 또는 서비스에 통합합니다. 이를 위해 머신러닝 모델을 배포하고, 모니터링하며, 성능 지표를 추적하고, 문제가 발생한 경우 대처합니다. ML Ops는 또한 데이터 파이프라인을 유지하고 관리하며, 머신러닝 모델의 생애주기를 관리합니다. 

필요한 스킬

  1. 프로그래밍 언어
    • Python: 머신 러닝 모델 개발과 운영 자동화 스크립트 작성에 주로 사용됩니다.
    • Go, Java: 시스템 수준의 개발 및 서비스 구축에 사용될 수 있습니다.
    • SQL: 데이터 추출 및 데이터베이스 쿼리에 필수적입니다.
  2. 머신 러닝 프레임워크 및 도구
    • TensorFlow, PyTorch: 모델 개발 및 배포에 사용되는 프레임워크입니다.
    • Kubeflow: 쿠버네티스(Kubernetes) 기반의 머신 러닝 파이프라인을 구축하는 데 사용됩니다.
  3. 클라우드 및 컨테이너화
    • AWS, GCP, Azure: 클라우드 기반의 머신 러닝 서비스 및 인프라에 대한 이해.
    • Docker, Kubernetes (K8s): 컨테이너화 및 오케스트레이션에 필수적입니다.
  4. CI/CD 및 자동화
    • Jenkins, GitLab CI/CD: 연속 통합 및 배포 파이프라인 구축에 사용됩니다.
    • Ansible, Terraform: 인프라 자동화 및 구성 관리에 사용됩니다.
  5. 데이터 파이프라인 및 스트리밍
    • Apache Kafka, Apache NiFi: 대규모 데이터 스트리밍 및 파이프라인 구축에 사용됩니다.
    • Airflow: 데이터 파이프라인 자동화 및 스케줄링에 사용됩니다.
  6. 모니터링 및 로깅
    • Prometheus, Grafana: 시스템 및 애플리케이션 모니터링에 사용됩니다.
    • ELK Stack (Elasticsearch, Logstash, Kibana): 로깅 및 데이터 분석에 사용됩니다.
  7. 소프트 스킬
    • 문제 해결 능력: 복잡한 시스템 및 운영 문제를 해결하는 능력.
    • 커뮤니케이션: 팀원 및 이해관계자와의 효과적인 커뮤니케이션 능력.
    • 프로젝트 관리: 다양한 프로젝트와 작업을 효율적으로 관리하는 능력.

ML Ops는 머신 러닝 모델을 개발, 배포 및 유지 관리하는 데 중점을 두며, 이 과정에서 다양한 기술적 스킬뿐만 아니라 머신 러닝, 데이터 과학, 소프트웨어 엔지니어링 및 시스템 운영에 대한 깊은 이해가 요구됩니다

 

마무리

오늘은 데이터와 관련된 직무들을 정리해봤습니다. 전반적인 이해를 돕기 위해서 큰 그림을 한 번 그려봤는데 데이터와 관련된 직무를 이해하시는데 도움이 되시면 좋겠습니다. 다음에는 데이터플랫폼에 대해서 조금 더 자세히 다뤄보도록 하겠습니다.

 

다른 읽을 거리

- Coalesce-2022 New-Orleans-후기

 

Coalesce 2022 New Orleans 후기 - Analytics Engineering 그리고 Modern DataStack

영문 글 링크(Link of English version post) Introduction 안녕하세요. 10월 14일부터 10월 21일까지 뉴올리언스에서 열린 Coalesce 2022 - The Analytics Engineering Conference 행사를 다녀왔습니다. Coalesce 2022는 dbt Labs에

blog.doosikbae.com

- 데이터 플랫폼이란

 

Data Platform이란? / 데이터플랫폼이란

데이터 엔지니어의 가장 중요한 역할 중 하나는 데이터플랫폼을 구축하는 일이라고 생각합니다. 데이터 플랫폼은 기존의 데이터웨어하우스 중심의 시스템에서 벗어나 다양한 데이터를 다루고,

blog.doosikbae.com

 

반응형