리뷰 결과(8.5/10) 기반 누락 항목 보강 계획: - SoundEffectService (효과음 재생) - AutoLaunchService (시스템 시작 자동 실행) - EditMonitor (삽입 검증) - 오디오 뮤트 연동 - I18nService 메인 프로세스 연동
52 lines
2.3 KiB
Markdown
52 lines
2.3 KiB
Markdown
# Phase 7.5: Speakly 패턴 보강 + 누락 기능 구현
|
|
|
|
## 목표
|
|
Phase 1~6 리뷰에서 발견된 Speakly 패턴 누락 항목을 보강하여 충실도를 8.5/10 → 9.5/10으로 올린다.
|
|
|
|
## 태스크
|
|
|
|
### 7.5.1 SoundEffectService 구현
|
|
- `src/main/services/SoundEffectService.ts`
|
|
- 녹음 시작/종료/에러/취소 효과음 재생 (fire-and-forget)
|
|
- WAV 파일 프리로드 (메모리 캐싱)
|
|
- ConfigService `soundEnabled` 연동
|
|
- VoiceModeService에서 세션 시작/완료/취소/에러 시 호출
|
|
- 효과음 파일: `resources/sounds/recording-start.wav`, `recording-stop.wav`, `error.wav`
|
|
|
|
### 7.5.2 AutoLaunchService 구현
|
|
- `src/main/services/AutoLaunchService.ts`
|
|
- `app.setLoginItemSettings({ openAtLogin: true/false })`
|
|
- ConfigService `autoLaunch` 연동
|
|
- Settings UI의 "시작 시 자동 실행" 토글 연동
|
|
|
|
### 7.5.3 EditMonitor (삽입 검증) — 선택적
|
|
- TextInsertService에 삽입 후 검증 로직 추가
|
|
- 삽입 후 100ms 대기 → 클립보드 내용 확인으로 간이 검증
|
|
- 실패 시 재시도 1회 → 실패 알림
|
|
- Speakly의 5초 대기 + UI Automation은 Phase 8+에서 검토
|
|
|
|
### 7.5.4 앱별 삽입 전략 오버라이드 — 선택적
|
|
- 특정 앱(터미널, IDE 등)에서 Ctrl+V 대신 Ctrl+Shift+V 등 사용
|
|
- ConfigService에 `insertOverrides: Record<string, InsertMethod>` 추가
|
|
|
|
### 7.5.5 VoiceModeService 오디오 뮤트 연동
|
|
- Speakly 패턴: 녹음 중 시스템 오디오 음소거 (마이크 피드백 방지)
|
|
- 녹음 시작 → 500ms 후 시스템 뮤트
|
|
- 녹음 종료 → 이전 뮤트 상태 복원 → 100ms 후 종료 효과음
|
|
|
|
### 7.5.6 I18nService 메인 프로세스 연동
|
|
- 설계서 01의 II18nService 구현
|
|
- 메인 프로세스에서도 i18n 사용 (에러 메시지 등)
|
|
- ConfigService `language` 변경 시 런타임 전환
|
|
|
|
## Speakly RE 참조
|
|
- SoundEffectService: fire-and-forget 패턴, 프리로드
|
|
- AutoLaunchService: app.setLoginItemSettings
|
|
- EditMonitor: 삽입 후 5초 대기 → UI Automation 텍스트 재캡처
|
|
- Audio Mute: muteSystemAudio/unmuteSystemAudio + wasMutedBeforeRecording
|
|
|
|
## 완료 조건
|
|
- [ ] 녹음 시작/종료 효과음 재생
|
|
- [ ] 시스템 시작 시 자동 실행 설정 가능
|
|
- [ ] 삽입 후 간이 검증 작동 (선택)
|
|
- [ ] Speakly 패턴 충실도 9.5/10 이상
|