일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 검정통계량
- Data Engineer
- 데이터분석가 로드맵
- 정성적 정량적
- 정형 데이터
- 정적 동적
- 대립가설
- Data Engineering
- 정형 비정형
- 데이터 과학
- 양측검정
- 가설검정
- 기술통계
- 귀무가설
- 데이터 종류
- 데이터분석가 공부
- Data Science
- 추론통계학
- 기각역
- 데이터 구분
- 통계 용어
- 데이터 분석가
- 견고한데이터엔지니어링
- 단측검정
- 통계 분석 방법
- 데이터엔지니어
- 통계 용어 정리
- 추론통계
- Data Analyst
- 데이터 분류
- Today
- Total
데이터 분석 공부 일기
[견고한 데이터 엔지니어링] 1.2 데이터 엔지니어링 기술과 활동 본문
해당 포스터는 [견고한 데이터 엔지니어링(저자 조 라이스, 맷 하우슬리)] '1.2 데이터 엔지니어링 기술과 활동' 부분을 정리한 내용입니다.
목차
1.2 데이터 엔지니어링 기술과 활동
1.2.1 데이터 성숙도와 데이터 엔지니어
1.2.2 데이터 엔지니어의 배경과 기술
1.2.3 비즈니스 책임
1.2.4 기술 책임
1.2.5 A에서 B로 이어지는 데이터 엔지니어링 역할의 연속성
1.2 데이터 엔지니어링 기술과 활동
데이터 엔지니어의 필요 역량
- 데이터 엔지니어링 수명 주기 전반에 걸쳐 어떤 데이터 도구가 적절할지 이해
- 원천 데이터 생성 시스템 이해
- 데이터 처리 및 선별 뒤, 데이터 소비자(분석가, 데이터 과학자)가 이를 어떻게 활용할지 파악
- 비용, 민첩성, 확장성, 단순성, 재사용성, 상호 운용성의 축에 따라 지속적으로 최적화
- 데이터 솔루션 구축을 위해 소프트웨어 엔지니어링, 네트워킹, 분산 컴퓨팅, 스토리지 또는 기타 저수준의 세부 사항을 정교하게 이해
1.2.1 데이터 성숙도와 데이터 엔지니어
데이터 성숙도(data maturity)란?
- 조직이 데이터를 얼마나 잘 활용하고 있는지를 측정하는 개념
- 조직이 데이터 기반 의사결정을 내리는 능력과 데이터를 효과적으로 관리, 분석, 활용하는 역량을 평가하는 지표
1단계 : 데이터로 시작하기
1단계인 기업의 특징
- 데이터 아키텍처와 인프라가 계획 및 개발의 초기 단계
- 데이터 팀의 규모가 작으며 대개 한 자릿수의 인원 보유
- 데이터 엔지니어가 데이터 과학자나 스프트웨어 엔지니어 등 여러 다른 역할을 수행
1단계인 조직의 데이터 엔지니어가 중점을 두어야 할 사항
- 주요 관계자로부터의 지원(스폰서 확보)
- 적절한 데이터 아키텍처 정의
- 주요 이니셔티브를 지원하면서, 설계한 데이터 아키텍처 내에서 작동할 데이터를 확인 및 검수
- 미래의 데이터 분석가와 과학자를 위해 견고한 데이터 기반 구축
주의 사항
- 데이터 부서 외부의 사람들과 소통, 경영 이해관계자들의 관점과 피드백 얻기
- 구분되지 않는 과중한 업무 피하기
- 경쟁 우위를 창출할 수 있는 경우에만 맞춤형 솔루션과 코드 구축하기
2단계 : 데이터로 확장하기
2단계 기업의 과제는 확장성 있는 데이터 아키텍처를 구축하고, 기업이 진정으로 데이터 중심인 미래를 계획하는 것
2단계인 조직의 데이터 엔지니어의 목표
- 공식적인 데이터 관행 수립
- 확장성 있고 견고한 데이터 아키텍처 구축
- 데브옵스 및 데이터옵스 관행 채택
- ML을 지원하는 시스템 구축
- 차별화되지 않은 과중한 업무를 피하고, 경쟁 우위를 확보할 때만 커스터마이징
주의 사항
- 데이터가 점점 정교해짐에 따라, 최첨단 기술을 채택하고 싶다는 유혹이 생김. 하지만 모든 기술적 의사결정은 고객에게 제공하는 가치에 따라 결정
- 배포와 관리가 쉬운 솔루션에 집중
- 데이터의 실질적인 유용성에 대해 다른 팀과 소통, 조직에 데이터 사용과 활용 방법 교육
3단계 : 데이터로 선도하기
3단계인 기업은 데이터 중심. 데이터 엔지니어가 작성한 자동화된 파이프라인과 시스템을 통해, 사내 직원은 셀프서비스 분석과 ML을 수행할 수 있음
3단계인 조직의 데이터 엔지니어의 수행 작업
- 새로운 데이터의 매끄러운 배포와 사용을 위한 자동화 구축
- 데이터를 활용하는 사용자 정의 도구와 시스템 구축에 주력
- 데이터 관리 및 데이터옵스와 같은 데이터의 '기업적' 측면에 집중
- 데이터를 조직 전체에 노출하고 전파하는 도구 배포
- 소프트웨어 엔지니어, ML 엔지니어, 분석가 등과 효율적으로 협업
- 협업과 공개적인 토론을 위한 커뮤니티와 환경 구축
주의 사항
- 현재 상태에 안주하지 않고, 항상 유지 보수와 개선에 집중
- 경쟁 우위를 제공하는 경우에만 직접 구축한 기술을 활용하기
1.2.2 데이터 엔지니어의 배경과 기술
데이터 엔지니어는 정의상 데이터와 기술을 모두 이해해야 함
데이터 측면 : 데이터 관리의 다양한 모범 사례 파악
기술 측면 : 데이터 도구들의 다양한 옵션, 상호 작용 및 상충 관계 이해
데이터 엔지니어는 데이터 소비자(데이터 분석가 및 과학자)의 요구 사항과 조직 전체에 걸친 데이터의 광범위한 의미 이해해야 함
1.2.3 비즈니스 책임
1) 비기술자 및 기술자와의 커뮤니케이션 방법 파악
- 조직의 계층 구조, 사람들과의 의사소통 방법, 어떤 사일로가 존재하는지 등에 관심
2) 비즈니스 요건과 제품 요건을 살펴보고 수집하는 방법 이해
- 무엇을 구축해야 하는지, 이해관계자의 동의 여부, 데이터 및 기술 결정이 비즈니스에 어떤 영향을 미치는지 파악
3) 애자일, 데브옵스, 데이터옵스의 문화적 기반 이해
- 조직 전체에 걸쳐 동의가 필요한 근본적으로 문화적인 요소
4) 비용 관리
- 가치 실현 시간, 총소유비용 및 기회비용에 맞게 최적화
- 비용을 모니터링하는 방법 습득 필요
5) 지속적 학습
- 새로운 기술과 트렌드 파악
1.2.4 기술 책임
성능과 비용을 높은 수준으로 최적화하는 아키텍처를 구축하는 방법을 이해해야 함.
데이터 엔지니어가 알아야 할 언어
1차 범주(주요 언어) : SQL, 파이썬, JVM 언어, bash 등
- SQL : 데이터베이스와 데이터 레이크의 가장 일반적인 인터페이스
- 파이썬 : 다양한 데이터 도구의 기저, '모든 면에서 차선책의 언어', 기본 컴포넌트 간의 접착제와 같은 역할
- JVM 언어 : 보통 파이썬보다 우수한 성능, 저수준의 특성에 접근 가능
- bash : 리눅스 운영 체제용 명령행 인터페이스. 윈도우의 경우 파워셸(PowerShell)로 대체
2차 범주(보조 언어) : R, 자바스크립트, 고, 러스트, C/C++, C#, 줄리아 등
- 사내에서 널리 쓰이는 인기 언어일 때, 도메인 고유의 도구와 함께 사용될 때 필요
1.2.5 A에서 B로 이어지는 데이터 엔지니어링 역할과 연속성
1) A형 데이터 엔지니어
- A는 추상화(abstraction)를 의미
- 데이터 아키텍처를 가능한 한 추상적이고 단순하게 유지하여 시간 낭비를 피함
- 주로 시판되는 기성 제품, 관리형 서비스와 도구들을 사용하여 데이터 엔지니어링 수명 주기 관리
- 데이터 성숙도 수준에 상관없이 산업계 전반에 걸쳐 다양한 회사에서 근무
2) B형 데이터 엔지니어
- B는 구축(build)을 의미
- 기업의 핵심 역량과 경쟁 우위를 확장, 활용할 데이터 도구와 시스템 구축
- 데이터 성숙도 수준에서 2단계(데이터로 확장) 및 3단계(데이터로 선도)에 해당
- 초기 데이터 사용 사례가 매우 독특하고 중요해, 작업의 시작을 위해서는 맞춤형 데이터 도구가 필요한 회사에서 근무
일반적으로 A형 데이터 엔지니어가 기반 확립을 위해 먼저 채용, B형 데이터 엔지니어 기술은 필요에 따라 학습하거나 인재를 고용함으로써 해결
★ QUIZ
☆란 조직이 데이터를 얼마나 잘 활용하고 있는지를 나타내는 개념으로, 이 책에서는 데이터로 시작하기, 데이터로 확장하기, 데이터로 선도하기 세 단계로 설명하였습니다. 여기서 ☆은 무엇일까요?