개발 블로그로 돌아가기 엔지니어링 업데이트

1.0.0 이후: 개발 중인 것들

이 글을 다른 언어로 읽기: English · 中文 · 日本語 · Español · Français · 한국어 · Українська

SyncTrans 1.0.0은 8월 중순에 출시되었습니다. 최종 태그(빌드 13, 8월 19일)는 다운로드 버튼이 제공하는 빌드 위에 마지막 변경 사항 하나를 포함하고 있으며, 이는 기능이라기보다는 행정적 정리입니다. 심사 요구에 따라 Mac App Store 빌드에서는 스토어가 이미 제공하는 인앱 업데이트 기능을 더 이상 표시하지 않도록 했습니다. 그 이후로 더 새로운 버전은 출시되지 않았습니다. 특정 빌드가 어떤 기능을 제공하는지 알고 싶다면 릴리스 노트가 여전히 유일하게 유효한 페이지입니다.

하지만 저장소가 쉬고 있던 것은 아닙니다. 태그가 붙은 뒤 일주일 동안 두 갈래의 작업이 개발 브랜치에 반영되었습니다. 이 글에서는 그 내용들을 솔직하게 설명해 드립니다. 이는 다음과 같은 면책 조항으로 시작함을 의미합니다: 아래의 모든 내용은 개발 중이며, 미출시 상태이고, 어떠한 출시 날짜도 약속되어 있지 않습니다. 이 글을 쓰는 이유는 변경 기록의 침묵이 개발 중단으로 오해받는 것을 피하기 위해서입니다.

하이브리드 엔진: 하나의 플랜 대신 세 개의 슬롯

1.0.0에서 엔진 모드는 온디바이스, 관리형 클라우드, 커스텀 서비스 중 하나를 선택하는 단일 선택지였으며, 이 선택은 인식, 번역, 음성에 일괄 적용되었습니다. 이는 첫 릴리스로서는 적절한 형태였지만, 우리가 실제로 받는 요청들—클라우드 번역 품질을 원하면서도 인식은 온디바이스로 처리하고 싶어 하거나, 로컬 번역에 더 나은 호스팅 음성을 쓰고 싶어 하는 요구—에 비추어 보면 지나치게 단순했습니다.

현재 개발 중인 작업은 이 단일 플랜을 인식, 번역, 음성의 세 가지 독립적인 슬롯으로 대체하며, 각 슬롯은 허용된 소스 중에서 채워집니다. 이 설계는 코드를 작성하기 전에 문서상으로 먼저 검토되었습니다. 첫 초안은 검토를 거쳐 여러 차단 사항과 함께 반려되었고, 검토자들의 의견이 일치할 때까지 수정되었습니다. 그 과정에서 살아남은 규칙들은 1.0.0의 미흡했던 부분들이 어디였는지를 잘 보여줍니다:

  • 무음 대체 금지. 세션 진행 중에 슬롯 하나가 실패하면 해당 턴은 타임라인에서 눈에 띄게 실패로 표시되고 문제가 발생한 슬롯의 이름을 명시합니다. 세션은 다른 소스로 조용히 전환되는 대신 다음 문장을 기다립니다. 반복적으로 실패하면 배너가 해당 슬롯 변경을 제안하지만, 전환은 항상 사용자의 명시적인 선택에 따릅니다.
  • 세션 시작 시 플랜 고정. 대화 도중에 설정을 변경해도 실행 중인 세션에는 영향을 주지 않으며, 다음 세션이 시작될 때 적용됩니다. 이를 통해 어중간하게 적용된 상태로 인한 일련의 문제들을 제거합니다.
  • 단일 호출에 대한 중복 청구 방지. 클라우드 슬롯이 포함될 때 각 논리적 작업은 서버가 중복을 제거할 수 있는 안정적인 멱등성 키를 가지므로, 재시도된 요청은 다시 청구되는 대신 첫 번째 시도의 기록에서 응답을 받습니다.
  • 플랜이 아닌 조합에 대해 언어 지원 검증. 세션이 제공할 수 있는 언어 쌍은 선택된 세 가지 소스가 각각 처리할 수 있는 기능의 교집합으로 계산되며, 세션이 시작되기 전에 검증됩니다. 따라서 혼합 구성에서 3단계 중 2단계만 지원하는 언어를 제공하겠다고 약속하는 일은 발생하지 않습니다.

이 중 어느 것도 이미 출시된 내용을 변경하지 않습니다. 1.0.0의 세 가지 엔진 모드는 그대로 유지되며, 혼합 구성은 대체가 아닌 추가 기능입니다.

로컬 모드 강화

두 번째 작업 갈래는 규모가 더 작고 전술적입니다. 강화 브랜치에서 함께 개발된 온디바이스 경험을 위한 세 가지 수정 사항입니다.

이제 모델 다운로드는 처음부터 다시 시작하는 대신 중단된 지점부터 이어받을 수 있으며, 실패한 다운로드는 사라지는 대신 모델 카드에 실패 사유를 표시합니다. 취소 처리도 동일하게 개선되었습니다. 다운로드를 중지하면 진행 중인 모든 조각에 중지가 전달되며, 취소된 다운로드는 오류처럼 보이는 대신 취소되었음을 명확히 안내합니다. 세 번째 수정은 UI의 투명성에 관한 것입니다. 앱은 이제 macOS 시스템 음성이 실제로 적용되는 부분(GGUF 모델 세트는 음성 패키지를 포함하지 않으므로 시스템 음성을 사용합니다)을 사전에 안내하며, 시스템 음성이 말할 수 없는 언어(인도네시아어가 대표적인 예입니다)는 설정을 구성하기 전에 이를 명확히 표시합니다.

이러한 개선 사항들은 평소에는 한 번 겪고 지나가지만 사용할 때마다 거슬리게 되는 문제들입니다. 개발 브랜치끼리는 병합되었지만 아직 어떤 릴리스에도 포함되지 않았습니다.

우리가 의도적으로 밝히지 않는 것들

이 모든 내용에는 버전 번호나 일정이 지정되어 있지 않습니다. 아직 둘 다 존재하지 않기 때문입니다. 특히 하이브리드 엔진은 비용과 개인정보 보호를 동시에 다루는 앱의 핵심 부분에 대한 대규모 변경이며, 정해진 일정에 맞추는 것이 아니라 자체적인 완성도 기준을 충족했을 때 출시됩니다. 어떤 기능이든 실제로 출시되면 버전 번호와 함께 새로운 기능 페이지에 공개됩니다. 특정 빌드에 무엇이 포함되어 있는지를 확인하는 신뢰할 수 있는 출처는 이 블로그가 아니라 해당 페이지입니다.

이러한 방향 중 중요하게 생각하는 부분이 있거나 다른 의견이 있으시다면, 피드백 게시판에 남겨 주시는 의견이 어떤 작업을 먼저 완성할지에 실질적인 영향을 미칩니다.