
쏘카프레임 - 블루투스 모듈
두줄요약
쏘카프레임은 파편화된 iOS·Android 블루투스 API를 공통 추상화 계층으로 통합했습니다. 기기별 통신 복잡성을 모듈화해 확장성과 테스트 용이성을 확보했습니다.
구조와 흐름
- 차량·자전거·전동 이동수단 단말과 앱 간 서버·블루투스 혼합 통신 구조
- BluetoothHost의 리모트 등록·가상 스캔·생명주기 관리와 BluetoothRemote의 기기별 통신 캡슐화
- 정적 기기 식별자 BluetoothSpec과 동적 통신 지침 BluetoothHandle의 관심사 분리
선택 이유
- CoreBluetooth와 android.bluetooth의 파편화된 콜백·플랫폼별 동작 차이의 공통 추상화
- iOS 단일 스캔 제약 대응을 위한 다수 스캔 요청 병합형 가상 스캔 매니저
- 앱 계층의 스캔·연결·송수신·기기별 분기 제거와 명령 의도 중심 인터페이스
장단점
- 신규 기기 구현체 추가 중심의 수평 확장과 연결 관리 레이어 파생 기반 수직 확장
- iOS·Android 공통 구조에 따른 요구사항 대응과 일정 산정의 유연성
- 하드웨어 의존성 분리와 Mock 기반 연결 끊김·패킷 유실 예외 검증 용이성
적용해볼 점
- 플랫폼 공통 BluetoothCore와 서비스 전용 BluetoothCommon의 계층 분리
- 공통 코어 모듈의 재사용 및 오픈소스 공개 가능성

