데이터 분야의 직군은 크게 데이터 엔지니어, 데이터 분석가, 머신러닝 엔지니어, 데이터 사이언티스트로 구분된다.
이때, 데이터 엔지니어와 데이터 분석가는 유사하지만 개발자, 연구자의 성격을 갖는 것에서 차이가 존재한다.
데이터 엔지니어 → 데이터 분석가 → 머신러닝 엔지니어 → 데이터 사이언티스트 순으로 설명하겠다.
이 순서는 데이터를 가지고 오는 것부터 시작하여 데이터를 처리하는 것의 전과정이 이루어지는 순서와도 유사하다.
1. 데이터 엔지니어(개발자적 성향)
앱 또는 웹에서 발생하는 데이터들을 파이프라인을 통해 저장소에 저장
즉, 대용량 데이터를 수집하고 관리하며 유지하는 직군
(1) 분류
- (1) 백엔드 개발
- (2) 머신러닝/딥러닝
- (3) 데이터 엔지니어링 위주
(2) 업무
- 웹, 앱에 존재하는 빅데이터를 수집 및 가공 → 데이터 분석가가 사용할 수 있게 저장(여러 서버 클러스터 이용)
- 대시보드 개발 → 데이터 분석가가 사용할 것
- 데이터 파이프라인을 생성 → 데이터의 흐름을 관리
이때, 파이프라인이란?
한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조이다.
출력과 입력이 반복되며 연결된 데이터 처리 단계는 여러 단계가 병렬적으로 동시에 수행되어 효율성의 향상을 이루어 낼 수 있다는 점에서 큰 장점을 가지고 있다.
- 클러스터 관리, 분산 컴퓨팅, 리소스 관리, Load Balancing 관련 문제 해결
- ETL(Extract - Transform - Load)
이때, ETL이란?
추출, 변환, 적재로 컴퓨팅에서 데이터 베이스 이용의 한 과정이다.
(1) 추출
: 동일 기종 또는 타기종의 데이터 소스로부터 데이터 추출
(2) 변환
: 조회 또는 분석을 목적으로 적절한 포맷이나 구조로 데이터를 저장하기 위해 데이터 변환
(3) 적재
: 최종대상(데이터베이스, 데이터 마트, 데이터 웨어하우스 등)으로 변환 데이터 적재
- DW(Data Warehouse) 구축
이때, DW이란?
사용자의 의사 결정에 도움을 주기 위해 기간시스템의 데이터베이스에 축적된 데이터를 공통의 형식으로 변환시켜 관리하는 데이터베이스이다.
즉, 방대한 조직 내에 분산 운영되는 각각의 데이터 베이스 관리 시스템을 통합, 조징, 관리를 한다.
- BI(Business Intelligence) 구축
이때, BI란?
데이터를 통합 및 분석하여 기업 활동에 연관된 의사결정을 돕는 과정이다.
여러 곳에 산재되어 잇는 데이터를 수집하여 체계적으로 일목요연하게 정리함으로써 사용자가 필요로 하는 정보를 정확한 시간에 제공할 수 있는 환경으로 볼 수 있다.
- Hadoop, Spark, Kafka 등을 사용
(3) 필요 역량
- 언어: Java(객체지향), Scala(객체지향+함수형), Python
- 파이프라인 구축 → 주어진 환경에서 최상의 퍼포먼스를 낼 수 있도록
- 데이터 수집
- 데이터 저장
- 데이터 처리
- 리눅스
- 클라우스 서비스
- 대시보드 → Metabase, Superset, Zeppelin, Redash, Tableau
- Task Management 도구
- 도커
(4) 실무
- 데이터 파이프라인 구축 → ETL 수행
- 추천 시스템 아키텍쳐 구축
- 데이터 분석가를 위한 각종 프로그램 구축 → 대시보드, GPU 환경 Notebook 등
2. 데이터 분석가(기획자적 성향)
전사적 의사결정을 위해 가설 및 KPI 수립 후, 그 가설을 데이터로 분석하는 일을 하는 직군
(1) 업무
- 데이터 분석 → 데이터 엔지니어가 DB(Database)에 저장한 데이터, 대시보드, 애널리틱스 도구를 기반으로 함
- 대시보드 생성 및 관리 → 모니터링 해야하는 데이터 또는 특정 데이터
- KPI(핵심 성과지표) 설정
이때, 핵심성과지표란?
KPI는 'Key Performance Indicator'의 약자이다.
성과지표는 '개인 또는 조직의 성과를 객관적으로 평가하는 기준'이며, 핵심성과지표란 목표 달성에 결정적인 역할을 하기에 중요히 관리해야하는 요소들을 부른다.
KPI는 항해하는 배의 나침반 역할을 한다. 보물섬이란 목표를 달성하는 과정에서 현재의 위치를 알려주며 미래의 방향을 제시하고 주관적인 요인을 배제한 객관적인 기준을 제시하는 것이다.
- KPI 모니터링 → 수치 하강/상승 시 원인 분석
- 데이터 로그 설계 → 새로운 기능 추가되거나 특정 로그 보고싶은 경우만!
(2) 필요 역량
- 도메인 지식 + 커뮤니케이션 능력
- 통계 지식
- SQL → 데이터 추출을 위하여
- 프로그래밍(파이썬 또는 R) → 데이터 가공을 위하여
- 애널리틱스 도구 → Google Analytics, Facebook Analytics, Firebase Analytics, Flurry, Amplitude, etc
(3) 실무
1) 문제 정의
2) 데이터 수집 및 전처리
3) 데이터 탐색 및 분석
4) 결과 공유
3. 머신러닝 엔지니어(개발자적 성향)
자신이 속한 도메인의 목적에 맞는 모델 생성 및 모델의 정확도를 개선해 고도화하는 직군
알고리즘 제작 후, Production(실제 서비스) 단계 적용
(1) 업무
- 자신이 속한 도메인에 필요한 모델 개발
- 개발한 모델을 Production(실제 제품)에 적용
- 모델 성능 모니터링 → 모델 성능 개선/더 나은 모델 개발 (Production에 적용하는 것에 핵심을 둔다.)
- 예시
1) 금융 자산 예측 모델 연구 및 개발
2) 자연어 처리(NLP), 자연어 이해(NLU) 모델 개발
3) 컴퓨터 비전 → Image Classification(이미지 분류)/Object Detection(객체 감지)/Image Segmentation(영상 분할)
4) 음성 인식 모델 개발
5) 강화 학습을 적용할 수 있는 도메인에서 모델 개발
(2) 필요 역량
- 논문을 읽고 구현할 수 있는 능력 → 수학 지식/코딩 능력(Python, Tensorflow, Spark 등)
- 머신러닝, 딥러닝 이론 지식
- 개발적 역량 → 도커, 리눅스
- 도메인 관련 지식
(3) 실무
1) 문제 정의
2) 데이터 수집
3) 모델 선정 및 학습
4. 데이터 사이언티스트(연구자적 성향)
머신러닝 엔지니어와 유사하게, 도메인의 목적에 맞는 모델 생성 및 모델의 정확도를 개선해 고도화하는 직군
(1) 집중 포인트의 차이
- 머신러닝: Production
- 데이터 사이언티스트: 연구 개발
(2) 업무
- 논문 연구 → R&D 조직에 속하는 경우가 많음
- 데이터 분석 및 통계 모델링 → 데이터 분석의 일을 하는 경우
- 모델 개발, 모델 성능 개선, 추가 모델 개발 → 머신러닝 엔지니어가 하는 일 하는 경우
(3) 필요 역량
** 머신러닝 엔지니어의 역량과 모두 동일하기에 생략하고 추가된 것만 언급함
- 데이터 분석가 + 데이터 엔지니어 지식 요구됨 → 데이터 분야의 시니어급이기에
- R&D 집중/분석 집중에 따라 역량이 달라짐
(4) 실무
1) 문제 정의
2) 데이터 수집
3) 모델 선정 및 학습
5. 기타
1) 기획자
- 기획을 위한 데이터 분석 → Google Analytics, Facebook Analytics, Facebook 광고 데이터, 사내 대시보드
- DB에 SQL 쿼리 날리기 → 데이터 조작을 위해 파이썬 또는 R 익힘
2) 그로스해커
- 성장을 위해 데이터 분석
- 기획자와 동일하게 쿼리를 날려 데이터를 보거나 대시보드 및 각종 분석도구를 사용함
** 제품 개발이 아닌 성장에 집중하는 포지션
3) 데이터 시각화
📍 데이터 시각화 직군을 따로 두는 기업은 많이 존재하지 않음
- 디자이너/개발자 → 데이터 시각화 할 수 있음
: 일러스트/Java Script를 사용하여 시각화를 하며, 다른 직군에선 태블로, Zeppelin등을 사용한다.
두 직군 모두 목적은 데이터 시각화를 통해 데이터 분석 결과를 쉽게 이해할 수 있게 하는 것이다.
👍🏻 출처: I-want-to-study-Data-Science
GitHub - Team-Neighborhood/I-want-to-study-Data-Science: 데이터 사이언스를 공부하고 싶은 분들을 위한 글
데이터 사이언스를 공부하고 싶은 분들을 위한 글 . Contribute to Team-Neighborhood/I-want-to-study-Data-Science development by creating an account on GitHub.
github.com
'프로그래밍 - 기본 > 데이터 분석' 카테고리의 다른 글
공공 데이터 모음집 (0) | 2021.12.05 |
---|---|
데이터 사이언스 언어 (0) | 2021.11.21 |
[태블로] 태블로를 소개합니다 👋🏻 (0) | 2021.10.03 |
[인빅] 소관위원회 구분 #3,4주차 (0) | 2021.09.23 |