스마트폰을 CTI 교환 장비로 활용할 때 소프트웨어 엔지니어가 맞닥뜨리는 가장 혹독한 장벽은 "안드로이드 OS의 배터리 최적화(Doze Mode)로 인해 백그라운드 프로세스가 수시로 강제 종료된다"는 점입니다. 화면이 꺼진 지 10분이 지나면 네트워크 소켓이 닫혀 PC에서 전화를 걸어도 스마트폰이 반응하지 않는 현상을 완벽히 격파한 노티파이큐브의 모바일 엔지니어링 노하우를 공유합니다.
1. 안드로이드 Doze 모드와 App Standby의 동작 원리
구글은 안드로이드 6.0부터 기기 배터리 수명을 늘리기 위해 공격적인 절전 정책을 적용해 왔으며, 최근 안드로이드 14/15에서는 백그라운드 제한이 극대화되었습니다:
- Deep Doze (화면 꺼짐 + 기기 정지 상태): 기기가 충전 중이 아니고 정지 상태일 때 네트워크 액세스를 차단하고, CPU WakeLock을 무시하며 알람 작업을 지정된 유지보수 윈도우(Maintenance window)로 몰아서 실행합니다.
- 소켓 연결 강제 단절: 백그라운드 앱의 활성 TCP 소켓은 운영체제에 의해 조용히 RST 패킷이 날아가거나 타임아웃 처리되어 CTI 브리지와의 웹소켓 연결이 끊어집니다.
2. 노티파이큐브 CTI 에이전트의 4중 생존 아키텍처
노티파이큐브 모바일 에이전트는 기기가 깊은 잠(Deep Sleep)에 빠져도 0.05초 만에 깨어나 발신 및 수신 이벤트를 처리할 수 있도록 4중 방어막을 구축했습니다:
안드로이드 백그라운드 무중단 수신 기술 스택
- Foreground Service & Notifying Persistent Channel: 사용자에게 눈에 보이는 알림창(
startForeground())을 상시 유지하여 시스템 OOM 킬러(Low Memory Killer)의 처형 1순위에서 제외됩니다. - 배터리 최적화 예외 권한 등록: 시스템 설정의
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS인텐트를 통해 화이트리스트에 자동 등록됩니다. - 적응형 저전력 Ping-Pong 하트비트: 네트워크 패킷을 무작정 쏘아 배터리를 갉아먹는 대신, 45초 주기의 초경량 WebSocket Keep-Alive 신호로 라우터 NAT 테이블과 OS 소켓을 유지합니다. (일일 배터리 소모량 2.3% 미만)
- FCM 고우선순위(High Priority) 백업 채널: 만에 하나 로컬 연결이 일시 끊어지더라도 구글 FCM의 고우선순위 푸시 메시지로 즉시 단말기를 깨워 통화를 수립합니다.
3. 배터리 소모율 실측 테스트 결과 (갤럭시 S23 기준)
상담원 업무 시간인 8시간 동안 스마트폰 화면을 끈 상태에서 CTI 백그라운드 상시 대기 및 80콜 발신을 수행했을 때의 배터리 소모율 측정 결과:
| 측정 시나리오 | 소모 배터리 (%) | CPU 점유율 (평균) | 호 수신 성공률 |
|---|---|---|---|
| 8시간 화면 꺼짐 대기 모드 | 1.8% 소모 | 0.2% 미만 | 100% (지연 0.08초) |
| 80콜 발신 + 녹취 업로드 수행 | 14.2% 소모 | 1.4% | 100% 정상 완료 |
4. 결론: 하드웨어 교환기 이상의 신뢰성 확보
현대 모바일 OS의 엄격한 제어 속에서도 완벽한 프로세스 생존 아키텍처를 구현함으로써, 노티파이큐브 CTI는 별도의 전용 전화기 없이도 365일 24시간 멈추지 않는 엔터프라이즈 컨택센터의 안전성을 증명하고 있습니다.