[GN#106] 스타트업에서 데이터 팀 만들기

2021-07-12 ~ 2021-07-18 사이의 주요 뉴스들
기술에 친숙한 스타트업일수록 데이터 기반으로 의사 결정을 하는 데이터 드리븐 회사가 되기를 원합니다. 그 최종 목적지라고 할 수 있는 데이터 문화를 만드는 것은 정말 어려울 수 있으니, 그 첫 단계로 데이터 팀을 만드는데요. 데이터 팀만 만들면 뭔가 알아서 착착 잘 될 거라고 기대하지만, 마음대로 잘 안 되죠. Better 라는 모기지(mortgage) 회사의 CTO인 Erik Bernhardsson이 연 매출 100억 정도의 스타트업이 데이터 팀을 꾸려가는 과정을 통해서, 조직이 데이터 기반으로 바뀌어 가는 여정을 잘 설명한 글이 있어서 요약해 봤습니다. 모두 글의 주인공처럼 마지막에 샴페인을 터뜨리길 기원합니다.

회사 내의 엔지니어들이 많아지면, 엔지니어들의 커리어 패스 관리를 어떻게 해야 할까 고민을 하게 됩니다. 구글은 레벨1 ~ 11 까지의 Software Engineer Ladder와 레벨5 ~ 12까지 있는 Software Engineering Manager Ladder가 있다고 하고, 아마존도 비슷하게 L4~L10 단계가 있다고 알려져 있는데요. 드롭박스가 엔지니어들 경력 성장을 위한 프레임워크를 정리해서 공개했습니다. 단순히 승진을 위한 체크리스트가 아닌, 각 단계에서 어떤 일들을 하고 뭘 기대하는지 등을 알 수 있도록 설계했다고 합니다. 소프트웨어 엔지니어를 비롯한 QA, SRE, MLE 및 엔지니어링 매니저까지 별도로 제공하고 있으니 참고하시기 바랍니다.

세계에서 가장 유명한 액셀러레이터인 Y Combinator가 Top 167개 회사를 정리해서 발표했는데요. 2016년 YC 출신이기도 한 센드버드에서 정리해서 인사이트를 뽑아 주셨습니다. 167개사의 합산 기업가치가 400조라고 하니, YC의 영향력이 어느 정도인지 쉽게 알 수 있었습니다. 제가 GeekNews를 만드는 기초가 되어준 HackerNews와 무료 온라인 스타트업 프로그램인 Startup School도 YC가 운영하는데요. 국내에서도 저 정도로 성공한 투자자들이 좀 더 많아져서, 직접 투자뿐만 아니라 스타트업 에코시스템에 대한 투자가 이루어지면 좋을 것 같아요.


✓ 사내 커뮤니케이션 도구들에 GeekNews Bot을 추가해서 편하게 새 글을 받아보시고, 멤버들에게도 공유해주세요. : Slack Bot, 잔디 Bot, MS Teams Bot, Discord Bot
✓ 주위분들께 긱뉴스 위클리 - https://news.hada.io/weekly 를 추천해 주세요.

매주 월요일 아침, 지난 일주일간의 GeekNews 중 엄선한 뉴스들을 이메일로 보내드립니다.


스타트업에서 데이터 팀 만들기

- 연 매출 100억 규모 Mid-Stage 스타트업에 4명 정도 소규모 데이터 팀을 키우기 위해 합류한 사람의 이야기
- 몇 번의 경험에 의한 비유적인 글이며, 편향적*일 수 있으니 고려하고 읽을 것

7월 1일 : 아침
- 데이터팀 책임자로 출근 첫날
- CMO와 인사
ㅤ(CMO는 내가 왔다는 사실에 매우 흥분하고 있음, 자기 친구네 회사가 AI를 이용해서 고객 세그멘테이션을 하고 있는데 멋져 보인다고 얘기함)
ㅤ(간단한 얘기 후 마케팅팀의 데이터 프랙티스를 조사)
ㅤDATA: "고객 확보 비용 (CAC)은 어떤가요 ?"
ㅤCMO: "음.. 실제로 아주 훌륭해요. 우리 데이터 사이언티스트가 수치를 측정해보니 클릭당 비용이 점점 줄고 있어요"
ㅤDATA: (모든 데이터 사이언티스트는 데이터 팀에 보고한다고 들었는데, 다른 조직에 데이터 사이언티스트가 있다고?)
ㅤCMO: "진짜 문제는 Growth 팀이 우리가 사이트로 가져오는 트래픽을 다 전환시키지 못한다는 거에요"
ㅤDATA: "컨버전 퍼널을 볼수 있는 대시보드가 있나요 ?"
ㅤCMO: "리드를 전환하는 건 Growth 팀의 일이잖아요."

- Product Manager 중의 한명과 대화
ㅤ시작 페이지를 전체 재설계한 PM은 사용자 등록수가 14%나 증가했다고 흥분했음
ㅤDATA: "그 숫자의 차이가 통계적으로 유의미 한가요 ?"
ㅤPM: "그건 내 일이 아니고 당신의 팀이 할 일이죠"
ㅤPM: "우리가 전에 물었을 때는, 데이터 팀에서 데이터가 없다고 얘기했고, 데이터를 얻는데 몇달이 걸릴 거라고 했어요"
ㅤPM: "놀라운 건 이걸 인크리멘털하게 변경하지 않았다는 거에요. 우린 이 변경에 대해서는 A/B테스트를 하지 않기로 했어요. 가끔은 극값(Local Maxima) 를 벗어 나기 위해선 큰 베팅을 해야해요."
ㅤPM: "스티브 잡스는 iPhone 런칭할때 A/B 테스트를 하지 않았어요. 우리 팀은 마감 2일전에 이걸 런칭했고, 그게 중요한거죠!"
ㅤDATA: (바빠 보이는 척 노트에 끄적인다)

- 새로운 팀 멤버들과 대화
ㅤ→ 3명 팀이지만 연말까지 10명으로 늘릴수 있는 예산을 받았음
ㅤ→ 내가 와서 팀원들은 흥분한 듯
ㅤ→ 기존에 만든 것들을 보여줌. 꽤 많은 것들이 있고 그 중 일부는 멋짐
ㅤㅤ✓ 사용자 이탈 예측(Churn Prediction)을 위한 신경망
ㅤㅤ✓ 관련 상품 추천 시스템이 구현된 노트북
ㅤ→ 많은 코드가 다양한 시스템에서 데이터를 가져와야 하는 매우 복잡한 전처리 단계로 시작
ㅤㅤ✓ 이 작업중 일부를 수행하려면 올바른 순서로 수동으로 실행해야 하는 여러 스크립트가 있는 것 같음
ㅤ→ 팀원들에게 왜 프로덕션에 도입하지 않았는 지를 묻자
ㅤㅤ✓ 엔지니어들이 이걸 프로덕션 레벨로 하려면 매우 큰 프로젝트라고 얘기함
ㅤㅤ✓ Product Manager 가 백로그에 넣기는 했지만, 다른 일이 계속 발생해서 미뤄지는 중
ㅤㅤ✓ 이를 위한 경영진의 지원이 필요하다고 얘기함

7월 1일 : 오후
- 공급망 책임자(Head of Supply Chain)와의 대화 ( 그는 CMO 만큼은 흥분하진 않는듯 )
ㅤ"솔직히 데이터 팀의 도움이 필요한지 모르겠어요"
ㅤ"우린 그런 종류의 문제가 없거든요. 우리에게 필요한 건 비즈니스 분석가에요"
ㅤ"저에게는 전체 팀이 있고, 그들은 매우 복잡한 모델에 작업하는데 매일 몇시간씩 쓰고 있어요"
ㅤ"그들은 내가 가진 기본적인 질문에 대답할 시간조차 없어요."
ㅤ"전 답변을 구하고 싶은 질문들로 가득 찬 스프레드 시트가 있어요"

ㅤ(스프레드 시트를 보니 이런 것들이 있다)
ㅤ"고객이 티켓을 발행하고 1시간 내에 해결된 고객과, 1시간 이후에 해결된 고객의 전환율 비교를 주문 금액 $100 달러 간격으로 분류하기"

ㅤ(모델에 대해 물어보니)
ㅤ- 수많은 VLOOKUP 들로 구성된 구글시트에 올바른 형식으로 알맞는 탭에 복사 해야하는 것 같음
ㅤ- 데이터는 매일 업데이트 되고, 모델의 출력에 따라 팀의 그날 우선순위가 결정
ㅤ- 공급업체(벤더)들에게 나가는 비용도 스프레드 시트로 계산하고 있음

(집에 가서 위스키 한잔을 가득 따른다.. )

[ 무슨 일이 있었던 걸까 ?]
- 이건 기본적으로 데이터 성숙 단계에 있는 초기의 많은 회사에서 일어나는 일에 대한 (다소 냉소적인) 묘사임

- 데이터 부족 및 조각난 데이터
ㅤ→ 제품이 제대로 계측(Instrumented) 되지 않아서 데이터가 처음부터 존재하지 않는 경우가 많음
ㅤ→ 데이터가 여러 시스템에 분산되어 있는 데이터 시스템 단편화
ㅤ→ 데이터 드리븐으로 실행은 되지만 자동화가 거의 또는 전혀 없는 취약한 비즈니스 프로세스

- 데이터 팀의 업무가 무엇 인지에 대한 불명확한 기대
ㅤ→ R&D를 하고 AI를 배포하기 위해 고용된 데이터 사이언티스트 - 결과적으로 명확한 비즈니스 목표가 없음
ㅤ→ 데이터팀은 ML을 프로덕션화하기 어렵다고 불평하지만, 정작 제품팀은 그 기능에 별로 신경을 쓰지 않음
ㅤ→ "English-to-SQL 번역기"가 필요한 사람들

- 데이터 드리븐 트레이닝이 되지 않은 제품팀
ㅤ→ 프로덕트 매니저는 데이터를 더 좋은 기능을 구축하기 위한 도구로 생각하지 않음
ㅤ→ 제품팀이 구축하고자 하는 것과 데이터팀이 가진것 사이의 얼라인이 부족

- 근본적으로 데이터 중심 문화와 상충하는 문화
ㅤ→ 측정 가능한 발전과 학습을 축하하는게 아닌 배포(Shipping)를 축하하는 문화
ㅤ→ 실제로 메트릭을 사용하는 팀들도 일관되지 않고, 측정이 제대로 이루어지지 않으며, 경우에 따라선 다른 팀과 충돌함

- 데이터 리더십 없음
ㅤ→ 다양한 데이터 인력들이 여러 다른 부서(기능)들에 보고하는 분열된 데이터 조직
ㅤ→ 다른 부서들은 필요한 도움을 받지 못하므로 데이터 팀을 둘러싸고 많은 분석가를 고용
ㅤ→ 툴체인 및 모범사례의 표준화 부족

(와 이건 우울하다. 이 문제를 해결하기 위해선 어떤 일을 해야할까)

7월 8일
- 다음주 부터 데이터팀의 새로운 방향을 세우기 시작
- 한명이 인프라에 경험이 있는 것 같으니 그에게 Centralized 데이터 웨어하우스 구축하게 함
- 당장은 데이터를 한 곳으로 모으기 위한 가장 빠른 경로만 있으면 됨
- 계획은 기본적으로 매시간 마다 프로덕션 DB를 데이터 웨어하우스에 덤프 하는 것
- 프론트엔드에서 광고 추적 트래킹에 사용하는 프레임워크에서도 방대한 이벤트 로그를 보낼수 있지만 그건 기술부채로 담아두기

- 채용팀과 함께 Generalist Data Role 정의
ㅤ→ 핵심 소프트웨어 기술을 강조하지만, Generalist(모든 것을 다 하는) 적인 태도와 비즈니스 요구사항에 대해 깊이 공감할 수 있는 사람
ㅤ→ 당장은 인공지능 및 머신러닝에 대한 모든 언급은 제거함

- 데이터팀에 보고하지 않는 다른 데이터 인력들과 시간을 보냄
ㅤ→ 마케팅 팀에 있다는 데이터 과학자는 젊은 사람이었음. "저는 항상 데이터 사이언티스트가 되고 싶었어요. 당신에게 많이 배우고 싶어요"

- 코딩 부트캠프를 운영하는 친구에게 좋은 "SQL 교육 강의"가 있는지 물어봤고, 있다고 해서 이달 말에 도입하기로

- 제품팀을 위해서 A/B 테스트 가 무엇이고 어떻게 동작하는지를 설명하는 발표자료 작성
ㅤ→ 예상치 못한 결과가 나온 테스트의 많은 예를 보여주고,
ㅤ→ 어떤 것이 이겼는지 추측해 볼 수 있게 인터랙티브 하게 작성

- CEO의 비서를 만나서 "매주 자동 발송되는 이메일을 통해서 보고 되었으면 하는 지표들"을 알아내기

- Supply Chain 팀의 비즈니스 분석가들과 얘기해보니, 합리적인 사람들인데 이전에 데이터팀과 얘기하면서 상처를 입었음
- 그들중 한명은 과거에 SQL을 사용한 경험이 있었음. 그가 전환율에 대해 질문하는 걸 보고 데이터 웨어하우스 접근권한을 줌

- 데이터를 필요로 하는 조직 전체의 사람들과 주간 1:1 미팅을 셋업
ㅤ→ 요점은 데이터 격차(Gap)와 기회들을 찾아서 데이터 사이언티스트에게 보내는 것
ㅤ→ 데이터 사이언티스트 들은 연구 우선순위가 밀리므로 실망할 수 있음
ㅤ→ "가능한 한 빨리 비즈니스 가치를 제공하는데 집중" 이라고 말하면서도 "곧 머신러닝관련 작업으로 돌아갈 수도 있어요. 일단 보시죠" 라고 얘기함

9월 1일 : 아침
- 3개월이 지나고, 이제 조금씩 일이 되어가는 것 같은 느낌
- 다양한 이해관계자들과 매주 1:1로 미팅하면서 데이터가 변화를 일으킬수 있는 사각지대와 기회를 계속 찾음
- 찾은 것들을 핵심 플랫폼 작업에 강제하도록 이용
- "파생된" 데이터 세트를 만들려면 많은 파이프라인을 구축해야함. 초기 비용이 많이 들지만 올바른 데이터셋이 만들어지면 후속 분석이 훨씬 쉬움

- 다른 부서들에 데이터 웨어하우스 액세스를 개방 시작
- 직접 SQL을 사용해서 기본 분석을 하기 시작
ㅤ→ 훌륭했던 일 : 쥬니어 프로덕트 매니저가 iOS Safari 의 전환율이 엄청 나쁘다는 것을 발견. 로컬스토리지 관련 프론트엔드 버그였고 한줄로 수정되었음

- 공급망 책임자가 화난 이메일을 보냄
ㅤ→ 데이터베이스가 변경되어서 500줄짜리 쿼리가 실패한다는 것..
ㅤ→ 투덜대는 데이터 사이언티스트에게 수정을 맡기고 다른 당근을 매달아줌 "이번 달 말에 멋진 머신러닝 문제를 찾아줄께요"

9월 1일 : 오후
- 아직 체크아웃팀의 제품 관리자는 메트릭 분석은 하지 않고 있음
- 마케팅팀의 데이터 과학자가 매니저와 얘기해서 나에게 직접 보고하기로 함

[ 무슨 일이 일어나고 있을까 ? ]
- 가장 시급한 것들의 기본 토대를 마련 하는 중
ㅤ→ 중요한 데이터를 한 곳에서 쿼리가능하게 함
ㅤ→ SQL 접근을 개방하고 다른팀에서 사용하도록 해서 많은 "SQL 번역" 일들을 없앰
- 반대로 다른 팀은 이런 자유 때문에 더 멀리가려고 할 수도 있음. 데이터 접근에 권한을 설정해서 방지할수는 있지만 단점이 더 많음
- 체크아웃팀이 데이터 분석을 못한것은 누구에게 물어봐야 할 지를 몰랐기 때문
- 이건 주로 조직의 문제임
ㅤ→ 팀들은 데이터 팀과 협력하는 방법을 모름
ㅤ→ 깨닫지 못하지만 데이터팀이 병목일 수도 있음
- 가장 합리적인 것은 "보고는 중앙 집중화 하고, 작업 관리는 분산화 하는 것"
ㅤ→ 데이터와 결정이 더 긴밀한 피드백 루프를 생성하기 때문
ㅤ→ 데이터 팀 멤버들이 각각의 팀에서 협업하고 보고만 나(데이터팀 리드)에게 할 수 있도록

9월 2일
- 데이터 팀이 6명으로 늘어남
ㅤ→ 1명 데이터 웨어하우스 인프라
ㅤ→ 5명은 각각 팀에 할당 : 온보딩, 공급망, 체크아웃, 마케팅, CEO 지원및 투자자/이사회용 발표자료 작성
- 전사에 변경을 설명하고, 데이터 요구 사항을 위해서는 누구와 일해야 하는 지를 명확히 함
- 앞으로 데이터 인력은 뽑더라도 다른 팀에 할당할 계획

1월 3일
- 데이터 사이언티스트 한명이 떠나기로 함. 그가 즐거워할 일도 많지 않기 때문에 잡지 않기로 함
- 팀에는 새로운 사람들이 많음. 약간의 소프트웨어 엔지니어링 지식과 SQL, 그리고 데이터에서 흥미로운 것들을 찾고자 하는 사람들
ㅤ→ 데이터에서 "특종"을 찾는 사람들이니 "데이터 저널리스트" 라고 생각
- 온보딩 팀과 작업하는 멤버의 경우
ㅤ→ 온보딩 흐름에서 고객 주소가 필요하지 않아도 주소를 묻는 것을 발견
ㅤ→ 이걸 제거하면 A/B 테스트에서 전환율이 21% 증가
ㅤ→ 데이터를 쿼리하기 쉽게 하기 위해 ETL 작업이 필요해서 쉽지는 않았지만, Python 이 살짝 도와서 가능해졌음
- CEO 와 분기 보고
ㅤ→ 성장 이니셔티브 에서 PM이 새로 런칭한 랜딩페이지 재 설계를 소개
ㅤ→ PM은 20명의 엔지니어 들이 마감을 맞추기 위해서 초과 근무를 하고 있다고 강조
ㅤ→ CMO도 이 재설계의 일환으로 Direct Mail 에 큰 기대를 걸었기 때문에 깊게 관여하고 있음
ㅤ→ CEO의 질문 "현재 지표는 어떻습니까? 고객 확보 비용이 줄어들었습니까 ?"
ㅤㅤ(당신은 CEO가 이런 질문을 하길 기대했는데 딱 나와서 미소 지음)
ㅤ→ PM은 실제로 A/B 테스트를 진행했다고 부록에 있는 숫자들을 보여줌
ㅤ→ 일부 지표는 상승하고, 일부는 하락해서 유의미한 결과를 보여주는 결과가 없음, 고객 확보 비용 수치는 안 좋아 보임
ㅤ→ CMO는 아직 숫자는 만들어 가는 중이며, 이런 캠페인은 몇 달이 걸릴 수 있다고 강조

[ 무슨 일이 일어나고 있을까 ? ]
- 좋은 소식은 제품 팀이 A/B 테스트를 하기 시작했다는 것
- 나쁜 소식은 결과를 무시하고 프로젝트가 대부분 마일스톤과 인위적인 데드라인에 맞추도록 진행된다 는 것
- 최고의 소식은 CEO가 각 팀들이 데이터가 진실(truth)로 사용되도록 푸시하고 있다는 것

- 조직이 더 데이터 드리븐이 되도록 압력을 받게 되면, 데이터 팀이 다른 팀과 협력하는 방식을 가속화 해야 함
- 특히 최고 경영진들은 더 지표에 집중하게 되고, 데이터 팀이 이런 지표들을 작업하도록 하는게 당신의 일
- 가장 간단한 방법 하나는 각 팀들이 중요시 하는 지표에 대한 대시보드가 있는지 확인 하는 것

4월 1일
- 데이터 팀에서 수행했던 예전 머신 러닝 작업들은 아직 그대로 있음
- 인벤토리 제품 팀에서 일하는 데이터 사이언티스트가 예전에 만든 추천 시스템 작업들에 관심을 가지고 있음
- 새로 뽑은 멤버중 한명으로 Generalist 인 사람이어서, 추천 시스템 노트북을 작은 Flask 앱으로 만들어서 내부에 배포했음
- 인벤팀의 제품 관리자가 보고 좋아함 "이거 어떻게 배포하죠?"
- 인벤팀의 주요 지표중 하나는 "평균 주문 금액" 이고 이 추천이 그걸 크게 개선 할수 있을 것으로 봄
- 짧은 추정으로도 크게 배포하는 건 어려울 것 같지만, "고객중 1%에만 배포해보면 어떨까요?" 라는 아이디어를 냄
- "멍청하지만 Cron Job으로 추천 제품들을 미리 생성해두면 되고, 며칠 안에 만들수 있을 것 같아요"

- 공급망 팀과 일하면서 더 많은 거대한 SQL 쿼리들을 발견
- 계속 깨지고 있지만, 데이터 팀이 이걸 적절한 파이프라인으로 변환 작업중
- 공급망 팀 헤드가 더 많은 데이터 사이언티스트를 고용해 달라고 요청

[ OK, 무슨 일이 일어나고 있는건가요 ? ]
- 먼저, 멋진 기계 학습 작업에 대한 희망이 생겼음
- 제품팀이 드디어 추천 시스템을 작은 테스트로 런칭 하는 것에 흥분해 있음
- 예전에는 제품 엔지니어링팀이 작업을 예측하기 힘들고, 직접 기여하기 원치 않았고, 데이터팀이 프로덕션화할 스킬이 없었으므로 진행할 수가 없었던 일
- 이 문제를 해결 한 것은 데이터팀이 실제로 데모를 구축했기에 가능한 것. 이렇게 하면 프로덕션에 가까워 질 뿐 아니라 가능성을 명확하게 보여줌

- 또 하나는 공급망 팀에 일어나는 일
ㅤ→ 자체 "비즈니스 분석가" 로 시작했지만, 데이터를 얻기 위해서는 데이타 팀이 쿼리를 실행해줘야 했음
ㅤ→ 분석가들이 데이터팀의 도움을 받아서 직접 쿼리를 실행하기 시작
ㅤ→ 먼저는 데이터팀과 마찰이 생겼던 "그림자 기술 부채"(괴물 같은 크기의 SQL 쿼리)를 없애기 시작
ㅤ→ 데이터 팀이 공급망 팀에 붙어서 돕기 시작
ㅤ→ 데이터 팀 멤버가 임베딩 되면서 비즈니스 분석가의 필요성은 줄어들고 데이터 과학자들이 증가함

- 처음에 프로덕션 DB를 데이터 웨어하우스에 직접 덤핑하기 시작할때 "기술 부채"을 떠맡았음을 기억할 것
- 처음에는 많은 것들이 깨지지만 안정적으로 쿼리하도록 하는 레이어를 추가 해야함. 굉장히 많은 일이 될수 있음

7월 1일
- 3분기 기획회의
ㅤ→ 에전에는 다음 분기에 회사가 뭐에 베팅할 지를 논쟁했음
ㅤ→ 이번에는 당신이 회사의 최상위 지표들을 발표하고, 각 팀들이 서브 지표들을 통해서 최상위 지표들을 세분화 해서 발표
- 제품관리 팀 작업이 성과를 내었음
ㅤ→ PM이 테스트를 실행하면서 배운 내용이나 데이터에서 발견한 내용에 대해 이야기 하면서 프로젝트에 대한 투자를 정당화
- 큰 성과는 체크아웃 팀과 일하는 데이터 과학자가 사용자가 확인페이지에서 뒤로 가기 버튼을 눌렀을 때 장바구니 개체가 이상하게 되는 것을 발견했다는 것
ㅤ→ 이 문제를 해결하자 전환율이 크게 상승 되었음
- 또 다른 인사이트는 서로 다른 광고 캠페인을 통해서 온 트래픽들이 매우 다른 전환 프로필을 가진 다는 것
ㅤ→ 일부 캠페인은 클릭 가격이 쌌지만 전환율이 끔찍했고, 다른 캠페인은 비용이 많이 들었지만 전환율이 매우 높았음
- UTM 변수를 추적하고 계정 생성에 연결해서, 광고 클릭에서 구매까지의 전환율 측정이 가능해졌음
ㅤ→ 모든 데이터를 같은 데이터 웨어하우스로 가져와서 쉽게 쿼리할 수 있도록 정규화 하기 전에는 불가능 했음
ㅤ→ 마케팅과 협력을 통해 주요 KPI는 클릭당 비용이 아닌 End-to-End 고객 확보 비용임
- 또 다른 재미난 소식은 1% 추천 시스템 테스트가 이례적으로 성공했다는 것
ㅤ→ 사용자의 100%까지 확장하는 것은 매우 큰 프로젝트이지만 CEO가 프로젝트를 승인했음
- 모든 결과물이 긍정적인 것은 아니고, 많은 테스트는 실패했음.
ㅤ→ 슬라이드중 하나는 배송비가 별도로 청구되지 않고 가격에 포함된 테스트에 대한 설명이었음
ㅤ→ CEO가 이렇게 말함 "여기서 무엇을 배웠습니까?"
ㅤ→ 이건 다시 일련의 후속 실험을 계획하는 대화로 이어짐

(집에 가서 샴페인을 터뜨림)

[ 무슨 일이 일어난거지 ?]
- 당신이 해냈습니다.
- 조직을 진정한 데이터 네이티브로 변화 시켰습니다.
- 데이터 팀은 다양한 이해 관계자와 교차 기능적으로 작업합니다.
- 데이터와 인사이트가 계획에 이용되고, 데이터는 목표가 불분명한 연구가 아닌 비즈니스 가치를 창출하는데 사용됩니다.
- 회사는 빠른 데이터 기반 피드백 주기를 이용해서 대규모 "워터폴" 스타일 계획 대신 반복적인 방식으로 작업 합니다.
- 지표들은 비즈니스 가치를 만들고 그에 대한 책임감을 가질 수 있는 방식으로 정의됩니다.
- 데이터 문화는 위(CEO가 추진하고)와 아래(직원들)로부터 양쪽이 함께 주도 합니다.
- 적어도 무언가를 배웠다면 실패해도 괜찮습니다.

(축하합니다. 당신은 샴페인을 들 자격이 있어요)

편향적(Opinionated)* 에 대해서는 깔끔하게 번역이 어려운데, 저는 주로 "자신의 의견이 반영되어 편향적이다" 의미에서 "편향적" 으로 쓰긴 합니다.
이에 대해서 다른 분이 적은 글이 있으니 참고하세요
- 컴퓨터 용어로서의 opinionated(편향적)의 의미 https://www.clien.net/service/board/cm_app/13558026

그리고, 원래 글은 내용이 풀어 써져 있는데, 조금 읽기 쉽게 대화체로 재구성했습니다.

 
드롭박스의 엔지니어링 커리어 프레임워크

- 엔지니어의 경력을 성장시키기 위한 방법을 정리한 프레임 워크
- 승진 체크리스트가 아닌, 각 단계에서 어떤 모습일지 파악하는데 도움 되도록 설계
ㅤ→ 레벨 기대치 : 업무 범위, 협업 범위, 임팩트 레버
ㅤ→ 핵심 행동과 기술 책임
* 임팩트 : 엔지니어의 성공을 비즈니스 임팩트로 측정. "고객에게 더 나은 서비스를 제공하는 것"
ㅤ→ 일관성(Consistency), 속도(Velocity), 책무성(Accountability)

- 분야별로 레벨을 분리하고 항목들을 정리
ㅤ→ 레벨 : IC1 ~ IC4 일반, IC5 Staff, IC6 Principal, IC7 Senior Principal
ㅤ→ 레벨 기대치 : Scope, Collaborative Reach, Impact Levers
ㅤ→ 결과 : 임팩트, 오너십, 의사결정
ㅤ→ 방향 : 민첩, 혁신, 전략
ㅤ→ 능력 : 개인적 성장, 인재 채용, 능력 개발
ㅤ→ 문화 : 협동, 조직의 건강, 커뮤니 케이션
ㅤ→ 기술 : (분야별 주요 기술들) - 코드/ML/System/Testing Fluency, 소프트웨어 설계, 기술 전략, 아키텍처 디자인, 보안,

- 분야별 프레임워크
ㅤ→ Software Engineer : IC1 ~ IC7
ㅤ→ QA Engineer : IC1 ~ IC5
ㅤ→ Reliability Engineer (SRE) : IC1 ~ IC7
ㅤ→ Machine Learning Engineer : IC1 ~ IC5
ㅤ→ Security Engineer : IC2 ~ IC6
ㅤ→ Technical Program Manager : IC1 ~ IC6
ㅤ→ Engineering Manager : M3 ~ M7 ( M5 Senior, M6 Director, M7 Senior Director )

 
2021 와이콤비네이터 탑스타트업 (167개)의 모든 것

7월에 공개된 Y Combinator의 탑 컴패니 리스트(167개 스타트업)를 분석해서 인사이트를 정리한 글.

YC 탑 컴패니: https://www.ycombinator.com/topcompanies

1. 167개 사의 합산 기업 가치는 약 400조 원이다.
2. 이 중 161개 회사는 비상장이다.
3. 비상장 스타트업 중 상위 10개 회사의 합산 기업 가치가 전체의 51%인 200조 원 정도이다.
4. 50위권 안팎으로 유니콘이라고 불리는 10억 달러의 기업 가치의 스타트업이 있다.
5. 59%는 Bay Area에 본사기 있고 17%는 다른 미국 지역에 본사를 두고 있다.
6. 14개의 스타트업은 사무실이 없고 원격 근무로만 운영한다.
7. B2B 소프트웨어/서비스 부문이 약 44%이다.
8. 탑 컴퍼니는 1년에 두번(2월/7월) 발표하는데 현재 정확한 기업가치와는 약간 차이가 있다.
9. 2021년 리스트에는 2016년도 기수가 가장 많이 포함되어 있다.
10. 기업가치가 10억 달러인 20개 스타트업을 보면 C 라운드까지 누적 2,500억 원을 평균적으로 투자받았다.

YC가 저렇게 성공적으로 이끈 회사들이 많아서 (돈을 많이 벌었으므로) 다른 프로젝트들로 에코시스템에 기여하는 일들을 할수 있다고 생각합니다.
- 해커뉴스 : https://news.ycombinator.com/
- 스타트업 스쿨 : https://www.startupschool.org/
- 코파운더 매칭 플랫폼 : https://www.startupschool.org/cofounder-matching

국내에서도 저 정도로 성공한 투자자들이 좀 더 많아져서,
직접 투자뿐만 아니라 에코시스템에 대한 투자가 이루어지면 좋을 것 같아요.

 
SQLBolt - 인터랙티브 예제로 SQL 배우기

- 브라우저에서 SQL을 직접 실행하면서 빠르게 학습 가능
1: SELECT queries 101
2~3: Queries with constraints
4: Filtering and sorting Query results
5: Simple SELECT Queries
6: Multi-table queries with JOINs
7: OUTER JOINs
8: A short note on NULLs
9: Queries with expressions
10~11: Queries with aggregates
12: Order of execution of a Query
13: Inserting rows
14: Updating rows
15: Deleting rows
16: Creating tables
17: Altering tables
18: Dropping tables

Stripe가 다수의 사람들(변호사들 포함)이 분석을 하기위해 SQL을 배우는데 이 사이트를 추천한다고 하네요

 
EdgeDB - 개발자를 위한 차세대 오픈소스 ORDB

- PostgreSQL 위에 만든 객체 관계형 데이터베이스
ㅤ→ 엄격한 선언형, Typed Schema : EdgeDB SDL
ㅤ→ SQL과 비슷하지만 쉽고 강력한 쿼리 언어 : EdgeQL
ㅤ→ Schema 자동 Migration 기능 내장
ㅤ→ GraphQL 지원 내장
ㅤ→ ORM 들보다 훨씬 빠른 속도
- TypeScript/JavaScript, Python, Go, Deno 공식 라이브러리 제공
- 리눅스/맥/윈도우에 1줄 스크립트로 설치 지원

EdgeQL 문법이 특이한데 엄청 편해보이긴 합니다.
- https://www.edgedb.com/docs/tutorial/queries

왜 EdgeQL을 만들었는지 설명한 글도 적어놨네요.
- [We Can Do Better Than SQL](https://www.edgedb.com/blog/we-can-do-better-than-sql)

 
The Logfile Navigator

- 터미널에서 로그파일을 별도의 서버나 설정 없이 쉽게 볼 수 있게 해주는 도구
- 폴더만 지정하면 알아서 파일 포맷을 인식해서 처리 (압축된 파일도 실시간으로 해제)
ㅤ→ Web Access Log, CUPS page_log, Syslog, Glog, dpkg.log, uwsgi 및 Timestamp 로 시작하는 일반적인 로그 모두
ㅤ→ 폴더안의 모든 로그를 하나의 뷰로 묶어 보기
ㅤ→ 타임라인 뷰 : 워닝/에러를 시간대별로 그래프로 묶어 보기 한 후 상세 보기 가능
ㅤ→ XML/JSON 등 Pretty-Print 지원
ㅤ→ SQL 문장으로 로그 쿼리 가능 (SQLite Virtual Table 이용)
ㅤ→ 글자 타이핑할 때마다 실시간 쿼리 가능 (새로 추가되는 로그 줄도 검색에 포함됨)
ㅤ→ 구문 강조 : 에러(Red), 워닝(Yellow), SQL 키워드, XML 태그, Java 라인번호 등
ㅤ→ 탭 자동완성 지원
- 리눅스/맥 바이너리 제공

 
구글 코리아, 온라인 머신러닝 부트캠프 시작

- 머신러닝에 관심있는 개발자를 양성하여 관련 인력을 찾고 있는 국내 IT회사들에 연결
- 머신러닝 이론을 공부하는 것 뿐만 아니라 현업의 엔지니어링 문제를 해결하는 수준까지 이르는 것을 목표
- 약 4개월간 딥러닝 이론 과정, 머신러닝 자격증 취득, 실무 프로젝트를 수료
ㅤ→ 이수하면 국내 IT회사들에 정규직 혹은 인턴 머신러닝 개발자로 채용될 수 있는 기회 제공

1. 머신러닝 이론 과정 수료
- Deep Learning Specialization : Coursera(한글자막)

2. 머신러닝 관련 자격증 획득 : 세개중 하나 필수 취득, 응시료는 구글이 부담
- TensorFlow certification
- GCP Professional Data Engineer certification
- GCP Professional ML Engineer certification

3. 프로젝트 실습
- Kaggle Competition 참여

4. 머신러닝 회사와의 네트워크 형성 및 취업 연계
- Tech Talk, Career Talk/Resume Clinic, Meet up 등 진행
- 국내 15개사 : 11번가, 카카오 모빌리티, 스마일게이트, 보이저엑스, 넷마블, 롯데이커머스, 몰로코, 원티드, 쿠팡, 업스테이지, 네이버 클로바, 커먼컴퓨터, 비플랙스, 매스프레소, 뤼이드

 
DevTron - k8s용 소프트웨어 딜리버리 워크플로우

- 쿠버네티스 환경에서 어플리케이션을 운영 및 유지 보수 하는 오픈소스 셀프 서브 플랫폼
ㅤ→ Zero 코드 소프트웨어 배포
ㅤ→ 멀티 클라우드 배포 지원
ㅤ→ 쉬운 Dev-Sec-Ops 연동
ㅤ→ 어플리케이션 디버깅 대시보드
ㅤ→ GitOps 지원
ㅤ→ 세세한 접근 관리, 모든 CI/CD 이벤트 로그, Audit Log 지원
- 백엔드는 Go , 대시보드는 React + TypeScript

 
압축률이 100%에 가까운 원주율 파일 시스템


원주율의 소수점은 몇진법으로 쓰든 모든 숫자가 동일한 비율로 나타나는 normal number 라고 강력하게 추정됩니다.

normal number 라면 가능한 모든 숫자 조합을 포함하는 disjunctive sequence 라는게 증명돼 있습니다.

즉, 바이너리로 표현된 모든 컴퓨터 프로그램은 원주율 소수점 어딘가에 존재한다는 것이죠. 원주율 소수점의 위치만 찾아내면, 모든 정보를 저장하고 복원할 수 있게됩니다.

400줄 텍스트 파일을 저장하는데 5분정도 시간이 걸린다는데, 제작자는 무어의 법칙을 믿으면 된다고... 합니다.

 
RabbitMQ Streams

- Streams : RabbitMQ 3.9에 새로 추가된 데이터 구조
ㅤ→ 기존 큐와 달리 메시지를 삭제하지 않는 Append-Only 모델
ㅤ→ 데이터가 유지되고 복제됨
- Usecase
ㅤ→ 여러 어플리케이션이 동시에 같은 메시지를 받아야 할때
ㅤ→ 대용량 백로그 저장
ㅤ→ Timestamp 기준으로 Replay 및 시간여행 가능
ㅤ→ 기존 큐 대비 엄청 빠름
- 주요 기능
ㅤ→ 최소 1회 전송 보장
ㅤ→ 서버측 오프셋 트래킹 지원. 컨슈머가 원하는 부분부터 재시작 가능
ㅤ→ 무한 확장 가능. 크기/기간 기준 저장정책을 통해 삭제 지원
ㅤ→ 초고속의 전용 바이너리 프로토콜 및 AMQP 0.91 & 1.0 지원
ㅤ→ 클라이언트-서버 TLS 지원
ㅤ→ Java / Client 제공

Kafka 대신 작게 스트림 처리하고 싶을 때 사용하라는 거네요.
Redis Streams 랑 기존 인프라에 맞게 취사선택 하면 될 듯

 
MS, Windows 365 클라우드 PC 공개

- MS 클라우드에서 원하는 디바이스로 윈도우 10/11을 스트리밍하는 하이브리드 방식
ㅤ→ 모든 앱/데이터/설정을 클라우드에 저장하고 어디서나 그대로 사용 가능
ㅤ→ 맥/아이패드/리눅스/안드로이드등 기기 지원
ㅤ→ Microsoft 365, Microsoft Dynamics 365, Microsoft Power Platform 등 지원
- Azure Virtual Desktop 기반
- Zero Trust 아키텍처
- 8월 2일부터 사용 가능

 
Tech Giant가 되려면 뭐가 필요한가 ?

- 구글, MS, 애플, 아마존, 소니, 텐센트, 알리바바, 삼성, 네이버, 페이스북 같은 Top 20 기술 회사들이 가지고 있는 것들
1. AI 연구소 (100%)
2. 머신러닝 프레임워크 (95%)
3. 웹 어플리케이션 프레임워크 (85%)
4. 벤처캐피탈 (80%)
5~12. (75%) 웹브라우저, 데이터베이스, 모바일 OS, Payment, 쇼핑, 스마트 스피커, 스마트폰, 가상 비서
13~17. (70%) 실시간 비디오 스트리밍, 음악 스트리밍, 클라우드 스토리지, 소셜네트워크, 글꼴
18~22. (65%) 컴퓨터 칩, 클라우드 컴퓨팅, 모바일 어플리케이션 프레임워크, 실시간 메신저, 화상 회의
23~28. (60%) 앱스토어, 북 스토어, Emojis, 자율운전 자동차, 클라우드 게이밍, 비즈니스 커뮤니케이션 플랫폼,
29~34. (55%) Virtual Currency, 개발환경(IDE), 뉴스, 검색엔진, 무선 이어폰, 비디오 공유 플랫폼
35~42. (50%) 디자인 언어, 이메일 서비스, Embedded OS, 자동차 엔터테인먼트 시스템, 화상 통화, 개발 언어, 로봇, 번역
44~52. (45%) 이메일 클라이언트, 영화 스튜디오, 헬스 트래킹 플랫폼, 지도, 노트북(랩탑), 인터랙티브 노트북(Google Colab같은), 태블릿, 비디오 게임 스튜디오, 웨어러블, 웹캠
53~61. (40%) 캘린더, Desktop OS, Asset 트래킹, VOD 구독, 사진 관리 앱, 숏 비디오, 스마트 홈 플랫폼, 디지털 미디어 플레이어, 디지털 미디어 플레이어 OS
62~67. (35%) 증강현실 헤드셋, 전기자동차, 오피스 Suite, Stories (소셜미디어), 태스크 관리자, Wi-Fi Router
68~ JavaScript Engine, 근거리 공유 프로토콜, 노트 테이킹 도구, 팟캐스트 앱, 보안 카메라, 스타트업 억셀러레이터, 가상현실 헤드셋, 웹브라우저 엔진, VOD 서비스, 날씨 앱, 비디오 게임 구독

 
Earthly - 컨테이너 기반 빌드 자동화 도구

- 모든 빌드를 컨테이너를 통해 실행하여 자동화 및 언어 상관없이 동작하게 만들어주는 오픈소스
ㅤ→ 독립적, 재실행, 병렬 빌드 가능
ㅤ→ CI 에서나 로컬에서나 똑같이 빌드 실행/재실행 지원
- Earthfile 스크립트 사용
ㅤ→ Makefile + Dockerfile 형태의 장점만 가져온 친숙한 문법
ㅤ→ 캐쉬 가능(Docker 와 같은 캐쉬 기술 사용), 캐쉬는 클라우드를 통해서 공유 가능
ㅤ→ Repeatable Build

 
tilemaker - OpenStreetMap 데이터로 지도 벡터 타일 만들기

- OSM 데이터를 추출해서 나만의 지도 데이터를 생성하는 오픈소스
ㅤ→ 추출한 지도는 웹/앱에서 무제한으로 사용 가능
ㅤ→ Mapbox Vector Tiles 포맷
ㅤ→ MapLibre GL 로 웹/모바일에서 렌더링 가능
ㅤ→ 맥/윈/리눅스용 실행파일
- Lua 스크립트 지원
ㅤ→ 원하는 OSM Tag 선택 가능
ㅤ→ Zoom 레벨 조정 및 필터링
ㅤ→ 고급 처리를 위한 Spatial Query 가능
ㅤ→ 외부 Shapefile 데이터 추가 가능
ㅤ→ 기본 스크립트 제공
- C++ + Google Protocol Buffers, Boost, Lua, sqlite3, shapelib

 
Kool - 더 나은 로컬 개발 환경

- Docker를 이용해서 로컬 개발 환경을 더 쉽고 빠르게 만들어주는 CLI 오픈소스
ㅤ→ 복잡한 Docker / Docker Compose 설정 없이
ㅤ→ 다양한 언어와 프레임워크에 최적화된 커스텀 도커이미지 사용
ㅤ→ 여러 개의 로컬 환경을 구성하고 스위치 가능
ㅤ→ 로컬 작업을 외부에서 접속 가능하게 공유
- 기본 프리셋 제공
ㅤ→ PHP, Node.js, Laravel, AdonisJS, NextJS, NuxtJS, NestJS, Symfony, Hugo, Wordpress
ㅤ→ 초기 생성시 옵션 선택 가능 : 버전, 사용할 DB, 패키지 매니저 등

 
웹훅대신 /events 를 주세요

- 시스템 간에 연동을 위해서 WebHook을 이용하지만
ㅤ→ 서버 다운시의 문제나, 일시적이어서 잘못 처리하거나 손실 되기 쉬움
ㅤ→ 문제점을 없애기 위해 Kafka 등으로 버퍼링 할 수는 있지만 귀찮음
- 두 시스템의 동기화를 위해서 '/events' 엔드포인트 제안
ㅤ→ Stripe가 사용중인 API
ㅤ→ 지난 30일간의 모든 생성/변경/삭제에 대한 이벤트를 가져갈 수 있음
ㅤ→ 폴링을 통해서 원하는 시간에 필요한 만큼, 여러번이라도 가져가는게 가능
ㅤ→ 롱 폴링하면 부담도 줄일 수 있을 것

두 시스템 간의 동기화는 계속 논의되고 변경되어온 주제이긴 한데요. (논란도 많구요)
Stripe 의 /events API 가 신기해서 글 링크를 가져와서 올려봅니다.
저는 서버에 부담 주는 방식은 싫어해서 그닥 이긴 합니다만..
놓치면 안되는 결제 정보를 담고 있는 Stripe로서는 저게 데이터 신뢰도를 높일 수 있는 방법이지 않을까 생각이 드네요.

 
Wayback Machine 다운로더

- 웹사이트 전체/일부를 Internet Archive Wayback Machine 이 아카이빙한 자료에서 다운 받아주는 오픈소스
- 사이트의 최근 파일/전체 날짜별 파일/특정 날짜(from ~ to) 파일을 디렉토리 구조로 다운 받음
- index.html 페이지를 Apache/Nginx 에서 사용 가능하게 자동 생성
- Wayback Machine 이 수정한 버전이 아닌 오리지널 버전을 다운로드
- --list 옵션으로 다운로드 없이 URL 만 JSON으로 저장 가능
- Ruby 오픈소스

 
Microsoft, IoT for Beginners 강의 공개

- MS Advocates 팀이 만든 12주, 24강짜리 IoT 기초 강의
- 강의마다 비디오, 수업 전/후 퀴즈, 강의 문서, 프로젝트 기반 학습 및 단계별 가이드, 연습문제 등 제공
- 식품이 농장에서 식탁에 도달하는데 까지의 전체 과정을 통해서 IoT를 학습
ㅤ→ 농업, 물류, 제조, 소매, 소비자 등의 IoT 가 잘 쓰이는 분야를 모두 포함

- Microsoft, ML for Beginners 강의 공개 https://news.hada.io/topic?id=4564
- MS Beginner's Series to: Rust [유튜브] https://news.hada.io/topic?id=4517
- MS의 Rust 기초 가이드 [한국어] https://news.hada.io/topic?id=4095