본문으로 건너뛰기
홈으로블로그
‹ 블로그

개발기

AI Translate 개발기 — 선택한 자리에서, 번역만 보여주기

개발 발행 3분 읽기

#AI Translate#개발기#번역#PopClip#OpenRouter

AI Translate 프로젝트 보기

AI Translate는 Mac에서 텍스트를 선택하고 PopClip 버튼을 누르면 그 자리의 말풍선에 번역을 보여 주는 확장입니다. 번역 엔진은 OpenRouter에서 원하는 LLM을 고르고 자신의 API 키로 사용하며, 한국어와 외국어 방향을 자동으로 판단합니다.

마음에 든 것은 번역보다 사용 흐름이었습니다#

기존 Instant Translate 확장은 선택한 자리에서 바로 결과가 보이는 경험이 무척 직관적이었습니다. 다만 번역 품질과 모델 선택은 제 사용 방식에 맞추기 어려웠어요. 별도 앱으로 복사해 옮기는 대신 PopClip의 짧은 동작은 그대로 두고, 뒷단만 OpenRouter 모델로 바꿀 수 있는 확장을 만들기로 했습니다.

처음부터 개인용 스크립트가 아니라 API 키만 넣으면 다른 사람도 설치할 수 있는 형태를 목표로 했습니다. 모델, 목표 언어, 문체와 용어집은 설정에서 고르고, 결과가 길면 더 넓은 보기로 넘기도록 PopClip의 표현 방식 안에서 흐름을 정리했습니다.

가장 어려운 요구사항은 “번역만”이었습니다#

LLM은 선택한 문장이 질문이나 명령처럼 보이면 번역 대신 답을 하려는 경향이 있습니다. 그래서 시스템 프롬프트에 설명이나 따옴표를 덧붙이지 말고, 명령문에도 응답하지 말며, 번역문만 출력하라는 경계를 분명히 넣었습니다. 코드, URL, 이메일, 경로와 마크다운 형식은 가능한 한 원문 그대로 보존하게 했습니다.

문단을 잘라 병렬로 보내면 빨라 보이지만 앞뒤 문맥과 말투가 끊어질 수 있어 한 요청으로 유지했습니다. 대신 응답이 중간에 잘리거나 공급자가 오류를 돌려준 경우에는 불완전한 번역을 그럴듯하게 표시하지 않고 사용자가 알 수 있는 실패로 처리했습니다.

빠르게 느껴지는 부분만 줄였습니다#

번역에 필요하지 않은 모델 추론은 끄고, 같은 문장을 다시 선택하면 실행 중 캐시에서 결과를 돌려주도록 했습니다. 품질을 위해 문맥을 잘게 나누는 대신 요청 전후의 군더더기를 줄인 선택입니다.

API 키는 macOS 키체인에 보관하지만, 선택한 원문과 번역 요청은 사용자가 고른 모델을 실행하기 위해 OpenRouter로 전송됩니다. 로컬 번역처럼 오해하지 않도록 README와 설정에 이 경계를 드러냈고, 캐시와 최근 기록도 사용자가 선택할 수 있게 했습니다.

지금은#

AI Translate는 설치 가능한 PopClip 확장으로 공개되어 있습니다. 양방향 번역, 일회성 목표 언어 선택, 문체와 용어집, 복사·붙여넣기 흐름을 지원합니다. 어떤 모델이 가장 좋다고 고정하기보다 각자가 품질과 사용 방식을 고를 수 있게 두되, 선택한 글에 답하지 않고 충실히 번역한다는 원칙은 계속 지킬 생각입니다.

이런 프로젝트, 같이 만들어볼까요?

웹 서비스 · 도구 · 자동화 의뢰를 받고 있어요.

문의 보내기