주말에 올라온 배터리 상태 조회 단축어 소개 및 강좌글을 상당히 흥미롭게 보았습니다. 해당 값을 찾아보는 법은 얼고 있었는데 단축어로 만들 생각까지는 안 했기에 단축어 애호가로서 “여기까지 생각을 왜 못 했지?” 하는 자책감이 들더군요.
그런데 댓글을 보니 아이패드 용량 계산값이 부정확해 보인다는 일부 댓글이 있어서 혹시 비슷한 사례나 단축어 제작 사례가 또 있을까 찾아봤습니다. 역시나 해외에서도 비슷한 단축어가 돌고 있더군요. 다만, 로그 데이터를 사용한다는 것 지체만 같고 데이터 추출법이나 계산법이 다른 게 눈에 띄었습니다.
핵심은, 기기에서 정식 잔여 용량 %를 보고하지 않을 때 어떻게 처리할 것이냐인데요. 국내에서 만든 단축어는 비가공(raw) /설계(design) 용량으로만 계산하는 반면 해외 단축어는 이것과 함께 명목(nominal) / 설계 용량 계신값도 같이 보여준다는 것이었습니다.

마침 저희 집에 현역으로 사용 중인 애플 기기들이 다양하게 있어서 비교 평가를 하기 좋았습니다. 6년 다 되어가는 것부터 1달 밖에 안 된 것도 있는데, 모두 iOS 15를 돌리고 있어서 로그 생성 환경은 같았습니다.

단축어를 실행하면 위와 같이 나옵니다. 왼쪽이 국내, 오른쪽이 해외 단축어입니다. 국내 것은 일단 “battery.MaximumCapacityPercent”를 찾았을 경우 그걸 바로 보여주고, 못 찾으면 “raw-battery.health”에 해당하는 값을 계산해서 보여줍니다. 해외 것은 그냥 다 보여주는 식이고요. 그래서 두 단축어를 번갈아가며 쓸 필요 없이 해외 것만 실행해보고도 계산식의 유효성을 확인할 수 있을 것으로 보였습니다.
그 결과는 다음과 같습니다.
기기명 - 사용 기간, 사이클 수, 공식 잔여 용량, 명목(nominal) 잔여, 비가공(raw) 잔여
아이폰11 프로 - 2년 7개월, 1,055 사이클, 공식 75%, 명목 75.33%, 비가공 76.72%
아이폰7 - 5년 7개월 , 1001 사이클, 공식 78%, 명목 77.54%, 비가공 66.87%
아이폰SE 2세대 - 1년 4개월, 339 사이클, 공식 88%, 명목 87.51%, 비가공 88.18%
아이폰13 프로 - 0년 7개월, 315 사이클, 공식 92%, 명목 91.78%, 비가공 94.8%
아이패드 프로 9.7 - 5년 9개월, 375 사이클, 공식 94%, 명목 94.68%, 비가공 88.52%
아이패드 프로 10.5 - 0년 1개월, 5 사이클, 공식 107%, 명목 107.11%, 비가공 105.04%
애플워치 시리즈5 - 2년 7개월, 865 사이클, 공식 82%, 명목 81.76%, 비가공 82.09%
이렇게 보니까 정확한 (혹은 애플이 의도하는) 값을 얻으려면 비가공(raw)이 아니라 명목(nominal) 용량을 사용했어야 했다는 결론이 나더군요. 물론 제가 다른 iOS 버전으로 테스트해 보지 않았기 때문에 확신할 수는 없으나, 과거 버전에 명목 값이 없어서 저렇게 처리한 것일 수도 있기는 하겠습니다. 그렇지만 만약 그런 것이라면 명목 값이 존재할 땐 그걸로 계산했어야 하지 않았을까 생각해 봅니다.
테스트 과정을 담은 영상을 참고용으로 첨부합니다.
그리고 여기서 사용한 단축어는 다음과 같습니다.
https://www.icloud.com/shortcuts/6c9bbd2ffed64efe91efc88da27cbd0d
근데... 100%가 넘는게 가능한가요
지금 s22u도 최초 충전하고나서 90% 였어요
아이패드에고ㅠ해보고시픈데 될가요ㅠ
아이패드해보았는대 로그도 생성되었는대 표현식을 평가할 수 없습니다. 라고 나오네요 ㅠㅠ
battery.MaximumCapacityPercent 변수를 사전 값으로 설정 << 요 부분 이거나 아니면 다음 문장
계산 표현식 (battery.nominal_charge_capacity*100)/battery.design_capacity << 요 부분에서 걸리는거 같은대
뭘 수정해야 하는지는 모르겠네요ㅠㅠ