본문 바로가기

책/견고한 데이터 엔지니어링

Part 1. 데이터 엔지니어링 기반 구축하기 (3)

반응형

 

1.2 데이터 엔지니어링 기술과 활동 

데이터 엔지니어의 기술 역량에는

1. 보안,

2. 데이터 관리,

3. 데이터 옵스,

4. 데이터 아키텍처 및 소프트웨어 엔지니어링

 

이렇게 4가지의 데이터 엔지니어링의 '드러나지 않는 요소'가 포함된다 

 

이러한 기술 역량을 사용하려면 데이터 도구들을 평가하는 방법과 데이터 엔지니어링 수명 주기 전반에 걸쳐
이 도구들이 어떻게 조합되는지 알아야함 

 

 

 

원천 시스템에서 어떻게 데이터를 처리하고 선별한 후에 분석가와 데이터 과학자가 이를 어떻게 소비하고 가치를 창출할지 파악하는 것도 중요함 마지막으로 데이터 엔지니어는 수많은 복잡한 가변적 요소를 처리하고 

 

비용, 민첩성, 확장성, 단순성, 재사용성, 상호 운용성의 축에 따라 
지속해서 최적화를 수행해야함 



최근까지 데이터 엔지니어는 데이터 솔루션을 구축하기 위해 몇몇 강력하고 모놀리식한 기술을 사용하는 방법을 알고 이해해야 한다

이러한 기술을 활용하려면

1. 소프트웨어 엔지니어링

2. 네트워킹

3. 분산 컴퓨팅

4. 스토리지 또는 기타 저수준의 세부사항을 정교하게 이해해야한다 

 

이들은 클러스터 관리와 유지 보수, 오버헤드 관리, 파이프라인 작업 과 변환 작업 생성 들의 업무를 담당한다 

 

오늘날 데이터 도구 환경은 관리 및 구현하기에 훨씬 간편해졌다 최신 데이터 도구는 워크풀로를 상당히 추상화하고 단순해짐

또한 새로운 트랜드가 출현함에 따라 진화하는 민첩한 데이터 아키텍처를 구축하리라 예상됨 

 

 

 

1.2.1 데이터 성숙도와 데이터 엔지니어

기업 내 데이터 엔지니어링 복잡성의 수준은 기업의 데이터 성숙도에 따라 크게 달라진다.

 

 

데이터 성숙도에 대해서 알아보자 

 

데이터 성숙도 

데이터 성숙도는 조직 전체에 걸쳐 더 높은 데이터의 

1. 활용률 

2. 기능 

3. 통합 

 

이렇게 3개를 향해 나아가는 과정이지만, 단순히 기업 연혁이나 매출에 따라 결정되지는 않는다 

 

데이터는 회사를 가리지 않는다 다만 대기업이 상대적으로 유리할뿐 
 이 또한 데이터를 잘 축적해놓았으면 가능이지 
이것또한 안하고 단순 연차만 높다고 좋다는건 절대로 아니다 


여기서 가장 중요한건 결국 데이터가 경쟁 우위로 활용되는 방식이다 

 

이마트 신세계가 어떻게 쿠팡한테 밀렸는지 보면 답이나온다 

 

 

데이터 성숙도 모델에는 데이터 관리 성숙도[data management matunrity](DMM) 등 여러 종류가 있음 

엔지니어링에 유용하면서 단순한 모델을 하나만 고르기는 쉽지 않음 

 

그래서 이 책에서는 우리만의 단순화된 데이터 성숙도 모델을 만들고자함 

  1. 데이터로 시작하기
  2. 데이터로 확장하기
  3. 데이터로 선도하기 

 

1단계: 데이터로 시작하기

데이터를 이제 막 시작하는 기업의 정의상 데이터 성숙도 모델의 초기 단계에 있다. 

회사에는 애매모호하고 느슨하게 정의된 목표가 있거나, 아예 목표가 없을 수도 있다

데이터 아키텍처와 인프라는 계획 및 개발의 초기 단계에 있으며, 채택 및 활용률은 낮거나 아예 존재하지 않을 가능성이 있다 

 

데이터 팀의 규모는 작으며 대개 한 자릿수의 인원을 보유함

 

이 단계에서 데이터 엔지니어는 보통 제너럴리스트이며,
데이터 과학자나 소프트웨어 엔지니어 등 여러 가지 다른 역할을 수행한다
데이터 엔지니어의 목표는 빠르게 움직이고, 견인력을 얻고, 부가가치를 창출 하는 것이다 

 

 

데이터로부터 가치를 창출하는 일의 실용성은 일반적으로잘 알려지지 않았지만.

그 수요는 존재한다 보고서나 분석에는 형식적인 구조가 결여되어 있으며, 데부분의 데이터 요청은 일시적으로 이뤄짐 

 

이 단계에서는 ML에 먼저 뛰어들고 싶겠디만, 권장하지 않는다 섣부르게 구축하지 못한 상태에서 뛰어들다 여러움이 많기 때문이다 

 

그렇다고 해서  `데이터로 시작하기` 단계에서 ML로 성과를 못낸다고 할 수 는 없는데 드물지만 가능하긴 하다 

하지만 확실한 데이터 기반이 없다면 신뢰할 수 있는 ML 모델을 학습할 데이터도, 이러한 모델을 확장 및 반복 가능한 방식으로 운영환경에 도입할 수단도 없음 우리는 적잘한 데이터 성숙도나 엔지니어링 지원 없이 성급하게 데이터 과학 프로젝트를 진행하면 우스겟 소리로 

회복중인 데이터 과학자라 부르기도 함 

 

 

데이터로 시작하는 조직의 데이터 엔지니어는 다음과 같은 사항에 중검을 두어야한다.

  • 경영진을 포함한 주요 관계자로부터 지원을 받을 수 있어야 한다 (이거 사실상 팀장이 잘 설득할 수 있어야함.... 신입이나 년차가 얼마 안된 사람이 이걸 할 수 있을지는 미지수임)
    • 데이터 엔지니어는 아키텍처를 구축하고 시스템을 만들어야하는데 경영진 입장에서는 이 집단은 돈쓰는 하마와 같다고 생각할께 뻔하다... 
  • 적절한 데이터 아키텍처를 정의한다 ( 데이터 아키텍처가 없을 가능성이 높으므로 보통 홀로 진행함) 이는 데이터 이니셔티브를 통해 달성혀러는 경영 목표와 경쟁 우위를 결정한다는 의미로, 이러한 목표를 지원하는 데이터 아키텍처를 구축한다 
  • 주요 이니셔티브를 지원하면서 설계한 데이터 아키텍처 내에서 작동할 데이터를 확인하고 검수

 

팁 

  • 데이터로 가시적인 성공을 많이 만들지 못하면 조직의 의작 약해질 수 있다 (근데 이건 어느 부서든..)
    • 조기에 성과를 거두면 조직 내에서 데이터의 중요성을 확립될 것 하지만 조기 성공은 기술 부채를 야기할 수 있음 
  • 내부에 갇혀서 작업하는 것을 피하고, 밖으로 나가 사람들과 대화하라 우리는 종종 데이터 팀이 부서 외부 사람들과 소통하고 경영 이해관계자들이 관점과 피드백도 들어보지 않은 채 고립된 환경에서 일하는 것을 볼 수 있다 
  • 구분 되지 않는 과중한 업무들을 감당하지 않도록 주의하자 불필요한 기술적 복잡성에 얽매이지 말자 가능하다면 기성 턴 키 솔루션을 사용하다 
  • 경쟁 우위를 창출할 수 있는 경우에만 맞춤형 솔루션과 코드를 구축하자 

 

 

2단계: 데이터로 확장하기

이 시점에서 기업은 임시 데이터 요청에서 벗어나 공식적인 데이터 요청 관행을 가진다 

-> 다음 과제에서는 확장성 있는 데이터 아키텍처를 구축하고, 기업이 진정으로 데이터 중심인 미래를 계획하는 것이다 

 

데이터 엔지니어링 역할은 일반 기술자에서 전문가로 전환되며, 
사람들은 데이터 엔지니어링 수명 주기의 특정 측면에 초점을 맞춘다 

데이터 성숙도 2단계에 진입한 조직에서 데이터 엔지니어의 목표는 다음과 같다.

  • 공식적인 데이터 관행 수립
  • 확장성 있고 견고한 데이터 아키텍처 구축 
  • 데브옵스 및 데이터 옵스 관행 채택 
  • ML을 지원하는 시스템 구축 
  • 차별화되지 않는 과중한 업무는 피하고, 경쟁 우위를 확보할 떄만 커스터마이징 

주의 깊게 살펴볼 문제는 다음과 같다 

  • 데이터가 점점 정교해짐에 따라, 실리콘밸리 기업들은 사회적 검증에 기반한 최첨단 기술을 채택하고 싶다는 유혹이 생기는데 대부분 시간과 에너지를 적잘히 사용하지 못하는 경우가 많다 모든 기술적 의사결정은 고객에게 제공하는 가치에 따라 결정되어야함 
  • 확장의 주요 병목 현상은 클러스터 노드, 스토리지 또는 기술이 아니라 데이터 엔지니어링 팀이다 
    • 팀의 처리량을 확장하려면 배포와 괸락 쉬운 솔루션을 채택하는 것이 좋음 

 

 

3단계: 데이터로 선도하기 

이 단계에서 기업은 데이터 중심이다 데이터 엔지니어가 작성한 자동화된 파이프라인과 시스템을 통해, 사내 직원은 셀프서비스 분석과 ML을 수행할 수 있음 새로운 데이터 원천을 매끄롭게 배포하고 실질적인 가치를 창출할 수 있다. 데이터 엔지니어는 사용자와 시스템이 항상 데이터를 활용할 수 있도록 돕는 적절한 제어와 실질 사례를 구현함 데이터 엔지니어는 사용자와 시스템이 항상 데이터를 활용할 수 있도록 돕는 적절한 제어와 실질 사례를 구현함 데엔 또한 더 싶이 전문화 되는건 확실 

 

 

 

성공적인 데이터 엔지니어는 

항상 전체적인 큰 그림을 이해하고 비니니스 가치를 극대화 하는 방법을 파악하고자 한다 
커뮤니케이션은 기술자와 비기술자 모두에게 필수 요소

데이터 팀은 다른 이해관계자와의 커뮤니케이션을 바탕으로 성공하는 경우가 많음
따라서 성공이나 실패 여부가 기술적인 이슈에 따라 결정되는 경우는 거의 없음 


 

 

1.2.4 기술 책임

미리 패키지화된 컴포넌트 또는 자체 개발한 컴포넌트를 사용해 성능과 비용을 높은 수준으로 최적화 하는 아키텍처를 구축하는 방법을 이해해야 한다 궁극적으로, 아키텍처와 구성 기술은 데이터 엔지니어링 수명 주기를 지원하는 구성 요소다 수명 주기의 단계를 다시 살펴보자 

  • 데이터 생성 
  • 데이터 저장
  • 데이터 수집
  • 데이터 변환 
  • 데이터 서빙

데이터 엔지니어링 수명 주기의 드러나지 않는 요소는 다음과 같음 

  • 보안
  • 데이터 관리
  • 데이터 옵스 
  • 데이터 아키텍처
  • 오케스트레이션 
  • 소프트웨어 엔지니어링 

 

데엔 직군이 코딩이 필요하면 그건 당연한건데 

최근 들어 완전 관리형 서비스는 과거 엔지니어들에게 욕되던 수많은 저수준 프로그래밍 작업을 상당 부분 대체하게 되었음 이제 엔지니어는 관리형 오픈 소스와 단순한 플러그 앤 플래이 SaaS 제품을 사용함 

 

데이터 엔지니어는 이제 고수준의 추상화에 주력하고 오케스트레이션 프레임워크 내에서 파이프라인을 코드로 작성하는 작업에 더 집중함 

 

 

더 추상적인 세계에서도 소프트웨어 엔지니어링의 모범 사례는 경쟁 우위성을 제공함 

코드베이스의 상세한 아키텍처를 깊게 들여다볼 수 있는 데이터 엔지니어는 특정 기술 요구 사항이 발생했을 때 기업의 우위를 제공함 

 

 

반응형