product update9분 분량

확장 프로그램 팝업은 엉뚱한 질문에 답하고 있었다. 1.16은 대신 당신이 보고 있는 페이지를 그린다.

Telli.sh: Every Translator 1.16은 툴바 팝업을 상태 화면으로 다시 만들었습니다. 지금 보고 있는 페이지의 축소 모형, 다섯 개의 라벨 칩, 그리고 확장 프로그램이 '실제로 돌아가고 있다'고 확인할 수 있을 때만 초록으로 켜지는 점. 모든 설정은 살아 있는 스켈레톤 미리보기가 있는 전용 설정 페이지로 옮겼고, 즉석 번역은 30일 뒤 스스로 정리되는 기록과 함께 자체 탭을 얻었으며, 알림 종은 이제 브라우저 언어에 맞춰 15개 로케일의 Telli.sh 블로그를 실어 나릅니다.

K
Ken Jo
#every-translator#chrome-extension#browser-extension#translation#product-update#ux

이번 주 전까지, Telli.sh 툴바 아이콘을 누르면 설정 서랍이 열렸습니다. 1.15 팝업의 마크업은 16,936바이트였고, 설정이 필요한 여덟 개 공급자 — Chrome 내장 AI, Google, Apps Script, DeepL, Ollama, OpenAI 호환, OpenRouter, Claude — 의 설정 폼을 전부 그 안에 넣어 두었습니다. 토글 다섯 줄은 덤이었죠. 그 옆의 옵션 페이지는 7,621바이트였습니다. 절반도 안 되는 크기였고, 정작 공간이 남아도는 쪽은 그쪽이었습니다.

이건 정보 구조가 뒤집힌 상태이고, 글자 크기를 아무리 손봐도 고쳐지지 않습니다. 툴바 팝업은 질문 하나에 답하려고 존재합니다. 저희는 그것을 한눈 질문 이라고 부르기 시작했습니다. 켜져 있나, 그리고 이 페이지에서 무슨 일을 할 건가? 1초 안에, 스크롤 없이 답을 받고 팝업을 닫을 수 있어야 합니다.

Telli.sh: Every Translator 1.16은 2026년 9월 4일 Chrome 웹 스토어에 제출되어 이 글이 나가는 시점에 심사 중입니다. 이 버전은 한눈 질문에 그림으로 답합니다.

TL;DR

  • 팝업은 이제 상태 화면입니다. 가로 372픽셀, 세로 최대 560픽셀, 스크롤 없음. 자격 증명 입력란은 하나도 들어 있지 않습니다. 세어 봤고, 정말로 0개입니다.
  • 지금 보고 있는 페이지의 축소 모형을 그립니다. 모형의 각 부분에서 라벨이 붙은 칩으로 지시선이 뻗습니다. 언어, 표시 방식, 전송 미리보기, 공급자, 입력 도우미. 이 모형은 확장 프로그램이 실제로 그리는 화면을 그대로 옮긴 것이라, 플로팅 버튼과 입력창 사이의 8픽셀 간격까지 같습니다.
  • 초록은 '체크박스가 켜져 있다'가 아니라 '확인됨'을 뜻합니다. 상태는 셋입니다. 이 탭에서 실행 중이면 초록, 켜져 있지만 확인되지 않았으면 호박색, 꺼져 있으면 회색.
  • 즉석 번역과 기록 이 두 번째, 세 번째 탭으로 들어왔습니다. 고정하지 않은 기록은 만들어진 지 30일이 지나면 사라지고, 고정한 것은 사라지지 않습니다.
  • 알림 종이 브라우저 언어로 저희 블로그를 실어 나릅니다. 15개 로케일별 RSS 피드를 읽습니다. 사이트에 들르지 않고도 새 글 소식을 받고 싶다면, 이제 그 종이 가장 값싼 방법입니다.
  • 설정할 것은 전부 설정 페이지에 있습니다. 그 페이지는 각 표시 방식을 문장으로 설명하는 대신, 실제로 움직이는 축소 모형으로 보여 줍니다.

팝업이 설정을 내려놓았다, 그게 변화의 전부다

1.16 뒤에 있는 결정은 하나입니다. 설정은 밖으로, 상태는 안으로. 팝업 헤더의 톱니바퀴 아이콘은 설정 페이지의 해당 섹션으로 바로 이동하므로, 어떤 것도 더 멀어지지 않았습니다. 답을 찾는 길목에서 비켜났을 뿐입니다.

팝업에 남은 것은 의도적으로 적습니다. 사이트 이름과 사이트별 켜기/끄기 스위치가 있는 헤더 — "여기, 이 사이트에서는 끄기"는 설정이 아니라 상태 조작이니까요. 종 하나. 톱니바퀴 하나. 그리고 본문.

이야기할 값어치가 있는 건 그 본문입니다.

상태 화면은 당신 페이지의 해부도다

채팅 사이트에서 팝업을 열면 그 사이트의 와이어프레임이 보입니다. 메시지 말풍선 두 개, 아래쪽 입력창, 그 위에 앉은 Telli.sh 플로팅 버튼, 그리고 그 위의 미리보기 패널. 회색 스켈레톤 막대가 글자를 대신합니다. 이 모형의 다섯 지점에서 가느다란 지시선이 왼쪽으로 뻗어 라벨 칩 열로 이어집니다.

각 칩은 하나를 이름 붙이고 현재 값을 보여 줍니다.

가리키는 곳보여 주는 값
언어메시지 말풍선읽는 언어 → 보내는 언어, 예: English → Auto-detect
표시말풍선 아래 번역문인라인 코멘트, 이중 언어, 클릭해서 펼치기, 클릭해서 전환
전송 미리보기패널의 버튼들켬 또는 끔
공급자플로팅 버튼아홉 공급자 중 선택된 것
입력 도우미입력창대상 언어, 또는 끔

칩은 자기가 가리키는 부분 순서대로 위에서 아래로 놓여, 지시선이 서로 교차하지 않습니다. 세로 위치는 하드코딩이 아니라 렌더링 시점에 측정합니다. 이상적인 위치가 겹치는 칩들은 하나의 묶음으로 합쳐지고, 그 묶음을 가운데로 맞춰 정렬 오차를 마지막 칩에 몰아주는 대신 무리 전체가 나눠 갖습니다. 칩에 마우스를 올리면 그 칩이 속한 그림 부분이 강조됩니다.

이렇게 만든 이유는 이렇습니다. 설정 목록은 displayMode: bilingual 이라고 말합니다. 그림은 지금 보고 있는 그 페이지의 어디에 번역문이 나타날지 를 말합니다. 게다가 이 모형은 예쁘게 각색한 삽화가 아닙니다. 콘텐츠 스크립트가 쓰는 실제 좌표를 그대로 따릅니다. 플로팅 버튼은 입력창 위쪽 모서리에서 8픽셀 위, 오른쪽 정렬. 350픽셀짜리 미리보기 패널은 그 버튼에서 다시 8픽셀 위, 같은 정렬. 팝업은 친절한 허구가 아니라 진짜 UI를 가르칩니다.

초록 점은 무언가를 뜻해야 하므로, 값을 비싸게 매겼다

예전 토글은 의도를 보여 줬습니다. 스위치가 켜진 건 보이지만, 실제로 번역이 돌고 있는지, API 키가 받아들여졌는지, 이 사이트가 지원 대상이긴 한지는 알 길이 없었죠.

그래서 1.16은 초록색을 아껴 씁니다. 상태는 셋이고, 각각은 확장 프로그램이 책임질 수 있는 주장입니다.

  • 초록 — "이 탭에서 실행 중". 확장 프로그램이 지금 이 순간 확인할 수 있는 상태입니다.
  • 호박색 — "켜져 있음, 확인되지 않음". 설정은 켜져 있고 자격 증명도 들어 있지만, 왕복이 실제로 되는지는 아무것도 증명하지 않았습니다.
  • 회색 — "꺼짐". 꺼 두었거나, 필요한 값이 비어 있거나. 결과는 같습니다. 아무것도 번역되지 않습니다.

공급자 칩이 가장 엄격한 경우입니다. 초록을 받을 수 있는 공급자는 둘뿐입니다. 무료 Google 번역 모드는 사용자 자격 증명이 필요 없고 항상 닿을 수 있으니 초록입니다. Chrome의 온디바이스 내장 AI는 팝업이 실제로 Translator.availability() 에 당신의 언어 쌍을 물어보고 쓸 수 있다는 답을 받은 뒤에만 초록이 됩니다. 나머지 — DeepL, Claude, OpenRouter, Ollama, OpenAI 호환 엔드포인트, Apps Script, Google API — 는 URL이나 키가 채워지면 호박색에 머뭅니다. 확인하려면 팝업을 열 때마다 당신의 할당량을 테스트 호출에 써야 하니까요. 필요한 값이 비어 있으면 호박색이 아니라 회색입니다. 작동할 수 없다는 걸 알면서 켜져 있다고 말하지는 않습니다.

일부러 예쁘지 않게 만든 규칙입니다. 기본 설정을 쓰는 대부분은 초록 공급자 점 하나를 보게 되고, 유료 API를 쓰는 대부분은 영원히 호박색을 보게 됩니다. 호박색이 정직합니다. 저희는 초록보다 정직 쪽을 택했습니다.

즉석 번역: 페이지가 없는 텍스트를 위한 탭

위의 이야기는 전부 확장 프로그램이 지원하는 페이지에 있다는 걸 전제로 합니다. 그렇지 않은 경우가 자주 있죠. 누가 티켓에 문단 하나를 붙여 넣거나, PDF에서 문장을 복사해 왔을 때 말입니다.

즉석 번역은 정확히 그런 상황을 위한 두 번째 팝업 탭입니다. 출발 언어와 도착 언어를 고르고, 최대 2,000자를 붙여 넣고, 번역을 받고, 복사합니다. 두 선택 상자 사이에는 서로 바꾸는 버튼이 있습니다.

이건 첫 번째 번역기 옆에 앉은 두 번째 번역기가 아닙니다. 요청은 확장 프로그램이 페이지에서 하는 모든 번역과 똑같은 백그라운드 큐, 똑같은 캐시, 똑같은 공급자를 지납니다. 한 번 설정한 것이 여기에도 그대로 적용된다는 뜻입니다. 그리고 기본값은 꺼짐입니다. instantTranslateEnabledfalse 로 시작합니다. 팝업의 일은 한눈 질문이고, 요청하지도 않은 메모장은 당신과 답 사이를 가로막는 물건이 하나 더 늘어나는 것이니까요. 설정에서 켜면 팝업에 탭 줄이 생기고, 꺼 두면 팝업은 상태 화면 하나로 남습니다.

스스로 정리되는 기록: 30일, 고정하지 않았다면

즉석 번역을 켜면 그 옆에 기록 탭이 생깁니다. 거기서 번역한 것들이 최신순으로, 이 기기 안에만 쌓입니다.

보관 규칙은 한 줄입니다. 고정하지 않은 항목은 만들어진 지 30일이 지나면 사라지고, 고정한 항목은 사라지지 않습니다. 자꾸 다시 찾게 되는 문장은 고정해 두면 남습니다. 나머지는 알아서 늙어 사라집니다.

의지해도 되는 범위가 달라지므로 구현 세부 두 가지는 짚고 넘어가겠습니다. 정리는 백그라운드 타이머가 아니라 목록을 읽을 때 일어납니다. 이 목록을 읽는 것은 팝업뿐이라, 알람을 걸어 봐야 팝업을 여는 것보다 더 일찍 지울 수 있는 게 없기 때문입니다. 그리고 이미 30일이 지난 항목의 고정을 해제하는 행위가 곧 삭제입니다. 만료를 막아 주던 유일한 장치가 그 핀이었고, 다음 읽기에서 수거되니까요.

안전장치로 200개라는 상한이 있습니다. 여기에 닿으면 고정된 항목은 지키고, 고정되지 않은 것 중 가장 오래된 것부터 나갑니다. 탭 상단에는 전체 삭제 버튼이 있습니다.

종은 우리 블로그다, 당신의 언어로

이 부분을 가장 봐 주셨으면 합니다. 탭을 닫은 뒤에도 계속 일하는 유일한 부분이니까요.

팝업 헤더에는 알림 종이 있습니다. Telli.sh 블로그 글을 보여 줍니다. 상태 화면에는 최대 세 장이 카드로 겹쳐 쌓이고, 전체 목록은 종 뒤에 있으며, 아이콘에는 읽지 않은 개수 배지가 붙습니다. 모든 글은 telli.sh에서 열립니다.

피드는 로케일별입니다. 확장 프로그램은 브라우저 UI 언어를 읽고, 블로그가 발행하는 15개 로케일 — 영어, 한국어, 일본어, 중국어, 독일어, 프랑스어, 스페인어, 이탈리아어, 포르투갈어, 러시아어, 폴란드어, 베트남어, 태국어, 인도네시아어, 말레이어 — 와 맞춰 본 뒤 그 언어의 RSS 피드를 가져옵니다. 브라우저가 태국어로 설정돼 있으면 알림도 태국어로 옵니다. 브라우저 언어가 15개 중에 없으면 영어로 옵니다. 중국어 두 변종은 같은 중국어 피드로 모입니다.

작동 방식은 당신을 방해하지 않도록 짜여 있습니다. 피드는 백그라운드 알람이 아니라 팝업 자신이 가져오고, 캐시부터 먼저 씁니다. 그래서 네트워크에 손대기 전에 이미 카드가 그려져 있습니다. 캐시는 6시간 갑니다. 새 글을 근무일 하루 안에 띄우면서, 하루치 팝업 열기 — 수십 번입니다 — 를 많아야 네 번의 요청으로 접어 넣는 값입니다. 항목은 최대 12개까지 보관합니다. 갱신에 실패해도 멀쩡한 캐시를 밀어내는 일은 없습니다. 폴백은 실시간 피드 → 캐시 → Telli.sh 상시 카드 한 장 → 아무것도 없음 순서로 내려갑니다.

글을 닫으면 닫힌 채로 남습니다. 항목의 정체성은 쿼리 스트링을 떼어 낸 글 자신의 URL에서 나옵니다. 그 링크에 붙은 추적 파라미터는 글의 것이 아니라 저희 것이니까요. 덕분에 피드가 갱신되며 순서가 바뀌어도 닫아 둔 글이 되살아나지 않습니다.

회의 번역과 음성 인식에 관해 저희가 쓰는 글을 따라 읽어야지 하면서 계속 미루고 있었다면, 확장 프로그램을 설치해 두세요. 글이 당신 언어로, 한 번에 세 개씩 툴바로 찾아옵니다.

결정하기 전에 눈으로 볼 수 있는 설정

설정 페이지는 원래 이 무게를 감당했어야 할 자리로 자랐고, 그 핵심 아이디어는 표시 방식을 머릿속으로 상상하게 두지 않는 것입니다.

표시 방식 선택기 아래에는 살아 있는 축소 모형이 있습니다. 팝업 그림과 똑같은 회색 스켈레톤 언어로, 메시지 말풍선에 그 모드가 그리는 방식 그대로 번역문이 얹힌 모습을 보여 줍니다. 인라인 코멘트에서 이중 언어로, 클릭해서 펼치기로, 클릭해서 전환으로 바꾸면 모형도 따라 바뀝니다. 전송 미리보기, 입력 도우미, 즉석 번역에도 같은 데모가 붙어 있고, 각각의 한 줄 설명은 추상적으로 서술하는 대신 설정을 따라 바뀝니다.

공급자 섹션은 모델 ID를 외우고 있으라고 요구하기를 그만뒀습니다. Ollama의 모델 목록은 로컬 서버의 /api/tags 에서 가져오고, OpenAI 호환 엔드포인트는 {당신의 기본 URL}/models 에서 읽어 오며, OpenRouter와 Anthropic은 각자의 카탈로그 엔드포인트에서 옵니다. API가 토큰당 가격을 공개하는 경우, 선택기가 그 가격을 백만 토큰 단위로 환산해 보여 줍니다. OpenRouter는 가격을 0.0000001 같은 숫자로 내놓는데, 그 규모에서는 아무도 읽을 수 없기 때문입니다. 가격에 관해 하드코딩하거나 추정하거나 갱신 사이에 기억해 두는 것은 하나도 없습니다. 그래서 가격이 낡을 방법 자체가 없습니다. 카탈로그에 가격이 없으면 선택기도 가격을 보여 주지 않습니다.

지원 사이트 목록은 훑어보기 힘든 평평한 한 줄에 30개가 늘어서 있었습니다. 이제는 8개 범주로 묶였습니다. 채팅 및 메일(7개), 소셜(3개), 커뮤니티 및 포럼(4개), 개발자(5개), 위키 및 레퍼런스(2개), 블로그 및 뉴스레터(3개), 뉴스(4개), 댓글 및 리뷰(2개). 그리고 맨 아래에 "찾는 사이트가 없나요? 추가를 요청하세요" 줄이 붙었습니다. 확장 프로그램이 그 경로를 제공한 것 자체가 이번이 처음입니다.

첫 실행 안내도 생겼습니다. 설치할 때만 — Chrome의 install 사유에 걸어 두어 업데이트로는 절대 뜨지 않습니다 — 세 단계가 이 확장 프로그램이 무엇을 하는지, 어떤 두 가지 설정이 나머지를 결정하는지, 툴바 버튼이 어디 있는지를 안내합니다. 세 단계 중 둘은 컨트롤의 그림을 보여 준 뒤 직접 찾아가게 하는 대신, 페이지의 진짜 컨트롤을 조명합니다.

결론: 툴바 팝업은 계기판이 아니라 계기판의 경고등이다

예전 팝업의 잘못은 못생겼다거나 스크롤된다는 게 아니었습니다. 1초짜리 표면을 작업 공간처럼 다뤘다는 것이었습니다. 가로 372픽셀 상자에서 여덟 개 공급자를 설정할 수는 없고, 무언가 돌아가고 있는지 알아내려고 그 시도를 스크롤로 지나쳐야 할 이유도 없습니다.

1.16은 그 두 일을 깔끔하게 갈라놓습니다. 설정 페이지는 결정하는 곳입니다. 한 번, 각 결정이 어떤 모습인지 그림과 함께. 팝업은 그 결정이 실제로 효력을 내고 있는지 확인하는 곳입니다. 1초 안에, 이 페이지에서, 지금. 저희가 제대로 했다면 당신은 팝업을 더 자주 열고, 더 짧게 머물게 될 겁니다.

1.16 버전은 2026년 9월 4일 기준 Chrome 웹 스토어 심사 중입니다. 승인되면 자동 업데이트로 반영됩니다.


Telli.sh는 어디에 놓이나: 확장 프로그램은 빠른 텍스트를 담당합니다. 채팅, 게시물, 댓글, 메일, 포럼 스레드를 30개 사이트, 52개 읽기 언어, 9개 번역 공급자로 다루고, UI 자체는 50개 언어로 제공됩니다. Telli.sh 본체는 나머지 절반인 말해진 것을 담당합니다. 회의를 녹음하거나 파일로 받아 실제로 발화된 언어 그대로 전사하고, 44개 대상 언어로 번역하며, 원문과 정렬된 번역문과 AI 요약을 하나의 편집 가능한 노트에 담아 둡니다. 두 곳 모두 같은 생각입니다. 번역을 원문 옆에 두고, 원문을 버리지 않는 것.

실시간 번역 회의 노트 시작하기

출처

  • Chrome 웹 스토어의 Telli.sh: Every Translator — 1.16 패키지가 2026년 9월 4일에 제출된 등록 페이지.
  • Telli.sh: Every Translator 제품 페이지 — 지원 사이트, 표시 방식, 번역 제공자, 개인정보 약속을 한곳에 정리한 페이지.
  • Telli.sh: Every Translator, Chrome 웹 스토어 출시, 2026년 6월 23일 — 이번 재설계 이전의 확장 프로그램이 어땠는지 보여 주는 최초 출시 글.
  • 확장 프로그램 소스, extension/docs/UX_REDESIGN_PLAN_2026-09-04.md, 2026년 9월 4일 — 이번 릴리스로 출하된 여섯 단계를 낳은 검토 문서. 16,936바이트 팝업 대 7,621바이트 옵션 페이지 측정치와 "초록은 확인됨을 뜻한다"는 결정이 여기에 있습니다.

블로그로 돌아가기