1주차 복습
데이터팀의 역할👩💻
첫 번째 주이니만큼 워밍업 느낌으로 데이터팀의 구성과 비전에 대한 설명이 주를 이뤘다.
- work process는 최근 Waterfall에서 Agile로 변화했다. 그러니 하나 끝났다고 끝이 아니라 다시 처음으로 돌아가서 점검하고 계획하고 개발하고 수정한다.

- Data Flow : 사이트에서 다양한 데이터 발생 → DE가 DW에 적재 → DA가 BI 추출 → DS가 모델링
그런데 스타트업의 경우는 이렇게 가는 경우가 거의 없이 대부분 DA나 DS 먼저 뽑아놓고 DE 부재를 뒤늦게 깨닫는다.
- DW를 만드는 툴 : Snowflake, Google BigQuery, AWS Redshift
Product DB
: 사이트 상에서 유저와의 커뮤니케이션 때 바로바로 필요한 데이터만 넣어놓는 가벼운 DB. MySQL, Postgre 등이 해당.
- 회사의 가치 = 매출. 하지만 데이터팀은 직접적으로 매출에 영향을 주기보다는 서포트 하는 역할. 따라서 회사 매출에 어떻게 기여할 수 있는가를 나타내는 지표가 필요하고, 그 지표를 통해 데이터팀의 존재 가치를 증명해내야 함.
- Data Informed Decision vs. Data Driven Decisions = 주관적 vs. 의존적 : Informed는 데이터를 참고로 활용. Driven은 데이터에 의존해서. Data가 절대적이기 위해선 미래가 과거와 똑같다는 대전제가 필요함. 펜데믹만 봐도 그럴 수 없으니 Informed Decision을 할 필요가 있음.
- 데이터 팀
- DE : 데이터 수집 및 관리
- DA : 시각화를 통한 business insight 도출
- DS : ML, DL 모델 수립으로 제품과 비용 최적화
- Analytics Engineer : DE + DA
- ML Engineer : DE + DS
- MLOps : DevOps + DS
- Privacy Engineer : 개인정보에 특히 전문적인 DE
- DS는 최근 코딩도 할 줄 아는 게 좋고, "석박"은 전공보다는 오래 연구하고 논문을 써 본 경험이 중요.
- DA는 고객이 내부의 매니저 계급. 조직내에서 생기는 데이터에 대한 여러 질문들에 답해야 함. 코딩보다는 통계적 지식과 도메인이 중요. 또한 조직 구조에 가장 영향을 많이 받는 직군.
- DE는 ETL을 통해 DW나 DL을 생성. 그리고 내부 팀에서 사용할 데이터 툴을 개발.
- 데이터팀은 중앙집중형, 분산형, 하이브리드가 있음. 분산형은 🈲🈲🈲🈲🈲
- 중앙집중형 : 데이터 팀이 따로 존재해서 각 부서에서 필요한 데이터들을 한 곳에서 처리. 도메인보다는 데이터 처리 기술에 집중하기 때문에 데이터 팀 직원들에겐 커리어에 도움.
- 분산형 : 각 부서에 데이터 담당 직원들이 분산되서 소속. 지식 공유나 기술 공유가 각 팀마다 안 됨. 대신 도메인은 늠.
- 하이브리드 : 중앙에 데이터팀이 존재하고, 각 부서마다 데이터팀 직원들이 파견되고 로테이션으로 1~2년 뒤 다른 부서로 이동.
- 스타트업의 초기 단계에서는 마케팅 기여도를 알기위한 툴을 DE들이 개발
- 데이터 수집이 모델링에 큰 영향. 그만큼 데이터 수집이 중요.
- 항상 모든 프로젝트를 진행할 때 제일 중요한 것은 성공과 실패의 기준은 무엇인가, 무슨 목적으로 하는가
- A/B 테스트가 중요함.
Done is better than Perfect
1주차 복습
AWS Redshift 기초👨🏫
-
Data Engineering
: DW 관리 + Data Pipelines 구축(Batch or Realtime) + Summary Data Generation(내부용) 생성
-
필요한 skill :
SQL
(Hive, Presto, SparkSQL 등) +
Programming Language
(Python, Scala) +
ETL/ELT Scheduler
(AirFlow) +
- 대용량 컴퓨팅 플랫폼 + 클라우드 컴퓨터 + 컨테이너 기술 +
- 그 외 통계적 지식
-
Production DB
vs. Data Warehouse
Production DB
: 이용자와의 transaction용(OnLine Transaction Processing). 처리할 수 있는 속도가 중요. ex) 구매기록, 회원가입
Data Warehouse
: 기업 내부 Aanalysis용(OnLine Anaytical Processing). 처리할 수 있는 크기가 중요. ex) 로그 기록
-
raw data를 Data warehouse에 넣는 건 ETL(Extract, Transform, Load)
, Data Lake를 만드는 건 ELT(Extract, Load, Transform)
- 내가 생각하는 ETL과 ELT는 MBTI 중에서 J와 P의 느낌.
- ETL은 데이터 수집 후 변환, 적재의 계획적이고 선수체크가 가능하지만 느리고
- ELT는 정형데이터든 비정형데이터든 일단 넣고 보고 나중에 필요할 때 꺼내 쓴다는 약간의 무계획적이지만 빠르고, Cloud computing의 발전으로 더욱 빠른 속도를 기대할 수 있음.
- 참고

고정 비용형
Data Warehouse vs. 가변 비용형
Data Warehouse :
- 전자는 Google BigQuery, Snowflake
- 후자는 AWS Redshift
AWS Redshift
- 2PB까지 🙆♂️
- OLAP(분석용. 고객응답용X).
- Columnar Storage : 컬럼별로 읽고 쓰고.
- bulk-update 가능
- 고정 비용형 DW
- Primary key의 uniqueness는 보장 🙅♀️ : 보장해주면 적재를 못 함. 퍼포먼스가 안 나옴.
- Postgresql 8.x 버전과 호환
- cluster 여러개 운영시, 처리해야 하는 레코드가 한 곳에 몰릴 수 있어 관리가 필요.(snowflake나 bigquery는 자동으로 관리해줌)
- Access하는 법 : 분석용 툴(태블로 같은)로 접근 or psycopg2로 접근 or SQL clients(디비버 같은)로 접근 or 코랩으로 접근