본문 바로가기
잡담

엘런 머스크, 트위터 아키텍쳐 리뷰하기

by 회색연필 2022. 11. 20.

11.19일 엘론머스크가 트위터에 글을 올렸다.

"Just leaving Twitter HQ code review"

최근 트위터 아키텍쳐를 들여다 보고 있는 모양이다.
그런데 누가 댓글에 이런 글을 인용한다.

"나는 트위터 엔지니어로서 확신하고 있다. 엘런 머스크는 우리 사이트나 코딩 전반에 대해 전혀 이해하지 못하고 있다. 거짓말하지 않고, 직원들은 뒤에서 정말 많이 비웃고있다. 우리는 그를 CEO라고 부르지만, 그건 Code Efficiency O(zero)의 약자다." @diana thirst, 2022.11.16

이 트윗이 16일에 올라오고, 엘런 머스크가 19일에 아래 트윗을 올렸다.
diana 가 잘렸냐, 안잘렸냐,
저 사람은 트위터 직원이 아니다. 등등
댓글들이 있는데 여기선 스킵하자.

다만 기자들이 기사화시키기는 했다. (관련 링크)

01. 코드리뷰

트위터 직원은 7,000명이 조금 넘는다.
네이버 직원수가 5,000명이 못되니까 꽤 많은 편이다.

엘런은 2,000명 수준까지 내리겠다고 했다.
조직이 비효율적라고 생각한거다.

인수를 했으니 기업가치를 올려야 한다.
경영권을 샀으니 하고 싶은 일이 있었을거다.

신사업를 하려면 기존 비용구조를 줄여서 투자비를 만든다.
현재 일은 축소시키거나 없애고 새로운 일을 만든다.

그러기 위해 모인 자리다.

37 명의 팀장들이 참석했다.
이 정도 자리라면 중요한 팀은 다 모였을거다.
Key Team 이 37개라는 이야기다.

음... 아니다.
임원 4~5명이 참석하고, 한팀당 2명씩 참석했을 수도 있겠다.
그러면 Key Team이 15개 정도된다.
그냥 적정한 팀 수 같기도 하다.

02. 회사실적

회사 비용구조를 찾아 본다.

R&D와 순비용이 많다.
이게 대부분 개발자 인건비이다.
꾸준히 50%를 차지한다.

하드웨어 산업기준이라면 인건비가 너무 높아보인다.
막 구조조정 하고 싶을 거다.

유혹에서 못 벗어난 느낌이다.
하긴 국내도 그렇다.
삼성전자가 SDS를 바라볼 때 느낌...

  • 매출 : 2021년 5억 달러 (7조원+)
  • 매출구조 : 92% 광고매출
  • 순익 : 2021년 적자 3,000억원
  • 활성화 : 미국기준 가입자 3,800만명, DAU 2억명
  • 특징 : 총 계정중 44%는 오픈만 하고, 한번도 트윗을 날리지 않았다.
  • SWOT 분석 : 관련링크
  • 세부통계 : 관련링크

03. 아키텍쳐

엘런 머스크가 함께 올린 사진이다.
트위터 전체 아키텍쳐인데 가고자 하는 방향을 알 수 있다.
몇개를 짚고 넘어가 보자.

(1) Federated Strato Column (관련 링크)

GraphQL은 페이스북이 2015년에 오픈했다.
Federated Strato Column은 트위터가 자체적으로 개발해서 쓰고 있던거다.

앱 회사가 잘되면 이런 요건은 생길 수 밖에 없나보다.

이건 화면 데이터를 Call 하고 싶을 때, 막 불러 쓰고 싶을 때 쓰는 거다.
다양한 DB 필드를 모아서 하나의 화면에 조합해서 뿌리고 싶을 때도 좋다.
JSON 보다 유연성이 높다.

TLS-API 는 점차 없앤다고 한다.
괜찮은 선택 같다.

GraphQL 같은 API language를 쓰면 다양한 Device 에도 대응하기 편하고 화면 개편할 때도 편하다.
암튼 프론트엔드 근처를 개발할 때 편하다.
사업에서 그럴 일이 있나 보다.

(2) Timeline Mixer 에서 Home Mixer로

타임라인 개념에서 Home 개념으로 바뀌는 것처럼 보인다.
개인화를 좀 더 풍부하게 하겠다는 선택 같다.

글쎄... 잘 모르겠으니 일단 좋게 보자.

  • manhattan : 트위터 분산 데이터베이스
  • gizmoduck : 대형 memcache 클러스터로 구성된 사용자 서비스
  • tweetypie : 지난달 트윗의 절반정도를 가진 memcache 클러스터, 내부 고객용으로 구축되었음
  • social graph : social network 를 보여준다.

(3) Mixer 개념

타임라인을 만들기 위해 데이터를 Mixing 하고, 그걸 Service 로 publish 하는 구조다.

트래픽 받는 부위와 조합하는 부위를 나누어 놓았다.
실시간은 포기하고 near real-time 전략을 쓴거다.
데이터와 사람이 많아지니 당연한 전략이다.
하지만, 그래도 되는 여건이니 부럽다.

(4) Score, Ranking

점수화를 하고, 거기에 맞춰 랭킹을 매기겠다는 건데...
Ranker 는 예측서비스와 이어진다.

사실 예측이 돈이 되는데, 트위터는 이걸 잘 못하는 느낌이다.
내가 몰라서 그럴 수도 있겠다.

하지만, 재미난 거 많이 나왔으면 좋겠다.
그동안 잭 도로시가 너무 방치한 듯한 느낌이다.

(5) CRMixer ...

EarlyBird : near real-time search
CrMixer, Utag, Space ... : something
작은 인프라들인 것 같은데 찾아봐도 안나온다.

(6) Feature Hydration

처음엔 Hydration "Feature" 인 줄 알았다.
좀 더 찾아보니 Feature "Hydration"라는 뜻이다.

Home scorer 가 필요한 데이터를 다양한 곳에서 읽어오도록 했다.
여러 시스템을 참조한다는 건, 다양한 유즈케이스를 소화하겠다는 거다.

전체적으로 Home 기능을 강화하겠다는 걸로 보인다.
사실 Home 이 타임라인인데, 이게 더 복잡해진다는 뜻.

(7) Thrift RPC

분산형 구조에서는 도입할 수 밖에 없는 구조이다.
이건 어쩔 수 없다...

옛날엔 이런 게 없어서 만들어 썼지만, 요즘은 이런게 있으니 혜자롭다.
Apache Thrift 면 유지보수 부담도 적어지니 안쓸 이유가 없다.

04. 리뷰 소감

(1) Mixing

Mixing 로직에 변화를 주겠다는건 수익원을 강화시키겠다는 거다.
지원하는 Device가 많아질수도 있고 노출되는 지면이 많아질수도 있다.
Mixing 되는 콘텐츠 타입이 많아질수도 있다.

그런데, 솔직히 트위터는 이미 닳고 닳은 서비스다.
노출되지 않는 곳이 없고, 지원하지 않는 사이트가 없다.

더 확장할 곳이 있을까?
미래는 모르는 거지만, 낙관할 순 없을 것 같다.

(2) Home

타임라인에서 Home 으로 격상시킨 건지, 두 개를 분리해서 생각하는 건지는 모르겠다.
"Home 전략"이 검색되지 않는 걸 보면, 엘런의 새로운 방향처럼 보인다.

광고 비중이 너무 높다는 지적도 있고 랭킹을 차별화 하는 프리미엄 서비스를 내겠다고 했으니 그거 아닐까 싶다.
유료 사용자 모델을 만들려고 하는거니, Home 관련들의 복잡도나 부하가 높아질 걸로 보인다.

간단한 기능 추가처럼 보이지만, 시간과 돈이 투자되어야 하는 일이다.

(3) 아키텍쳐

아키텍쳐에 대한 소감은....
그동안 대량 데이터를 처리하기 위해 몸부림을 많이 쳤다는 생각이 든다.
부하분산을 위해 간단한 기능들을 복잡하게 만들었다.

비슷한 일을 제법 겪었는데, 레거시는 생각보다 신사업을 방해한다.
가볍게 만들어서 시장 반응을 봐야 하는데, 간단한 것도 쉽게 만들기 어렵게 한다.
기존 인프라를 활용해야 선점효과 같은 걸 노릴수 있는데 그게 잘 안된다.

그래서 고생해 본 베테랑들은 그냥 선택한다.
시장반응이 중요하니 레거시는 나중에 붙이기로.

(4) 글쎄...

전체적으로 기존 레거시가 괴롭힌다는 느낌이 든다.
혁신이 일어날 것 같은 느낌은 왠지...

내가 틀릴 수도 있다.
하지만 과학적인 말을 하려고 이 글을 쓰는 건 아니니까.

나는 트위터가 "싸이월드" 정도라고 생각한다.
힘 다빠진 서비스가 유명인들 목소리에 힘입어 목숨이 연장된 듯한 느낌?

코드리뷰 한다고 찍어 놓은 사진이 기대감보다 싱숭생숭 하게 만든다.
잘 될까???
도대체 누가 호응해줄까?
트위터 주식을 살까 말까...

05. 6가지 생산성 원칙

"극한의 생산성을 올리기 위한 6가지 원칙" (링크)

2018년 테슬라 직원들에 보낸 메일이다.
최근에 트위터 직원들에게도 보낸 것 같다.
엘런머스크가 일부러 유출시켰다고 한다.

주욱 읽어보니 합리적이고, 맞는 말이다.
진짜 회의를 위한 회의는 이제 안했으면 좋겠다.

(1) 큰 미팅들은 피해라.

대형 미팅은 시간과 에너지를 낭비하게 만든다.

  • 토론을 못하게 하고,
  • 태도를 개방적이 아니라 방어적으로 만들고
  • 모든 사람이 발언할만큼 시간도 충분하지 않다.

회의가 모든 이에게 가치를 준다는 확신이 들지 않으면 대형 미팅은 가지마라.

(2) 뭔가 도와줄 게 없다면, 그냥 회의장을 나와라.

당신의 Input, Value, Decisions 을 필요로 하지 않는다면, 그런 회의에 참석하는 건 완전히 무의미하다.

회의장을 나오는 건 전혀 무례한 일이 아니다.
오히려 그런 회의로 사람들의 시간을 낭비하는 게 무례한거다.

(3) 보고계통은 잊어버려라.

관리자를 통해 이야기하려 하지 마라.
그냥 그 사람과 직접 이야기해라.
빠른 소통이 빠른 의사결정을 낳는다.
빠른 의사결정은 곧 "경쟁력"이다.

(4) 비유로 말하지 말고, 똑바로 말해라.

모호한 단어나 전문용어(약어 등)는 쓰지마라.
그런 건 커뮤니케이션을 느리게 만든다.
단어를 선택할 때는 :

  • 간결한 걸로
  • 핵심을 바로 드러내는 걸로
  • 이해하기 쉬운 걸로 선택하라.

똑똑한 척하지 마라.
효율적으로 일해라.

(5) 잦은 회의를 버려라.

잦은 회의만큼 모든 사람들의 시간을 버리는 건 없다.
회의는 이럴 때 하는거다.

  • 뭔가 함께 해야 할 때
  • 정면에서 이슈를 해결해야 할 때
  • 급한 문제를 해결해야 할 때.

이슈가 해결되고 나면, 더이상 잦은 회의를 할 필요가 없다.
회의란 걸 하지 않아도 대부분의 이슈는 풀 수 있다.
회의 대신 이렇게 하라.

  • 그 사람에게 문자를 보내고
  • 그 사람에게 메일을 보내고
  • 디스코드나 슬랙으로 커뮤니케이션 하라.

불필요하게 팀의 워크플로우를 중단시키지 마라.

(6) 상식을 따르라.

만일 회사의 규칙이 이렇다면 :

  • 상식적이지 않거나,
  • 진도를 빼는데 도움이 되지 않거나,
  • 어떤 특정상황에만 적용되는 거라면,

눈을 감고 회사 규칙을 무시해라.
규칙(Rule)이 아니라, 원칙을 따라라.

06. 정리

엘런 머스크가 새로운 CEO를 찾고 있다고 한다.
자기는 CEO가 아니라 뛰어난 엔지니어들이 더 잘할 수 있도록 만드는데 역할이 있다고 한다.

즉, 자기는 핵심역할만 할 뿐 경영은 다른 사람이 했으면 좋겠다는 이야기다.

똑똑한 사람이니 잘 할거다.
하지만 약간 회장놀이 느낌이다.
자기 능력에 대한 과신 같은 게 보인다.

개인적으로는 좀 미덥지 못하다.
소프트웨어는 쫀다고 해결되지 않는 경우가 많다.
사람의 문제이거나 사업의 문제이거나 등등.
대부분 눈에 안 보이는 문제들이다.

솔직히 왜 트위터를 인수했는지 잘 모르겠다.
그냥 타임라인 바꿔보려는 게 꿈은 아니었을텐데,

"내가 들어가면 트위터를 확 바꿔놓을텐데"...
이런 공명심도 아니고,

"돈 못버는 트위터가 안타까워. 내가 돈 벌게 해줄께."
이것도 아니었을텐데.

도대체 머스크는 무얼 하고 싶었을까?
정말 언론을 갖고 싶었던 걸까?
"블루 서비스"에 어떤 기대를 했을까?

끝.

반응형

댓글