데이터엔지니어링 스타터 키트 -1주차 리뷰
아래의 내용은 직접 유료강의를 수강하고, 배운점 및 추가로 공부한 내용을 기록한 내용입니다.
프로그래머스에서 진행하는 실리콘밸리에서 날아온 데이터엔지니어링 스타터키트 강의추전!
1.강의소개
강사 및 수강생 소개
배움의 패턴
- 공부하는 시간만큼 실력이 늘다가 언젠가 정체기가 온다 -> 그때를 잘 버텨야한다!
- 어떻게 이겨낼 것인가?
- 버팀, 적어도 3~6개월 풀타임공부.
- 내가어디에서 막혔는지 자문하고 질문하기
- 잘하는 사람 보고 기죽지 않기, 남하고 비교하지 않기
[요즘 나의 생각]
사실 요즘 '질문을 통해서 성장한다' 는 역시나 진리구나.. 를 다시한번 생각하게 되었다.
반전이게도 내가 성장하기보다 타인을 통해서 깨닫고 반성하게 되었다.
다른 교육강의를 들으면서 프로젝트를 진행하고 있는데 나를 제외한 팀원모두가 비전공자이다.
그러다보니 다들 잘 해결되지 않는 부분이 많으신데, 그때 그 고난이 닥쳐왔을때 2가지 부류로 나뉜다.
한 부류는 자기는 실력이 너무 부족해서 부끄럽다며 혼자 끙끙대는사람ㅠㅠ
또다른 부류는 자기는 실력이 너무 부족하니까 알려달라며 계속 질문하는 사람!!
나는 사실 원래 전자였다.
나의 실력이 드러나까봐 숨기기에 급급하고 , 잘하는 사람한테 늘 기가 죽어있고, 비교해서 너덜너덜해진..
그런데 지금 상황에선 내가 질문하는 입장이 아니다보니까 조금 새롭게 느껴졌다.
그래서 전자 부류의 팀원이 너무 답답하고 먼가 짠하고 안타깝고 도와주고 싶고 막 그랬다.
그리고 후자 부류의 팀원도 마찬가지였다.
같이 문제를 해결하고 싶어서 한 4시간 고민한거 같다....
계속해서 물어보면 내가 아는 선에서 최대한 알려주고 싶었다.
중간중간마다 이 팀원도 포기하고 싶었다고 했는데 나는 계속 할수있다는 희망을 주었다.
뭔가 예전에 내가 질문할때 제대로 안알려주고 피하기 급급했던 선배가, 항상 안된다며 부정적으로 초치던 선배가
휘리릭 머릿속에 지나가면서 나는 그러지 말아야겠다는 생각이 들어서 그랬는지도 모르겠다. (반면교사의 올바른 예?)
그래서 결국엔 해결이 되었을때 너무나도 뿌듯하고 왠지머르게 감동이였다..큽ㅠ
결국 전자부류나 후자부류나 모두 같이 질문하고 해결해내갔지만
성장성?을 봤을땐 후자 팀원이 진짜 성장하는게 눈에 보였다.
물론 내가 이걸 판단할 정도의 짬(?)은 아니지만 그냥 뭔가 내 느낌에 그래보엿다랄까..
어느순간 이제 이분이 전자부류의 팀원한테 알려주고 있더라..! 왠지모르게 내가 다 뿌듯함..
아무튼간 갑자기 이렇게 개인적인 이야기를 하게 되었는데
결국엔 배움의 패턴 속에서 늘 항상 정체기가 생길텐데, 그땐 '질문' 하는 것과 '자존감'이 정말 중요한것 같다.
남들과 비교하지 않고, 정말 이 문제를 해결하기 위해 고민하고 질문을 통해 학습해나가면 된다.
나는 나만의 길을 간다! 그러니까 모두 포기하지 말고 끝까지 해보장! 해보자 해보자 후회없이~
2.데이터팀
데이터팀의 역할
부가가치를 만들어내는팀, 뭔가 갈림길에 섰을떄 데이터기반으로 결정할 수 있도록 도와주는 역할
- data infomed decision : 내가하고싶은일이 있고,그걸함에 있어서 데이터를 참고할게
- data drived decision : 내생각은 없고, 데이터가 하라는대로 할게 => 주로선호
데이터조직원
이부분은 빅데이터를 지탱하는 기술 책의 내용을 참고했다.
데이터 인프라를 먼저 만들어야한다.
강의를 통해 '데이터팀'이 없는(?) 뭐랄까 데이터를 그렇게 중요하게 생각하지 않는 회사(?)의 현실을 들었다.
그리고 데이터분석가의 현실(?)이라 해야하나 그 고생과정이 되게 현실적이이라 이해하기 쉬웠다.
결국엔 데이터인프라를 먼저 만들어야하고, 그래서 데이터엔지니어가 필요하다!
데이터엔지니어가 데이터인프라를 구축하면,
데이터분석가가 데이터를 기반으로 지표를 계산해서 대시보드를 만들거나 시각화
더 나아가 데이터과학자(머신러닝 엔지니어)는 데이터를 가공해서 미래를 예측하는 머신러닝 모델을 만든다.
결국 서비스의 사용자 경험을 개선
3.데이터엔지니어
데이터엔지니어가 하는일
- 데이터웨어하우스 관리
- 데이터파이프라인 작성 및 관리
- ELT 또는 ELT 작업
- 로그를 직접 수집하기도
데이터엔지니어에게 필요한 기술
- SQL : hive, presto,sparkSQL
- 프로그래밍 : python/scala/java
- Spark
- 머신러닝 통계지식 있으면 좋음
- 클라우드지식 : redshift/emr/s3/sagemaker(AWS) , bigquery/ml engine (GCP)
- 스케쥴러 : airflow, crontab
데이터팀 빌딩과정
1. 데이터가 얼마 없을땐, 데이터인프라도 굳이 필요없음 : 별도의 디비를 따로 만들어 관리
2. 데이터가 어느정도 생기면 , 어느순간 데이터 접근 및 분석 한계 : 데이터인프라를 만들어야겠다는 필요성을 느낌
3. 데이터가 점점 많아지니까, 데이터인프라 구축시작 : 데이터웨어하우스 만들고 관리
4. 흩어져 있는 데이터를 수집해서 데이터웨어하우스에 적재 : 다양한 소스에서 데이터를 가져와서 한곳에 모음
5. 데이터가 쌓이기 시작 : 외부/내부에 있는 데이터를 읽어서 데이터웨어하우스에 적재하기 위한 파이프라인 개발/관리
6. 데이터를 사용하기 쉽게 요약테이블(데이터마트) 및 시각화 : 여러 팀에서 이 데이터를 가지고 모델링, 의사결정
QnA
1. 백엔드 개발자(엔지니어)와 차이점은?
하는 일의 대상? 고객?이 다르다.
백엔드 개발자는 서비스가 잘 돌아가기 위해서 일을 하고, '서비스사용자'(enduser)에게 바로 영향이 간다.
반면 데이터엔지니어는 데이터를 통해 의사결정을 잘할 수 있게 하거나, 모델링을 위한 데이터를 만들어주는 일을 한다.
그래서 내부facing한 일이다보니 서비스사용자에게 바로 영향이 가지 않고, 주된 고객이 '내부 직원'들이 된다.
내부DB에 있는 데이터를 수집해서 DW에 적재하거나 할때 데이터엔지니어는 백엔드 개발자와 부딪히기도 하고,
다른 팀들에게 데이터를 활용할 수 있도록 지원해줘야하기 때문에 여러가지 팀들과 협업하는 일이 많다.
함께보면 좋은내용
2021.08.16 - ETL VS ELT? 요즘엔 ETL에서 ELT로 흐름이 바뀌고 있다?@!
2021.03.10 - 데이터파이프라인(datapipeline)이란?
2020.01.23 - 데이터파이프라인/데이터프로덕트/수집/정제 용어정리
'Book & Lesson' 카테고리의 다른 글
[Spark강의2] Spark의 실시간/배치 (0) | 2021.08.18 |
---|---|
[Spark강의1] Spark의 개념과 활용 (0) | 2021.08.18 |
[데엔스터디2] 데이터엔지니어링을 위한 데이터웨어하우스(RedShift) (0) | 2021.08.15 |
[데엔스터디0] 신청계기와 커리큘럼 그리고 얻고 싶은 것! (0) | 2021.08.14 |
[책정리] 빅데이터를 지탱하는 기술 6.1 Spark를 사용한 트위터분석 (1) | 2021.07.16 |
[책정리]빅데이터를 지탱하는 기술 5.3 스트리밍형 데이터플로우 (0) | 2021.07.11 |