사례 인덱스
회사 프로젝트 · 실시간 디바이스
스마트 글래스 실시간 플랫폼
모바일·데스크톱·스마트 글래스가 함께 동작하는 실시간 오디오·자막 제품에서 BLE 메시지 전송, 연결 복구, 키오스크와 원격 업데이트 기능을 맡았습니다.
- 역할
- 앱 플랫폼 설계 · 개발 리드
- 영역
- 실시간 멀티 디바이스 제품
- 구분
- 회사 프로젝트
문제와 제약
BLE는 데이터를 작은 조각으로 나눠 보내야 했고, 순서가 바뀌거나 일부만 도착해도 다시 조립해야 했습니다. 네트워크가 끊긴 뒤에도 현장에서 복구할 수 있어야 했습니다.
- 01서로 다른 운영체제의 모바일·데스크톱·스마트 글래스 앱을 함께 다뤘습니다.
- 02BLE 전송은 작은 단위, 순서 변화와 부분 수신을 고려해야 했습니다.
내가 맡은 범위
- 01공통 패키지와 플랫폼 전용 경계 설계
- 02BLE 메시지 분할·재조립과 실시간 연결 복구 구현
- 03키오스크·네트워크 상태·원격 업데이트 등 현장 운영 기능 통합
핵심 판단
01
기기 통신을 화면 이벤트가 아닌 프로토콜로 다뤘습니다.
메시지 식별자·순번·전체 크기를 기준으로 데이터를 분할·재조립하고 순서 변화와 작은 전송 단위를 독립 테스트로 다뤘습니다.
02
정상 연결과 재연결 로직을 분리했습니다.
연결 상태와 재연결 전략, 오디오 처리를 화면에서 떼어내 네트워크 변화가 제품 전체를 불안정하게 만들지 않도록 했습니다.
03
현장 운영을 제품 기능으로 포함했습니다.
화면 유지, 네트워크·무음 상태, 키오스크와 업데이트를 운영자의 수동 체크에만 의존하지 않게 했습니다.
구현한 내용
- 01여러 Flutter 앱이 함께 쓰는 공통 패키지
- 02BLE central·peripheral 메시지 전송
- 03WebSocket·오디오 연결 복구
- 04키오스크·기기 상태·원격 업데이트
- 01모바일 제어
- 02BLE 메시지
- 03실시간 연결
- 04글래스 화면
- 05현장 운영
이해를 돕기 위해 주요 단계만 단순화했습니다.
구현과 결과
구현 내용
- 01
메시지 분할·재조립, 역순 청크, 작은 전송 단위, 연결 상태와 오디오 변환을 다루는 테스트 코드를 작성했습니다.
결과
- 01
통신, 오디오와 현장 운영 코드를 화면에서 분리해 세 클라이언트가 같은 기반을 사용하도록 정리했습니다.