프로그램/개발품들...

Wavve+ Android TV / v1.2.0 업데이트 안내(채팅 기능추가)

체력덩이!! 2026. 2. 27. 13:29

 

안녕하세요..

이제 겨울은 다 갔는지 봄비가 내리네요..

 

Wavve+ v1.2.0 업데이트했습니다.

 

1.실시간 채팅기능 추가

- 환경설정 채팅기능 활성화시 채팅방 모듈 추가

- 라이브 및 vod 방송 시청시 실시간 채팅 기능 추가

( 컨텐츠 시청중 리모컨 위로버튼을 누르고 있으면 채팅창 열림 / 아래로 버튼 누르고 있으면 채팅창 닫힘)

- 빠른말 전송기능 및 빠른말 등록 기능(스마트폰 자판입력 창)

- 입력 메세지 기능 및 핸드폰으로 문자 입력 지원

(음성인식 텍스트입력 모드 및 스마트폰 자판 입력 기능 추가(QR코드로 사이트 연결 및 연동))

 

2. TVING 로그인

- TVING 인증 후 프로필 선택 기능 추가

 

3. 컨텐츠 재생시 에러 복구 로직 추가

- 하드웨어 문제등으로 초기화 에러시 자동 화질 변경 기능 추가 (1080p -> 720p -> 480p)

 

4. 환경설정 기능 추가

- 화면의 메인메뉴 버튼 높이 및 사이즈 설정 추가(화면설정)

- 실시간 채팅 기능 추가 / 대화명 설정 및 채팅창 투명도 설정 (채팅설정)

 

5. 코드 안정화

 

 

 

환경설정에서 채팅설정의 채팅기능 활성화를 하셔야 아래 기능이 동작됩니다.

 

실시간 TV 나 VOD 보시면서 리모컨 위로가기 꾹 누르시면 채팅창이 나오고요..

음성 메세지 택스트 변환되서 올라가고

빠른말 전송

QR코드로 스마트폰에서 입력하셔도 됩니다.

 

채팅창닫는건 리모컨 아래로 꾹 누르시면 닫힙니다..

채팅창이 떠 있을떄는 위 아래 채널 변경은 안되구여..

 

스마트폰은 화면 두번 클릭하시면 창이 나옵니다. 닫는것도 두번 클릭...

 

버그가 얼마나 생길려나 모르겠네요..~

 

 

🚀 Wavve+ TV: 스마트 실시간 채팅 시스템 기술 스펙 정리

1. 개요 (Overview)

Wavve+ 채팅 시스템은 안드로이드 TV 시청 경험을 단순한 관람에서 '소통'으로 확장하기 위해 설계되었습니다. 리모컨 타이핑의 한계를 **스마트폰 동기화(Story Mode)**와 음성 인식(STT) 기술로 해결한 것이 특징입니다.


2. 핵심 기술 스택 (Tech Stack)

  • Framework: Flutter (Cross-platform)
  • Backend: Firebase Realtime Database (NoSQL, Real-time Sync)
  • Authentication: Firebase Anonymous Auth (기기별 고유 UID 발급)
  • Hosting: Firebase Hosting (모바일 입력 웹페이지 배포)
  • State Management: StreamBuilder (실시간 데이터 바인딩)

3. 주요 기술 기능 (Core Features)

① 하이브리드 입력 시스템 (Triple Input Method)

TV 리모컨의 불편함을 해결하기 위해 세 가지 입력 방식을 동시에 지원합니다.

  • 스마트폰 연동 (QR Sync): TV 화면의 QR 코드를 스캔하면 별도의 앱 설치 없이 모바일 웹 자판을 통해 채팅 입력 및 TV 상용구 버튼 실시간 편집 가능.
  • 음성 인식 (Speech-to-Text): speech_to_text 패키지를 활용, 리모컨 마이크를 통해 음성을 텍스트로 변환하여 전송.
  • 커스텀 상용구 (Quick Phrases): 자주 쓰는 문구를 버튼화하여 리모컨 OK 버튼 한 번으로 전송.

② 실시간 데이터 동기화 (Real-time Sync & Tracking)

  • TV-모바일 동기화: TV에서 채널을 돌리면 핸드폰 웹페이지가 이를 감지하여 자동으로 해당 채널 채팅방으로 이동하는 '채널 트래킹' 구현.
  • 지능형 Presence: onDisconnect 로직을 활용하여 사용자가 앱을 종료하거나 방을 나갈 때 실시간 인원수를 정확히 집계.
  • 실시간 메시징: WebSocket 기반의 Firebase Stream을 사용하여 0.1초 내외의 초저지연 메시지 전송 구현.

③ TV 최적화 UI/UX (TV Optimized Experience)

  • 포커스 관리 (Focus Management): FocusNode FocusScope를 정밀 제어하여 채팅창 열기/닫기 시 리모컨 주도권을 완벽하게 관리.
  • 가속 탐색 (Accelerated Focus): 상용구 리스트가 길어질 경우 Scrollable.ensureVisible을 통해 포커스를 따라 리스트가 자동으로 스크롤됨.
  • 오디오 세션 제어: 음성 인식 시 방송 소리가 멈추지 않도록 audio_session mixWithOthers 옵션을 적용하여 끊김 없는 시청 환경 제공.

4. 데이터 최적화 및 보안 (Data & Security)

① 데이터 다이어트 (Data Pruning)

서버 부하와 비용을 절감하기 위해 지능형 데이터 관리 로직을 적용했습니다.

  • 최신 50개 제한: limitToLast(50)를 사용하여 채팅창 진입 시 메모리 사용량 최소화.
  • 자동 삭제 로직 (Pruning): 메시지가 100개가 넘어가면 가장 오래된 데이터를 20개씩 자동 삭제하여 DB 용량 최적화. (단, 공지/건의방은 보존)

② 강력한 보안 규칙 (Security Rules)

Google Cloud Console과 Firebase를 연동한 다층 보안을 적용했습니다.

  • 도메인 화이트리스트: 등록된 주소(*.web.app, localhost) 외의 불법 API 접근 차단.
  • UID 검증: auth != null 조건을 통해 인증된 사용자만 쓰기 권한 부여.
  • 데이터 변조 방지: 이미 작성된 메시지는 수정/삭제가 불가능하도록 !data.exists() 규칙 적용.
  • 특수문자 필터링: Firebase 경로 에러를 유발하는 특수문자(., #, $, [, ])를 자동으로 세척(Sanitize)하는 로직 포함.

5. 주요 라이브러리 (Dependencies)

라이브러리 용도
firebase_database 실시간 NoSQL 데이터 통신
qr_flutter 스마트폰 연동용 QR 코드 생성
speech_to_text 리모컨 마이크 음성 인식 엔진
intl 채팅 시간 및 날짜 포맷팅
audio_session 음성 인식 중 배경음 제어

6. 마무리

단순히 "글자를 주고받는 기능"을 넘어, TV 기기의 물리적 제약을 소프트웨어적으로 어떻게 해결했는가가 이번 프로젝트의 핵심입니다. 특히 Firebase를 활용한 기기간 상태 동기화는 안드로이드 TV 앱 개발의 새로운 사용자 경험(UX) 방향을 제시합니다.