자동화&툴 리뷰

X 외국어 글 자동 번역 — "번역 보기" 안 눌러도 되는 오픈소스 크롬 확장

노동1호 2026. 6. 24. 04:01

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

Chrome extension X Twitter auto translate button click

왜 만들었나 — X 자동 번역의 사각지대

X의 자동 번역(Grok in-stream)은 강력하지만 일관성이 약합니다. 피드 대부분은 알아서 번역되지만, 리포스트·특정 언어·자동 번역 미적용 글·∅ 마커가 붙은 글은 여전히 "번역 보기" 버튼을 사용자가 직접 눌러야 보입니다. 시중의 번역 확장들은 대부분 자체 엔진(구글 번역 등)으로 번역해 글 아래에 덧붙이는 방식인데, 두 가지 문제가 있습니다.

  • (a) 번역 품질이 X의 Grok 출력이 아니라 다른 엔진 결과로 바뀜
  • (b) 트윗 본문이 외부 서버(번역 엔진)로 전송됨

이 확장은 X 자체 번역을 그대로 쓰면서 버튼만 자동으로 눌러주는 방향을 선택했습니다. 글 내용이 외부로 새지 않고, X가 보여주는 번역 결과를 그대로 받습니다.

어떻게 작동하나 — DOM 감시 + 라벨 매칭

핵심은 단일 content script 하나로, x.com / twitter.com에서 동작합니다.

  1. MutationObserver로 페이지 변화를 디바운스 감시 — 스크롤로 흘러들어오는 트윗을 자동 처리
  2. X의 고유 셀렉터가 없는 번역 버튼을 라벨 텍스트로 매칭 — X는 data-testid나 안정 클래스도 주지 않으므로 visible label로만 식별 가능
  3. ~46개 X 인터페이스 언어 라벨 사전을 내장 (영어, 한국어, 일본어, 중국어, 스페인어, 아랍어, 힌디, 태국어, 베트남어 등)
  4. 트윗 ID를 한 번 기록해두어 재클릭 방지 — 가상 스크롤로 DOM 노드가 재활용돼도 중복 클릭 없음
  5. "원문 보기"는 절대 누르지 않음 — 무한 토글/루프 차단

// 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로 로드하면 됩니다.

  1. chrome://extensions 열기
  2. 우측 상단 개발자 모드 ON
  3. 압축해제된 확장 프로그램 로드 클릭 → 저장소 폴더 선택
  4. X 열고 스크롤 — 번역 안 된 외국어 글이 알아서 번역됨
  5. 툴바 아이콘 클릭으로 on/off 토글

storage 권한 하나만 요청하며, host_permissions가 없습니다. 네트워크 요청 0, 외부 서버 0, 데이터 수집 0 — 전부 브라우저 안에서만 동작합니다.

비교 — 다른 번역 확장과 다른 점

| 항목 | 일반 번역 확장 | Just Translate Already for X |

Chrome extension X Twitter auto translate button click

|------|----------------|------------------------------|

| 번역 엔진 | 자체 (구글/딥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: