내용과 약간 관계있는 이야기. 저는 지오로케이션등등 비전문가이니 다음의 글은 대충 뉘앙스만 보세요. 틀린 내용이 있을 수 있음.
통신 속도가 빠르면 왜 배터리를 덜 먹게 구현할 수 있을까에 의한 의문과 추정들.
이것은 생각보다 간단한 이유다. 초저전력 배터리 디바이스들은 대부분의 시간동안 잠을 자고 있다. 아주 짧은 텀으로 자다가 잠깐 깨서 나한테 들어온 통신이 있는지 확인하고 도로 잔다. 무식하게 폴링하지 않는다. 폴링을 한다고 해도 폴링 파츠를 초절전으로 따로 빼다놓고 메인파츠를 인터럽트로 깨워서 여보세요 일할 시간이에요라고 전한다. 유선이면 인터럽트 구현이 쉽지만 무선이면 어쨌든 폴링에 가까운 캐치를 하기 위에서 자고깨고자고깨고를 잘해야 하는데, 자고 깨는 것도 비용이라 이 전환의 가격이 비싸다면 또 적절히 잘해야 하겠다. 어쨌든 깨어났을때 통신이 고속이라도 후다닥 처리하고 다시 잘 수 있다면 배터리를 더 아낄 수 있다. 물론 고속이랍시고 대용량을 무식하게 들이붓는 상황은 아니다. 통신이 느리면 느릴 수록 내 주파수로 뭔가 들왔는디? 이거 내껀가? 확인될 때까지 좀 더 받아보자 하는 시간이 길어진다.
블루투스 신형 버전이라면, 잘은 몰라도 페어링 이전의 최하위 레이어에서 이 관리를 잘 해서 배터리 절약을 잘할 것 같다. BLE를 읽어보진 않았지만. 여튼 예상은 그러한데 BLE 영역을 상위 레이어에서 간섭하는 인터페이스가 열려있고, 이것을 상위 레이어에서 탐지율 올린다고 공격적으로 간섭하기 시작하면 예상한 만큼의 저전력 구현은 안 될 것 같다. 내가 OS나 스택 설계자라면 잘 막아둘 것 같다.
초음파라면 어떨까. 상대적으로 겁나 느린 통신이다. 통신의 시작부를 캣치하는 레이어가 하드웨어적으로 구성되어 있지 않았다면 상위 레이어의 소프트웨어가 매번 깨어나서 얘를 폴링해야 하는데, 무선 통신 대비 꽤나 오랜 시간을 탐침해야 한다. 배터리 빨아먹는다. 이건 당연히 알려진 사실일테고, 그렇다면 BLE, 와이파이, LTE, GPS등을 다 조합해야 한다. 갖고 있는 저전력 도구들을 이용해 초음파 인터벌 폴링을 할 구획에 in/out 되었는지 판단하여 초음파 통신 시작부를 캣치해야 한다. 고달픈 일이다. 구획 in/out 만으로도 문제다. in해서 오랜시간 머무른다면 in 해 있는 동안 초음파 통신을 탐침한다고 배터리를 빨아먹기 시작할 것이다. 인터벌을 길게하면 순식간에 일어나는 통신을 놓칠 빈도가 늘어난다. 송신측에서 드럽게 자주 쏴주고 수신측에서는 가끔 깨어나서 통신이 들어맞을 확률을 높혀서 해결할 수는 있다. 방송 등 브로드캐스트 측면의 송신디바이스는 배터리에서 자유로우니 괜찮다.