한 줄 요약: 2026년 1월 20일, X(구 트위터)가 xAI의 Grok AI 기반 추천 알고리즘을 GitHub에 전격 공개했습니다. 일론 머스크 발표대로 매월 업데이트 예정이며, 매일 1억 건 이상 게시물을 분석하는 이 시스템의 핵심 로직을 파헤쳐 봤습니다.

이게 왜 화제인가요?
왜 다들 이걸 보고 난리인지 궁금하지 않으셨어요?
저도 처음엔 “또 오픈소스 공개했네, 뭐” 하고 넘어가려다가… GitHub 들어가서 코드 뜯어보고 생각이 완전히 바뀌었어요.
2023년 3월에 공개한 것과 뭐가 다르냐고요?
| 항목 | 2023년 3월 | 2026년 1월 |
|---|---|---|
| AI 기반 | 전통 ML 모델 | Grok AI 트랜스포머 |
| 수작업 피처 | 다수 존재 | 완전 제거 |
| 언어 | Scala/Java 중심 | Rust + Python |
| 업데이트 | 1회성 | 매월 정기 업데이트 |
| 개발자 노트 | 없음 | 상세 제공 예정 |
진짜 다른 게, 이번엔 **”모든 수작업 피처를 없앴다”**고 선언했거든요.
“We have eliminated every single hand-engineered feature and most heuristics from the system.” — GitHub README 원문
쉽게 말하면?
예전엔 “팔로워 수가 X명 이상이면 가산점”, “특정 키워드 포함하면 페널티” 같은 규칙을 사람이 직접 만들었어요.
지금은 Grok 트랜스포머가 알아서 학습해요. 사람이 끼어들 여지가 없어진 거예요.
솔직히 이거 보고 좀 소름 돋았어요. “아, 진짜 AI가 모든 걸 결정하는 시대가 왔구나.”
알고리즘 구조 뜯어보기
GitHub 레포지토리(xai-org/x-algorithm)를 보면 이런 구조예요:
For You 피드 요청
│
▼
┌─────────────────────────────────────┐
│ HOME MIXER │
│ (오케스트레이션 레이어) │
├─────────────────────────────────────┤
│ 1. Query Hydration │
│ └ 최근 참여 이력 + 팔로잉 목록 │
│ │
│ 2. Candidate Sources │
│ ├ Thunder (In-Network) │
│ └ Phoenix Retrieval (Out-Network) │
│ │
│ 3. Scoring (Phoenix Scorer) │
│ └ Grok 트랜스포머 예측 │
│ │
│ 4. Filtering + Selection │
│ └ Top K 선택 │
└─────────────────────────────────────┘
│
▼
랭킹된 피드 응답
뭔 소린지 모르겠죠? 쉽게 말하면요:
- 내 행동 패턴 수집: 뭘 좋아요 눌렀는지, 뭘 리포스트했는지, 얼마나 오래 봤는지
- 후보 게시물 모으기: 팔로잉 계정 + AI가 찾은 외부 콘텐츠
- 점수 매기기: Grok AI가 “이 사람이 이 글에 반응할 확률” 예측
- 필터링: 스팸, 차단 계정, 뮤트 키워드 제거
- 상위 K개 선택: 점수 높은 순으로 피드에 노출
핵심 컴포넌트 4가지
1. Home Mixer (오케스트레이션)
전체 파이프라인을 조율하는 중앙 통제실이에요. gRPC 엔드포인트(ScoredPostsService)를 통해 랭킹된 게시물을 반환해요.
진짜 웃긴 게요, 이 구조 자체가 마이크로서비스 아키텍처의 교과서예요. 각 컴포넌트가 독립적으로 돌아가면서 병렬 처리 가능하거든요.
2. Thunder (In-Network 저장소)
팔로잉하는 사람들의 최근 게시물을 인메모리에 저장하는 저장소예요.
- Kafka에서 게시물 생성/삭제 이벤트 실시간 수신
- 보존 기간 지나면 자동 삭제
- 서브밀리초(sub-millisecond) 조회 가능
“내가 팔로우한 사람 글”을 DB 안 찌르고 바로 가져온다는 뜻이에요. 빠르죠.
3. Phoenix (ML 엔진)
이게 진짜 핵심이에요. 두 가지 역할을 해요:
3-1. Retrieval (Two-Tower 모델)
사용자 타워 후보 타워
│ │
▼ ▼
사용자 임베딩 ────────────── 게시물 임베딩
│
▼
유사도 검색
│
▼
상위 K개 Out-Network 게시물
내가 팔로우 안 하는 사람의 글도 “비슷한 관심사”로 찾아주는 거예요.
3-2. Ranking (트랜스포머)
후보들 중에서 실제로 보여줄 것을 결정해요.
독특한 점? Candidate Isolation이라고, 후보들끼리 서로 영향 안 줘요.
“Candidates cannot attend to each other—only to the user context.”
왜 이렇게 했냐면, 같이 들어온 다른 게시물에 따라 점수가 왔다갔다하면 캐싱이 안 되거든요. 효율을 위한 설계예요.
4. Candidate Pipeline (프레임워크)
재사용 가능한 추천 파이프라인 빌더예요.
Source → Hydrator → Filter → Scorer → Selector → SideEffect
각 단계가 trait로 정의되어 있어서, 새로운 필터나 스코러를 쉽게 추가할 수 있어요.
점수 매기는 로직 (이게 진짜 핵심!)
Phoenix가 예측하는 건 15가지 행동 확률이에요:
| 행동 | 가중치 방향 |
|---|---|
| P(좋아요) | ➕ 양수 |
| P(답글) | ➕ 양수 |
| P(리포스트) | ➕ 양수 |
| P(인용) | ➕ 양수 |
| P(클릭) | ➕ 양수 |
| P(프로필 클릭) | ➕ 양수 |
| P(동영상 시청) | ➕ 양수 |
| P(사진 확대) | ➕ 양수 |
| P(공유) | ➕ 양수 |
| P(체류 시간) | ➕ 양수 |
| P(팔로우) | ➕ 양수 |
| P(관심없음) | ➖ 음수 |
| P(차단) | ➖ 음수 |
| P(뮤트) | ➖ 음수 |
| P(신고) | ➖ 음수 |
최종 점수 공식:
Final Score = Σ (weight_i × P(action_i))
긍정적 행동은 점수 올리고, 부정적 행동(차단/신고 등)은 점수 깎아요.
이거 왜 중요하냐면요?
예전엔 “좋아요 많으면 좋은 글”이라고 생각했잖아요.
지금은 “차단/신고당할 확률”도 동시에 보고 있어요.
자극적인 콘텐츠로 좋아요 많이 받아도, 차단당할 확률 높으면 점수 깎인다는 거예요.
솔직히 이거 보고 좀 무섭더라고요. 내 예전 게시물들 중에 “어그로 끄는 스타일”로 쓴 게 있었거든요…
나한테 써먹을 수 있을까? 3가지 인사이트
알고리즘 코드 뜯어보고 나서 “그래서 나한테 어떻게 써먹지?” 고민했어요.
인사이트 1: 체류 시간(Dwell Time)이 생각보다 중요
P(dwell) — 사용자가 내 게시물에 얼마나 오래 머물렀는지.
2026년 알고리즘의 핵심 변화 중 하나가 “의미 있는 참여(Meaningful Engagement)” 강조예요.
단순 좋아요보다 답글, 인용, 북마크, 체류 시간이 더 중요해졌다는 뜻이에요.
실천법: 긴 스레드 작성할 때 각 트윗이 “잠깐, 이거 뭔 소리지?” 하게 만들기. 멈추게 만들어야 체류 시간 올라가요.
인사이트 2: Out-of-Network 노출을 노려라
Thunder(팔로워 기반)뿐 아니라 **Phoenix Retrieval(외부 노출)**이 있잖아요.
Two-Tower 모델이 “비슷한 관심사 사용자” 찾아서 내 글을 보여준다는 거예요.
핵심은? 내 프로필과 최근 활동이 “명확한 주제”를 가지고 있어야 해요.
실천법:
- 프로필 바이오에 핵심 키워드 넣기 (AI, 배당투자, 개발 등)
- 특정 주제에 일관되게 게시하기
- 같은 분야 사람들과 적극 상호작용하기
인사이트 3: 부정적 신호 최소화가 핵심
P(block), P(mute), P(report) — 이게 음수 가중치예요.
자극적으로 좋아요 많이 받아도, 차단/신고 많으면 총점 깎여요.
실천법:
- 어그로성 게시물 자제
- 논쟁 시 막말 금지 (차단 확률 급상승)
- 일관된 페르소나 유지 (급격한 변화는 뮤트 유발)
솔직한 내 생각
코드 뜯어보면서 좀 씁쓸하더라고요.
“결국 알고리즘 게임인가?”
예전엔 좋은 콘텐츠 만들면 자연스럽게 퍼진다고 생각했거든요.
근데 지금은 **”알고리즘이 좋아하는 콘텐츠를 어떻게 만들지?”**를 고민하게 되더라고요.
물론 X가 알고리즘을 공개한 건 환영해요. 적어도 블랙박스보다는 낫잖아요.
근데 한편으론… “결국 Grok이 모든 걸 결정하는 거 아닌가?” 하는 생각도 들어요.
AI가 “이 사람이 이 글에 반응할 확률”을 예측해서 피드를 채운다잖아요.
그러면 우리는 AI가 예측한 대로만 콘텐츠를 소비하게 되는 거 아닐까요?
필터버블이 더 강해지는 건 아닐지… 조금 걱정되기도 해요.
앞으로 내가 할 것들
- X 게시물 작성 시 “체류 시간” 의식하기: 스크롤 멈추게 만드는 첫 문장 고민
- 프로필 최적화: 바이오에 핵심 키워드 정리
- 일관된 주제 유지: AI/개발/투자 중심으로 게시
- 어그로 자제: 자극적 콘텐츠 줄이고 팩트 기반 의견 작성
- 매월 GitHub 업데이트 확인: 알고리즘 변경사항 체크용
마무리
X 알고리즘 GitHub 공개, 생각보다 배울 게 많았어요.
핵심 요약:
- Grok AI 트랜스포머 기반 (수작업 피처 완전 제거)
- 15가지 행동 확률 예측 → 가중 합산
- 부정적 신호(차단/신고)도 점수에 반영
- Two-Tower 모델로 Out-of-Network 게시물 발견
저도 처음엔 “그냥 코드 공개했네” 했는데, 뜯어보니 알고리즘이 콘텐츠를 어떻게 평가하는지 완전히 새롭게 이해하게 됐어요.
여러분도 한번 GitHub 들여다보세요. 재밌어요.
궁금한 거 있으면 댓글 남겨주세요!