Articles Big Data Tools

빅데이터의 세계, 2부: 직무

Read this post in other languages:

빅데이터 관련 시리즈의 두 번째 게시물입니다. 이번 글에서는 빅데이터를 사용하는 사람들의 직무를 살펴볼 예정입니다. 모든 빅데이터 직무는 데이터가 중심이지만 직무별로 상당히 큰 차이가 있습니다. 대상 직무를 보다 잘 이해할 수 있도록 주요 포인트를 살펴보겠습니다.

  1. 빅데이터의 세계, 1부: 정의
  2. 이 게시물
  3. 빅데이터의 세계, 3부: 데이터 파이프라인 구축
  4. 빅데이터의 세계: 4부. 아키텍처
  5. 빅데이터의 세계, 5부: CAP Theorem

목차

데이터 엔지니어

저는 데이터 엔지니어 직무를 설명할 때 파이프라인의 은유를 즐겨 사용합니다. 데이터 엔지니어는 소스에서 대상까지 파이프라인을 구축하는 역할을 합니다. 빅데이터를 다룰 때 많은 운영 데이터베이스(DB) 및 기타 데이터 소스가 필요하며 이는 불가피한 것으로 확인되었습니다. 데이터는 결합 및 처리가 가능한 경우에만 적절히 활용될 수 있습니다.

데이터 엔지니어는 파이프라인 구축 작업 외에도 일반적으로 데이터 웨어하우스(DWH) 구축을 담당합니다. 데이터 웨어하우스는 회사에서 언젠가 필요할 수 있는 모든 데이터를 저장하는 방식으로, 앞서 언급한 3V 확장성을 고려할 때 보이는 것만큼 간단하지 않습니다.

예를 들어 서비스 사용자의 프로파일을 유지해야 하는 상황을 가정해 보겠습니다. 거래 목록, 집계된 클릭스트림을 통해 수집된 데이터, 변화가 거의 없는 안정적 데이터, 계산된 측정 기준, 권장 사항 및 기타 다양한 항목이 사용자 프로파일에 포함됩니다. 단일 사용자의 프로파일을 저장하기는 어렵지 않지만 수십만 명의 프로파일을 저장해야 한다면 상당히 까다로울 수 있습니다. 문제는 이뿐만이 아닙니다! 이와 더불어 매일 업데이트하거나 임의의 키로 쿼리 작업을 수행한다고 생각해 보세요. 쿼리 작업은 전통적인 관계형 DB에서도 실제 문제를 초래할 수 있습니다.

솔직히 말씀드리자면 방금 설명한 내용은 데이터 관리 플랫폼(DMP)이라는 완전히 별도로 되어있는 시스템 클래스입니다. Wikipedia에는 “DMP를 통해, 기업은 잠재 고객 세그먼트를 파악하여 온라인 광고 캠페인에서 특정 사용자와 컨텍스트를 타겟팅하는 데 사용할 수 있다”라고 나와 있습니다.

데이터 엔지니어의 직무는 일반적으로 소프트웨어 엔지니어, DBA 및 Ops의 직무가 결합된 것입니다. 데이터 엔지니어는 매일 다음과 같은 다양한 도구를 사용합니다.

데이터 엔지니어들 사이에서 가장 널리 사용되는 언어는 Python과 Scala입니다.

데이터 엔지니어를 위한 또 다른 화두는 자동화입니다. 부서 간 커뮤니케이션을 비롯한 모든 것이 자동으로 이루어져야 합니다.

직무 범위가 매우 광범위하므로, 이 글에서 데이터 엔지니어링이라 언급된 직무는 일반적으로 데이터 아키텍처, 데이터 거버넌스, ETL(추출-변환-로드, “파이프라인”의 약칭) 등 더 전문적인 세부 직무로 분류됩니다. 보통 대기업에서는 보다 원활한 커뮤니케이션을 위해 별도의 부서를 구성합니다.

데이터 과학자

데이터 과학자는 데이터 과학을 적용합니다. 그런데 데이터 과학은 무엇일까요? Wikipedia를 다시 참고하겠습니다. “데이터 과학은 과학적 방법, 프로세스, 알고리즘 및 시스템을 사용하여 정형 데이터 및 비정형 데이터에서 지식과 인사이트를 추출하는 여러 학문 분야가 관련된 분야이다.”

데이터 과학자는 일반적으로 통계적 방법론을 적용해 데이터를 탐색하고 이해합니다. 데이터 과학은 대규모 데이터를 처리하는 데 중요합니다. 인간의 두뇌로는 그렇게 많은 데이터를 기억하고 분석할 수 없습니다. 다차원 데이터에 숨겨진 상관관계나 패턴이 존재할 수 있으며 데이터 과학자의 역할은 이를 파악하는 것입니다.

일반적으로 데이터 과학자는 데이터에서 인사이트를 수집하는 작업 외에도 다음과 같은 두 가지 이유로 실험 분석을 담당합니다.

  1. 실험에서 결론을 도출하는 데 기반이 되는 데이터가 충분히 수집되었는지 이해하려면 통계가 필요합니다.
  2. 실험들이 어떤 방식으로든 서로 영향을 미쳤는지 이해하는 것은 완전히 수학적인 작업입니다.

또한 “신경망”, “AI” 또는 “ML(머신 러닝)” 등의 작업도 모두 데이터 과학자가 담당합니다. 데이터 과학자는 모두에게 더욱 간편한 프로덕션을 지원을 위해 데이터 엔지니어와 협력하여 도구를 선정할 때도 있습니다.

물론, OpenAI처럼 여러분이 알고 있을 법한 모든 대규모 제품은 데이터 과학자 및 데이터 엔지니어를 비롯하여 다양한 역량을 지닌 많은 사람이 함께 작업한 결과물입니다.

일반적으로 데이터 과학자는 데이터 엔지니어가 준비(혹은 전송이라도)한 데이터를 사용합니다. 사용되는 도구는 다음과 같습니다.

데이터 엔지니어들이 가장 많이 사용하는 언어는 Python과 R입니다.

데이터 과학자의 업무에는 ‘연구’라는 흥미로운 특성이 있습니다. 많은 연구 작업과 마찬가지로, 현재 접근 방식을 통해 성공을 거둘 수 있는지 혹은 언제 성공할 것인지는 알 수 없습니다. 이러한 특성에 따라 데이터 엔지니어는 프로덕션 수준의 지원 가능한 코드 작성부터 최대한 빨리 결과를 수집하기 위한 신속한 실험 기록까지 다양한 작업을 수행하게 됩니다. 미래에 수정을 하지 않는다면, 현재의 일시적인 작업은 영구적인 것이 됩니다. 그렇기에 머신 러닝 엔지니어의 도움이 필요합니다.

데이터 과학자의 직무가 분석과 연구에만 국한되지 않는다는 점을 이해해야 합니다. 데이터 과학자는 매우 복잡한 시스템도 구축합니다. 가령, 여러 신경망 라이브러리가 있지만 라이브러리의 API를 아는 것만으로는 부족합니다. 프로덕션에 준비된 솔루션을 구축하기 위해, 데이터 과학자는 일반적으로 구체적인 SLO(서비스 수준 목표)에 따라 구체적인 문제를 해결하는 다층 신경망을 설계해야 합니다. 또한 포괄적인 작업도 있습니다. 실제 프로덕션에 사용 가능한 과학적 도구를 개발하는 것은 과학뿐 아니라 엔지니어링 기술과 비즈니스의 이해 면에서도 중요합니다.

머신 러닝 엔지니어

ML Ops: 공학 분야로서의 머신 러닝

위의 그림은 다른 분야와의 교차 측면에서 ML Ops의 위치를 보여줍니다. 머신 러닝 엔지니어는 그 위치에서 일하는 사람들로, 머신 러닝 작업을 엔지니어링 분야와 더욱 밀접하게 만드는 직무를 수행합니다. 다음 Google 블로그 게시물에서 이를 실현하는 방법 및 머신 러닝을 상품화 하는 과정에서 발생하는 문제를 잘 설명하고 있습니다. 하지만 근원을 살펴보자면, 문제는 어디에서 비롯되는 것일까요?

머신 러닝 시스템의 숨겨진 기술적 부채

데이터 과학 학습을 시작하면 누구나 머신 러닝 코드 작성 방법을 배우지만, 코드를 프로덕션에 적합하게 준비하기까지 수많은 단계를 거쳐야 합니다! 코드는 배포, 모니터링을 거쳐 안정적으로 작동하고 사용 가능해야 합니다. 코드의 작동이 시작되기 전, 데이터 수집 및 준비가 필요합니다.

머신 러닝 엔지니어는 알려진 예측 가능한 방식으로 모든 머신 러닝 애플리케이션을 구성해야 합니다. 또한 데이터 버전의 관리도 필요합니다(일반 소프트웨어 엔지니어링과 차이가 큽니다).

머신 러닝 엔지니어링은 데이터와 관련한 다른 직무와 비교해도 매우 새로운 전문 분야이므로 거의 매일 수많은 새로운 도구가 등장합니다. 머신 러닝 엔지니어가 자주 사용하는 도구는 다음과 같습니다.

  • 데이터 버전 관리 도구(예: DVC)
  • 모델 지원 소프트웨어(예: MLflow)
  • 배포 도구(예: Kubeflow)
  • 모니터링 도구(예: MLWatcher)
  • 개인정보 보호 도구(예: PySyft)

머신 러닝 엔지니어들에게 가장 인기 있는 언어는 Python입니다.

데이터 과학자, 데이터 엔지니어 및 머신 러닝 엔지니어라는 직무는 단지 예라는 점을 염두에 주세요. 소규모 회사의 경우 한 사람이 데이터 과학자이자 엔지니어로 모든 데이터를 담당할 수 있습니다. 반면 대기업에서는 두 직무 모두에 다양한 하위 범주(예: 별도의 데이터 거버너 직무)가 있을 것입니다.

결론

빅데이터는 새로운 기회를 다양하게 제공합니다! 개발 및 자아실현을 위한 수많은 옵션이 존재합니다. 지금 여러분이 어떤 업무를 수행하든, 데이터 분야에서는 거의 모든 업무가 사용될 수 있습니다. 수학자, 엔지니어 및 Ops를 위한 업무가 있습니다. 한편 데이터 QA도 도전적이고 흥미로운 업무입니다.

빅데이터는 최첨단 시스템을 구축하는 특별한 기술적 도전일 뿐 아니라, 빅데이터를 통해 툴링의 지평을 넓히고 새로운 방식으로 도구를 재사용할 수 있습니다. 빅데이터 시장의 수많은 도구는 기억할 수조차 없고, 하물며 모든 도구를 사용해보는 것은 더욱 불가능합니다. 이는 흥미로운 일이기도 합니다. 호기심이 넘치는 분께, 데이터는 완전히 새로운 것을 만들거나 시도할 수 있는 좋은 방법이니까요!

댓글란이나 Twitter를 통해 여러분의 의견도 들려주시길 바랍니다.

유용한 링크:

이 게시물은 Pasha Finkelshteyn이 작성한 Big Data World, Part 2: Roles를 번역한 글입니다.

image description