홍카나의 공부방

[DE 데브코스] 05.22 TIL - 데이터 팀에 대하여, DevOps 등 본문

Data Engineering/프로그래머스 데브코스

[DE 데브코스] 05.22 TIL - 데이터 팀에 대하여, DevOps 등

홍문관카페나무 2023. 5. 22. 16:30

데이터 팀의 Vision과 하는 일

  • 신뢰할 수 있는 데이터를 바탕으로 부가 가치를 만든다.
  • 그 기업의 본업을 더 잘 영위할 수 있게 만든다.
  • 의사 결정권자에게 데이터를 고려한 결정(data informed decisions)을 가능하게끔 돕는다.
  • ex) 데이터 기반의 지표를 정의하고, 대시보드 & 리포트 생성 등의 작업을 수행한다. - Data Analyst가 주로 하는 일
  • ex) 개인화를 바탕으로 추천과 검색 기능을 제공하는 것처럼, 머신러닝과 같은 알고리즘으로 사용자의 서비스 경험을 개선한다.  - Data Scientist가 주로 하는 일

 

데이터의 흐름과 데이터 팀의 발전 단계

발전 단계

 

  • 데이터 엔지니어는 여러 source에서 발생한 데이터를 추출하고 정제하여 데이터 인프라를 구축하는 일과 데이터 인프라를 관리/운영하는 일을 주로 맡는다.
  • 이렇게 구축한 데이터 인프라에 데이터 분석가가 들어와서 지표를 정의하고, 대시보드를 만들거나 시각화를 맡는다.
  • 이상적으로는 데이터 인프라가 먼저 구축이 되어있어야 하고, 데이터 분석이 들어가야 한다. 실질적으로는 위 그림의 2,3번부터 시작했다가 1번이 필요하다는 것을 깨닫는 경우도 많다고 한다.
  • 그 이후에는 데이터 과학자가 JOIN해서 머신러닝, 딥러닝 등의 기술을 이용하여 고도화를 진행한다.
  • 2번을 건너뛰고 1번에서 3번으로 건너갔다 한들, 대시보드나 시각화로 변화를 확인하지 못하면 사용자 경험을 개선한 건지 아닌 건지 파악할 수 없다. ( 장님이 된 것과 같다고 한다. ) 

 

데이터 인프라 구축

데이터 인프라 도식도

 

  • 데이터 웨어하우스를 구축하기까지 단계는 위 그림과 같다.
  • 먼저, 서비스에서 직접 생기는 데이터, API에서 가져오는 데이터, MySQL과 같은 ProductionDB에 담겨있는 채널에서 데이터를 추출한다. 이후 ETL(Extract - Transform - Load)을 진행하여 데이터 웨어하우스에 올린다.
  • 데이터 웨어하우스는 데이터 분석을 하는 사람들이 집중적으로 접근하는 DB로, 제품의 서비스 데이터가 담겨있는 ProductionDB와는 차이점이 있다.
  • 데이터 웨어하우스는 처리할 수 있는 데이터의 크기가 큰 것이 중요하고, 프로덕션DB는 서비스 처리 속도가 비교적 중요하다.
  • 데이터 웨어하우스는 OLAP(OnLine Analytical Processing) 방식을 이용하고, MySQL과 같은 DB는 OLTP(OnLine Transaction Processing) 방식을 이용한다. 주목적이 운영이냐, 분석이냐에 따라 달리 사용하면 되겠다.

아래 글들을 참고하면 더 도움이 될 것이다.

https://hongcana.tistory.com/84

https://hongcana.tistory.com/81

https://velog.io/@mrcocoball/220323OLTP-OLAP%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%EC%B0%A8%EC%9D%B4

 

 

데이터 엔지니어가 알아야하는 기술 - 주니어

  • SQL
  • Python, Scala, Java
  • 데이터 웨어하우스 : RedShift, Snowflake, BigQuery...
  • ELT/ETL 프레임워크 : Airflow
  • 대용량 데이터 처리 플랫폼 : Spark(YARN 위에서 돌아가는 시스템), YARN

 

데이터 엔지니어가 알아야하는 기술 - 주니어 이상

  • 컨테이너 기술 : Docker/k8s
  • 클라우드 컴퓨팅 : AWS, GCP, Azure
  • 기타 머신러닝/딥러닝 일반, A/B테스트의 동작, 확률과 통계 지식
  • 다음 스텝은 MLOps이나 ML Engineer

 

DevOPS와 MLOps

  • DevOps는 개발자가 만든 서비스 코드를 시스템에 반영하는 프로세스(CI/CD, deployment)를 주로 맡는다.
  • 서비스 코드는 보통 직접 개발하지 않는다.
  • 시스템이 제대로 동작하는지 모니터링하고, 이슈 감지시에는 escalation(보고) 프로세스를 진행한다.
  • 주니어로 시작하기에는 힘든 직군이라고 한다. 지식과 경험이 많아야 해서..
  • MLOps는 서비스 코드가 아니라 ML 모델을 대상으로 빌딩, 배포, 모니터링을 진행하는 것이다.

 

데이터 웨어하우스 옵션들

 

데이터 웨어하우스 옵션들

살펴볼 옵션들 AWS Redshift Snowflake BigQuery Apache Hive, Presto Apache Iceberg+Spark Iceberg는 스토리지에 가깝긴 하다. AWS Redshift PB 스케일 데이터 분산 처리가 가능한 AWS 기반 데이터 웨어하우스다. PostgreSQL과

hongcana.tistory.com

 

 

오늘 공부하며 어려웠던 내용

  • ELT와 ETL에 대한 개념이 약간 혼동되었는데, 지금은 명확하게 글로 정리하였다.

 

반응형