본 글은 프로그래머스의 실리콘밸리에서 날아온 데이터 엔지니어링 스타트 키트 강의 내용을 간단히 정리한 글입니다
커리어 관련
- 이제 커리어는 사다리가 아니라 정글짐이다. 위로 갈때도 있고 아래로 갈때도 있고 옆으로 갈때도 있다. 연봉이 깎이는 것에 대해서 많이 두려움이 있을 수 있지만, 한 번 해보면 그다음은 어렵지 않을 수 있다.
- 성취하는 경험이란 몰입하는 경험, 결과를 내는 경험
- 결국 결과를 내는 사람이 성과를 내는 사람
- 결과를 내기 위해선 기술 자체가 중요한 것은 아니다. 기술을 배우는데에만 몰두하지 말자
- 문제정의를 잘해야 한다. 내가 지금 어떤 상황이고 성과를 내기 위해서는 무엇이 필요한가 생각하기
- 나만 생각하지 말고 결정권자 혹은 매니저와 함께 이것에 대해서 얘기해보기
데이터 팀의 역할 소개
Goals of Data Organization
Data Flow
데이터가 점점 많아지면 이를 수집하고 정재하여 잘 적재하게 하는 것이 필요해짐. 분석을 위해서 데이터 웨어하우스가 등장하고, 데이터 파이프라인이 많아지게 되면 이를 잘 관리하기 위해 에어플로우와 같은 스케쥴링 도구가 등장하게 됨. 또한 데이터가 너무 많아지면 이를 파이썬으로 처리할 수 없으니 스파크 등이 도입되는 것.
인프라가 만들어진 이후에 데이터 웨어하우스에 있는 데이터를 바탕으로 분석하여 시각화하고 비즈니스 인사이트를 뽑는 사람(다른 팀에서 여러 질문들을 던지면 데이터를 분석하여 알려주고)이 데이터 분석가.
데이터 과학자는 데이터 웨어하우스에서 데이터를 분석하여 개인화하거나 데이터 프로덕트를 만드는
🤬 그런데 대부분 주로 데이터 인프라가 필요하다는 것을 모름. 데이터를 보자 하면 데이터 분석가를 뽑고, 프로덕션 디비에 쿼리 날리고 그러다가 디비 뻗고. 그러면 회사에서 하지 말라고 회사에서 경고 날라오고. 그러면 분석가들을 뭐 어쩌라고 싶고 아이디얼한 회사는 인프라 → 분석 → 서비스 개선 (혹은 ML 모델링)인데 실제로는 그렇지 않음. |
데이터 엔지니어와 데이터 과학자가 밀접하게 일하기 시작하면 그게 ML엔지니어.
데이터 분석가도 단순히 시각화하고 인사이트를 뽑는데 그치는 것이 아니라 데이터 웨어하우스에 있는 데이터를 어떻게 하면 더 잘 가공할까 고민하며 dbt 같은 툴을 쓰기 시작하면 애널리틱스 엔지니어.
그다음 고도화되면 ML 모델을 지속적으로 트레이닝하고, 교체하고 모니터링하고, 그것이 MLOps.
privacy engineer 개인정보를 어디에서 쓰고 있는지, 법에 맞게 쓰고 있는지 체크하는 약간은 컨설팅 같은 느낌(실리콘밸리에는 있음)
데이터팀이 가치를 만들어내는 것.
- 데이터를 바탕으로 의사결정을 잘 하게 만드는 것.
- 데이터 과학자들이 패턴을 찾아서 서비스 자체를 개선하는 것
- 운영 비용을 줄이거나, 개인화를 하거나
데이터팀의 비전
- 에어비엔비: 신뢰할 수 있는 데이터를 가지고 레버리지(부가가치)를 만든다.
- 데이터를 팔아서 돈을 버는 회사가 아니면 회사의 부가가치를 높여주는 작업이 필요하다
- 의사결정을 더 잘할 수 있게 만들기 (오른쪽으로 갈까요, 왼쪽으로 갈까요, 지금은 어떤 위치에 있나요)
- data informed decision: 내 방향성이 있고 데이터를 참고하겠다!
- data driven decision: 내 생각 없이 데이터대로 가겠다 (이건 최적화밖에 못한다. 과거의 기록을 참고하기 때문에 최적화만 하고 혁신을 할 수는 없음)
- 프로덕트/서비스 개선
- 많은 경우 개인화, 추천
- 머신 러닝으로 운영 비용 줄이기 (오작동 기기 예측)
- 의사결정을 더 잘할 수 있게 만들기 (오른쪽으로 갈까요, 왼쪽으로 갈까요, 지금은 어떤 위치에 있나요)
⇒ 최근에는 데이터분석가가 직군으로 존재하다가 데이터 문해력이 좋아지고 툴도 많이 나오니까 의사결졍은 각 팀이 알아서 하려는 의지가 있음. 별도의 팀이나 직군이 아니라 우리는 우리가 직접할게가 되어가고 있음. 데이터 분석가는 점점 보편화되는 느낌이 있음. 모든 사람이 데이터 분석을 하는 느낌으로 바뀌고 있다.
Participants of Data Organization
데이터 사이언티스트 (product science)
- 알고리즘을 통해 고객의 경험을 개선시킬 수 있는 사람
- 예측 모델을 만들어 프로덕트의 퀄리티를 개선시킬 수 있는 사람
- 데이터를 찾고, 기획하고 이런 노가다들을 해야 하고 깊게 오래 끈기 있게 해야 함 → 박사 학위가 사실 그런 과정을 트레이닝한 경험들이 있어서 도움이 되는 경향이 있음.
- 머신러닝 잘 알아야 하고, 파이썬 sql 잘 알아야 하고
- 외부를 좀 더 바라보고 있음 (회사 외부, 즉 고객을 바라보고 있음)
데이터 분석가 (decision science)
- 주로 기업 내부 고객을 대상 (내부 팀으로부터 질문을 받아서 답을 하는 형태)
- 통계, 비즈니스 도메인 등
Dilemma of data analyst
- 내가 주도적으로 일하는게 아니라 사람들이 랜덤하게 던지는 질문을 던지면 거기에 답하는
- 별도의 데이터 팀이 없을 경우 그 안에서는 내가 올라갈 수 있는데 한계가 존재하기도 함. 따라서 조직 구조가 중요함. 그리고 데이터 분석이 보편화되는 부분이 있긴 함
Data Engineer
- 데이터 분석용 디비를 관리하는 사람. 관리란 문제 없이 돌아가게 운영하고 웨어하우스에 데이터를 적재하고 유지 보수하는 역할.
- 웨어하우스에는 redshift, bigquery, snowflake 많이 씀 spark, presto, hive 정도.
- redshift가 고정비용, 제일 싸긴 함. 성능은 제일 그닥. bigquery, snowflake는 좋긴한데 비쌈…
- ETL: 테이블 형태로 적재하거나 등등
- 분석가 등이 쓸 수 있는 데이터 툴을 만드는 경우도 있음.
Structure of Data Organization
Centralized
가장 좋은 조직은 데이터를 다루는 사람들이 모인 팀이 있는 것. 다른 부서와 논의를 하면서. 가장 행복하면서 중복 일을 줄이는 것. 근데 다른 부서들 입장에서는 속도감이 떨어진다고 생각할 수 있음.
Distributed or Decentralized
- 데이터 엔지니어는 보통 중앙에 남음. 업의 특성상 그럴 확률이 높음
- 근데 분석가들을 점점 분업화되고 위로 올라갈 수 있는 느낌이 없음. 팀의 서포트밖에 못하는 느낌. 똑같은 일을 각자 팀에서 중복된 업무도 하고, 각자 인프라 만들고 등등
Hybrid of Centralized and Distributed
가장 좋은 것은 하이브리드. 중앙 조직이 있고, 다른 부서와 협업을 할 때는 파견같은 것하고. 혹은 그 부서에 잘하는 사람 있으면 서포트하고. 그 팀의 능력에 따라 컨설팅하거나 파견하거나.
Case Study
데이터 팀 프로젝트
- setting up marketing attribution(기여도) pipeline
- 마케팅을 해야 하는데 가장 퍼포먼스가 좋은 채널과 캠패인이 무엇인지, 각 채널과 캠패인에 얼마만큼의 돈을 부어야 하는지.
- 보통은 채널을 고르고 균등하게 써보고 리턴 보고 최적화하는 것. 이것은 데이터가 핵심. 오늘 마케팅을 어떻게 하면 그 다음날 얼마나 클릭해서 얼마나 샀는지. api 가져다가 우리가 돈을 얼마나 썼고 광고가 몇 번이나 노출되고 클릭했는지 가져오고, 내부에서는 어떤 광고로 들어왔는지 얼마나 구입했는지. 이게 굉장히 큰 데이터 파이프라인. 리포팅 자동화하는 것. 퍼널의 모든 단계에서 데이터가 수집되어야 함. 많은 파이프라인이 필요하고 궁극적으로는 시각화도구에 나와야 함.
- 초창기 스타트업과 데이터 팀에 중요한 업무
- how to detect fraud payments at udemy?
- 타 강사가 일부러 비방 리뷰하는 경우, 이상 거래 탐지하는 것
- personalizing weight alerts at a health startup
- 주치의에게 알림이 가게 하는 웨이트를 개인화
- personalizing recommendation at udemy
- 마케터들의 룰 베이스에서 ml 베이스로 가게 하는 것
- ab테스트 시스템을 만드는데 굉장히 많은 품이 들게 됨. 이게 있어야 정확한 수치 측정이 되어야 함.
Data Should Drive Bussiness Result
- 결국 매출에 기여를 하거나 그게 티가 나야 함. 아니면 조직이 위험해짐. 그래서 ab 테스트가 중요한 것. ml로 바뀌어서 5프로 매출이 바뀌었다고 확실히 보여줘야 함.
- 인프라를 만드는 것에 대한 필요성을 모르는 경우가 많기 때문에 경영진을 교육시켜야 함
- 인프라를 구축하는 것이 가장 첫번째여야 한다.
- 데이터의 품질이 중요하다. 우리가 어떤 데이터를 가지고 있는지 파악하는 것이 가장 첫번째. 데이터 분석가는 70%를 데이터를 찾고 얼마나 신뢰할 수 있는지 고민하는 것. 따라서 메타데이터, 데이터 디스커버리가 중요해지는 것
- 성공 실패 지표가 필요하다.
- 곁다리: 문제가 얼마나 복잡한지, 그것을 어떻게 해결할지에 대해서 결과를 내는데 집중하는게 아니라 써보고 싶은 기술에 집중하는 경우 회사에서 인정받지 못하게 됨
- 간단한 솔루션일수록 좋음: 도메인에 맞게, 문제의 복잡도에 맞게 설정. 문제를 잘 정의하고 가장 간단한 방법으로!
'Data Engineering' 카테고리의 다른 글
[실날데] 실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트 - 3주차: Introduction to Airflow (0) | 2023.07.30 |
---|---|
[실날데] 실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트 - 3주차: 데이터 파이프라인을 만들 때 고려해야 할 점 (0) | 2023.06.22 |
[실날데] 실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트 - 3주차: 데이터 파이프라인이란? (1) | 2023.06.18 |
[실날데] 실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트 2주차 - 빅데이터 세상에도 SQL은 중요할까? (0) | 2023.06.15 |
[실날데] 실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트 1주차 - Redshift 소개 (1) | 2023.06.09 |