2026년 6월 현재 X(옛 트위터)에서 외국어 글을 자주 보는 개발자라면 한 번쯤은 짜증 내본 적이 있을 겁니다. 피드의 대부분은 Grok 자동 번역이 깔아주는데, 일부 글(∅ 표시가 붙은 글, 자동 번역이 안 걸린 리포스트 등)은 여전히 매번 "번역 보기" 버튼을 일일이 눌러야 하니까요. Show GN으로 올라온 오픈소스 크롬 확장 "Just Translate Already — for X"는 그 버튼을 대신 눌러줍니다. 외부 번역 엔진도, 네트워크 요청도, 데이터 수집도 없이요.

왜 만들었나 — X 자동 번역의 사각지대
X의 자동 번역(Grok in-stream)은 강력하지만 일관성이 약합니다. 피드 대부분은 알아서 번역되지만, 리포스트·특정 언어·자동 번역 미적용 글·∅ 마커가 붙은 글은 여전히 "번역 보기" 버튼을 사용자가 직접 눌러야 보입니다. 시중의 번역 확장들은 대부분 자체 엔진(구글 번역 등)으로 번역해 글 아래에 덧붙이는 방식인데, 두 가지 문제가 있습니다.
- (a) 번역 품질이 X의 Grok 출력이 아니라 다른 엔진 결과로 바뀜
- (b) 트윗 본문이 외부 서버(번역 엔진)로 전송됨
이 확장은 X 자체 번역을 그대로 쓰면서 버튼만 자동으로 눌러주는 방향을 선택했습니다. 글 내용이 외부로 새지 않고, X가 보여주는 번역 결과를 그대로 받습니다.
어떻게 작동하나 — DOM 감시 + 라벨 매칭
핵심은 단일 content script 하나로, x.com / twitter.com에서 동작합니다.
MutationObserver로 페이지 변화를 디바운스 감시 — 스크롤로 흘러들어오는 트윗을 자동 처리- X의 고유 셀렉터가 없는 번역 버튼을 라벨 텍스트로 매칭 — X는
data-testid나 안정 클래스도 주지 않으므로 visible label로만 식별 가능 - ~46개 X 인터페이스 언어 라벨 사전을 내장 (영어, 한국어, 일본어, 중국어, 스페인어, 아랍어, 힌디, 태국어, 베트남어 등)
- 트윗 ID를 한 번 기록해두어 재클릭 방지 — 가상 스크롤로 DOM 노드가 재활용돼도 중복 클릭 없음
- "원문 보기"는 절대 누르지 않음 — 무한 토글/루프 차단
// 1. DOM 변화 감시
const observer = new MutationObserver(debounced(handleMutations));
observer.observe(document.body, { childList: true, subtree: true });
// 2. 번역 버튼 라벨 매칭 (예: 한국어, 일본어, 영어)
const TRANSLATE_LABELS = new Set([
"번역 보기", "번역 표시", "Translate post", "Show translation",
// ... ~46개 언어
]);
// 3. 클릭 + 트윗 ID 기록
if (button && !clicked.has(tweetId)) {
button.click();
clicked.add(tweetId);
}
한계 — 솔직하게
확장 자체의 한계가 아니라 X의 동작에 종속된 제약입니다.
- 대화 스레드의 답글 — X는 답글 트윗에 번역 UI를 아예 제공하지 않습니다. 확장이 클릭할 버튼 자체가 없으므로 번역 불가. 답글을 단독 글로 열면 X가 번역 UI를 띄우므로 그때는 번역됨
- 자동 번역이 이미 켜진 계정 — 대부분 글이 X가 알아서 번역하므로 확장이 개입할 여지가 적음. 사각지대를 메우는 보완재 성격
- X 리디자인 / 미지원 UI 언어 — 라벨 매칭 기반이므로 X가 라벨을 바꾸거나 사전에 없는 언어로 설정하면 동작 중단. 라벨 사전을
content.js상단에서 쉽게 확장 가능
설치 — 30초면 끝
별도 빌드 과정이 없습니다. 저장소를 클론해서 그대로 unpacked로 로드하면 됩니다.
chrome://extensions열기- 우측 상단 개발자 모드 ON
- 압축해제된 확장 프로그램 로드 클릭 → 저장소 폴더 선택
- X 열고 스크롤 — 번역 안 된 외국어 글이 알아서 번역됨
- 툴바 아이콘 클릭으로 on/off 토글
storage 권한 하나만 요청하며, host_permissions가 없습니다. 네트워크 요청 0, 외부 서버 0, 데이터 수집 0 — 전부 브라우저 안에서만 동작합니다.
비교 — 다른 번역 확장과 다른 점
| 항목 | 일반 번역 확장 | Just Translate Already for X |

|------|----------------|------------------------------|
| 번역 엔진 | 자체 (구글/딥L/파파고 등) | X의 Grok 자체 번역 |
| 외부 서버 전송 | 있음 | 없음 |
| 데이터 수집 | 사용 통계 등 | 없음 |
| 원문 ↔ 번역 토글 | 무한 루프 가능 | "원문 보기" 절대 안 누름 |
| 답글 트윗 처리 | 자체 번역 시도 | X 동작 그대로 (열면 번역) |
| 권한 | 다수 (host, network) | storage 하나 |
| 라이선스 | 비공개 / Freemium | MIT 오픈소스 |
같이 보면 좋은 글
- Clutio — 서버·로그인 없이 웹에서 읽으며 외국어를 공부하는 크롬 확장 (171차 정형화 분기)
- Hover Trans Port — 로컬 AI CLI로 선택/호버 텍스트를 인라인 번역하는 Chrome 확장
- GeekNews Weekly 뉴스레터 — 개발·기술·스타트업 소식 큐레이션
결론
2026년 6월 기준으로 X의 자동 번역이 안정적이지만 사각지대(∅ 마커 글, 일부 리포스트, UI 언어별 미지원)가 존재하는 건 사실이고, 그 사각지대를 메우려면 결국 "번역 보기" 버튼을 매번 눌러야 합니다. 이 확장은 X가 이미 제공하는 번역 결과를 그대로 쓰면서 사용자만 절약하는 방향이라 — 번역 품질 저하도, 프라이버시 트레이드오프도, 무한 루프 위험도 없습니다. MIT 라이선스 오픈소스이고 storage 권한 하나뿐이라 거부감 없이 설치할 수 있습니다. X에서 외국어 피드를 자주 보는 개발자라면 30초 투자할 가치가 있습니다.
- GitHub:
'자동화&툴 리뷰' 카테고리의 다른 글
| F3 - 미래를 위한 오픈소스 데이터 파일 형식, Parquet 이후의 차세대 컬럼 포맷 (0) | 2026.06.25 |
|---|---|
| AI로 구글이 만든 1,500개 API를 자동 해킹해 3개월 만에 7억원 번다 (0) | 2026.06.24 |
| NotionTalk: 카카오톡에서 바로 쓰는 Notion 비서 — MCP 한 번 연결로 끝 (1) | 2026.06.24 |
| bigset - 세상의 모든 데이터를 가지고 있다면? 한 문장으로 만드는 라이브 데이터셋 (0) | 2026.06.24 |
| Show GN: Peck - PR을 쉽게 설명하고 리뷰 초안과 상태를 보여주는 macOS 메뉴바 앱 (0) | 2026.06.24 |