KeyLingo키링고-실시간 번역 키보드

타이핑하다 멈추면 키보드 위에 번역이 뜨는 iOS 키보드

0 팔로워

소개

번역 앱을 열었다 닫았다 하는 게 싫어서 만들었습니다. 메신저에서 외국어로 답장할 때 흐름이 늘 이렇습니다. 앱을 나가서 번역기를 열고, 한국어를 넣고, 나온 영어를 복사하고, 다시 메신저로 돌아와서 붙여넣습니다. 한 문장 보내는 데 앱을 두 번 오갑니다. KeyLingo는 그 왕복을 없앱니다. 키보드에서 평소처럼 입력하다 잠시 멈추면 상단 바에 번역이 뜨고, 탭하면 입력창의 원문이 번역문으로 바뀝니다. 앱을 나갈 일이 없습니다. 한국어 ↔ 영어를 지원하고, 말투도 기본·전문적·친근한·정중한 중에 고를 수 있습니다. 언제 번역할지가 제일 어려웠습니다. 트리거 방식을 네 번 갈아엎었습니다. 처음엔 타이핑할 때마다 호출했는데 반응은 빠르지만 API 비용이 감당이 안 됐습니다. 그래서 탭해야 번역되게 바꿨더니, 그 순간 기존 번역 앱과 다를 게 없어졌습니다. 다음엔 1초 멈추면 자동 번역하게 했는데 이번엔 대기 중에 아무 반응이 없어서 고장 난 것처럼 보였고, 문장부호를 찍는 순간 번역이 나가버려 문맥이 끊기는 버그까지 생겼습니다. 지금은 멈추는 즉시 로딩을 띄우고 요청은 0.8초 뒤에 보냅니다. 체감 반응성과 실제 호출 시점을 분리한 게 결론이었습니다. 비용을 줄이려는 조정이 쌓일수록 쓰기 나빠진다는 걸 네 번 만에 배웠습니다. 키보드 확장은 제약이 많습니다. App Extension은 메모리 한도가 훨씬 타이트해서 넘으면 경고 없이 죽습니다. 그래서 외부 SDK는 전부 컨테이너 앱에만 넣고 확장에는 최소한의 네트워크 레이어만 남겼습니다. 지구본 버튼도 손댈 수 없는 영역이었습니다. iOS는 등록된 키보드를 전부 순환시키는데, 서드파티 키보드만 길게 눌렀을 때 나오게 하는 API가 없습니다. 이모지 키보드가 그렇게 동작하는 건 애플 전용 취급이라 흉내낼 수 없습니다. 결국 우회를 포기하고 온보딩 안내와 기본 키보드에 가까운 레이아웃으로 대응했습니다. API 키는 서버로 옮겼습니다. 초기엔 앱에서 OpenAI를 직접 호출했는데, 그러면 키가 바이너리에 박혀서 IPA만 뜯으면 노출됩니다. Cloud Functions 프록시를 세우고 앱은 자체 엔드포인트만 부르게 바꿨습니다. 번역 텍스트는 서버에 저장하지도 로그에 남기지도 않습니다. 스택 Swift · SwiftUI · Keyboard Extension / Firebase Cloud Functions · Firebase Auth · Firestore / StoreKit 2 / OpenAI GPT-4o mini 지금 2026년 8월 App Store 출시. 로그인 강제와 구독 상품 미제출로 두 번 반려당한 뒤 통과했습니다. 출시가 끝이 아니라 시작이라는 걸 체감하는 중입니다. 다운로드는 아직 두 자릿수고, 최근에는 키 간격이 기본 키보드와 달라 오타가 난다는 피드백을 받고 픽셀 단위로 실측해서 다시 맞췄습니다. 정작 제일 중요한 지표인 설치 후 키보드 활성화율은 아직 측정조차 못 하고 있어서, 그걸 붙이는 게 다음 과제입니다.

포스트

아직 포스트가 없습니다.

댓글

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.