JunSoft
ClearSpeak
AI 업무

ClearSpeak

이메일 톤·영문 작문 AI

App Store에서 보기
개요

ClearSpeak은 영어가 모국어가 아닌 직장인을 위한 온디바이스 AI 작문 코치입니다. 이메일·Slack·LinkedIn·발표·학술 등 5가지 업무 맥락과 수신자(상사·동료·고객·교수·HR 등)에 맞춰 메시지의 톤을 5개 차원으로 분석하고, 문화적으로 어색한 표현을 짚어 주며, 3가지 스타일의 리라이트를 제안합니다. iOS 26+에서는 Apple Foundation Models로 기기에서 직접 LLM 분석을 수행해 텍스트가 외부로 전송되지 않으며, 그 이하 버전에서는 NaturalLanguage 휴리스틱으로 동일한 흐름을 보장합니다.

풀고자 한 문제

비원어민 직장인은 영문 메시지가 문법적으로는 맞아도 톤이 너무 직설적이거나 격식이 어긋나 의도와 다르게 받아들여지는 경우가 많습니다. 특히 'kindly revert', 'do the needful', 'respected sir'처럼 모국어권에서는 자연스럽지만 미국식 비즈니스 영어에서는 어색하거나 오해를 부르는 표현이 문제입니다. ClearSpeak은 보내기 전에 톤·문화 적합성을 점검해 이런 오해를 줄입니다.

스크린샷

앱 미리보기

  • ClearSpeak 스크린샷 1
  • ClearSpeak 스크린샷 2
  • ClearSpeak 스크린샷 3
  • ClearSpeak 스크린샷 4
핵심 기능

무엇을 할 수 있나요

01

5차원 톤 분석

actor 기반 ToneAnalyzer가 NaturalLanguage 감정 점수·문장 분해·휴리스틱으로 Formal·Confident·Friendly·Direct·Polite 5개 차원을 0~100점 채점하고, 수신자의 기대 격식(expectedFormality)에 맞춰 종합 점수와 한 줄 피드백을 산출합니다.

02

문화 적합성 체크

CultureChecker actor가 CulturePatternDatabase의 룰 기반 패턴(예: 'kindly revert', 'do the needful')과 맥락 규칙(인사말 누락·과도한 직설/격식)을 결합해 감지하고, 모국어별 가중치를 적용해 심각도(Should Fix/Consider/Minor)와 대안 표현을 제안합니다.

03

3스타일 리라이트

RewriteGenerator actor가 감지된 문화 플래그 수정을 먼저 적용한 뒤, 원문을 Concise·Diplomatic·Confident 세 가지 룰 기반 변환으로 다시 써 주어 상황에 맞는 표현을 골라 바로 복사할 수 있습니다.

04

온디바이스 LLM 분석

iOS 26+에서는 FoundationModelService가 LanguageModelSession에 구조화된 프롬프트를 보내 톤·문화 분석 결과를 JSON으로 받아 디코딩하며, 사용자 모국어 힌트를 프롬프트에 주입해 모국어→영어 전환 패턴까지 반영합니다. 모든 처리가 기기 내에서 이뤄집니다.

05

보이스 리허설

발표·미팅 발화를 녹음하면 SpeechService가 SFSpeechRecognizer와 AVAudioEngine으로 받아쓰고, 말하기 속도(WPM)·필러 단어·긴 멈춤·명료도 등 SpeechMetrics 지표를 계산해 pace·clarity·confidence 등급으로 피드백을 줍니다.

06

대화 시뮬레이터 & 산업별 팩

SimulatorViewModel이 5가지 시나리오로 실제 상황 전 대화를 롤플레이하고 메시지마다 즉시 피드백을 주며, Tech·Healthcare·Legal·Finance 4개 산업별 상황 문구와 문화 패턴 라이브러리(IndustryPackData)를 제공합니다.

07

키보드·공유·위젯 확장

UIInputViewController 커스텀 키보드가 5단어 이상 입력 시 상단 톤 인디케이터를 띄우고(RequestsOpenAccess), Share Extension이 다른 앱의 선택 텍스트·URL을 받아 URL 스킴(clearspeak://)으로 메인 앱에 전달하며, WidgetKit 위젯이 App Group 공유 UserDefaults에서 분석 횟수·평균 점수·남은 무료 횟수를 읽어 홈 화면에 표시합니다.

08

개인화·스트릭·리포트

VoiceProfileService가 분석마다 톤 차원 평균·평균 문장 길이·자주 쓰는 표현을 running average로 학습하고, StreakService가 일일 연속 사용·마일스톤 뱃지를 관리하며, PDFKit 기반 PDFReportService가 주간/월간 리포트를 PDF로 내보냅니다. CoreSpotlight 인덱싱으로 과거 분석을 홈 화면에서 검색할 수 있습니다.

기술 스택

어떻게 만들었나요

Language & UI

Swift 6.0SwiftUIObservation (@Observable)iOS 18+ deployment

On-device AI

Apple Foundation Models (iOS 26+, LanguageModelSession)NaturalLanguage (sentiment, tokenization)Speech (SFSpeechRecognizer)AVFoundation (AVAudioEngine)

App Extensions

Custom Keyboard (UIInputViewController)Share ExtensionWidgetKitApp Intents (Siri)ActivityKit (Live Activity)

Persistence & Sharing

SwiftData (@Model)App Groups (group.com.junsoft.clearspeak)shared UserDefaults

Platform Services

StoreKit 2Core SpotlightPDFKitUserNotificationsSign in with Apple

Tooling

XcodeGenFastlaneSwift Testing
아키텍처

Core(Engine·Models·Services)와 Feature 단위로 분리한 SwiftUI 클린 아키텍처. 분석은 actor 기반 AnalysisEngine이 오케스트레이션하며, Foundation Models 가용 시 온디바이스 LLM과 휴리스틱을 병렬 실행해 LLM 결과를 우선 채택하고, 불가 시 NaturalLanguage 휴리스틱으로 graceful fallback합니다.

  1. 1

    온디바이스 우선 + fallback: AnalysisEngine actor가 FoundationModelService와 ToneAnalyzer·CultureChecker 휴리스틱을 async let으로 병렬 실행하고, LLM 결과를 변환·우선 채택하되 nil이면 휴리스틱 결과로 자동 대체해 모든 기기에서 동작.

  2. 2

    4개 타깃 멀티 익스텐션 구성: 메인 앱 + Keyboard·Share·Widget 3개 app-extension 타깃이 App Group(group.com.junsoft.clearspeak)의 공유 UserDefaults로 데이터를 주고받고, WidgetDataService가 메인 앱 통계를 위젯으로 동기화.

  3. 3

    동시성 안전 설계: Swift 6 strict concurrency 아래 분석 파이프라인을 actor(AnalysisEngine·ToneAnalyzer·CultureChecker·RewriteGenerator·FoundationModelService)로, UI/상태 서비스를 @MainActor @Observable 클래스로 분리.

  4. 4

    SwiftData 영속화: @Model AnalysisRecord·UserProfile로 분석 이력과 사용자 설정을 저장하고, ToneResult·CultureFlag·Rewrite는 JSON으로 인코딩해 레코드에 보관, CoreSpotlight로 이력을 검색 인덱싱.

  5. 5

    구독 게이팅: StoreKit 2 기반 SubscriptionService가 월간·연간 Premium(com.junsoft.clearspeak.monthly/yearly)과 청구 재시도·유예 기간을 추적하고, UsageLimiter가 타임존 안전한 정수 일자 비교로 무료 1일 5회 제한을 적용.

  6. 6

    개인화 학습(외부 전송 없음): VoiceProfileService가 톤 차원 평균·평균 문장 길이·형식체 선호도를 running average로 갱신하고 자주 쓰는 표현을 상위 빈도로 유지(최대 500개), 모두 기기 내에 저장.

  7. 7

    플랫폼 통합 레이어: App Intents로 Siri 단축어, ActivityKit로 진행 상태 Live Activity, PDFKit로 리포트 생성, UserNotifications로 일일 리마인더를 제공하는 서비스들을 Core/Services로 모듈화.

지표

140

테스트(Swift Testing)

3

앱 확장 타깃

12+

모국어 힌트 지원

5

톤 분석 차원

5

업무 맥락

4

산업별 팩