같은 10km인데 GPS 거리는 왜 앱마다 다를까
짧은 답
달리기 앱과 시계는 거리를 직접 재지 않는다. 위성 신호로 받은 위치를 점으로 찍고 그 점들을 이은 선의 길이를 더하기 때문에, 점을 찍는 간격과 튀는 점을 거르는 방식, 멈춘 시간을 다루는 기준에 따라 같은 길에서도 다른 숫자가 나온다. 건물과 다리처럼 신호를 가리는 것들은 그 차이를 키운다. 기기끼리 숫자를 맞추기보다 한 기기로 꾸준히 재서 자기 기록끼리 비교하는 편이 낫다.
거리는 잰 값이 아니라 계산한 값이다
달리기 앱이나 시계 안에 줄자는 없다. 기기는 위성 신호로 지금 있는 자리를 추정해 지도 위에 점을 하나 찍고, 조금 뒤에 다음 점을 찍는다. 달린 거리는 이웃한 점 사이의 길이를 출발부터 도착까지 더한 값이다.
그래서 화면의 숫자는 길의 길이가 아니라 점을 이은 선의 길이다. 점이 길 위에 정확히 놓이고 충분히 촘촘하면 둘은 거의 같다. 그렇지 못할 때 어긋나는데, 얼마나 자주 찍고 어떤 점을 버릴지는 앱과 기기를 만든 쪽이 저마다 정한다. 나란히 달린 두 사람의 기록이 다른 것은 고장이 아니라 계산법이 달라서다.
위치를 찍는 간격이 다르다
점을 자주 찍을수록 선은 실제로 달린 길에 가까워진다. 간격이 벌어지면 굽은 길을 직선으로 가로지르게 된다. 호수를 한 바퀴 돌았는데 점이 여덟 개뿐이라면 기록에는 원이 아니라 팔각형이 남고, 팔각형의 둘레는 원보다 짧다. 굽은 구간이나 반환점이 많은 코스에서 거리가 적게 나오는 까닭이다.
그렇다고 촘촘한 쪽이 늘 정확한 것은 아니다. 점마다 오차가 있어서 곧게 달려도 점은 길 좌우로 조금씩 흩어진다. 이 점들을 빠짐없이 이으면 선이 지그재그가 되어 길이가 늘어난다. 배터리를 아끼려고 간격을 넓히는 절전 설정이 켜져 있으면 그것만으로도 숫자가 달라진다.
튀는 점을 거르는 방식이 다르다
받은 위치를 손대지 않고 쓰는 앱은 드물다. 대부분은 앞뒤와 동떨어진 점을 버리거나 여러 점을 평균해 선을 매끄럽게 다듬는다. 사람이 낼 수 없는 속도로 옮겨 간 것처럼 보이는 점을 지우는 식이다.
얼마나 세게 다듬을지에는 정답이 없다. 약하게 다듬으면 튄 점이 남아 거리가 불어나고, 세게 다듬으면 실제로 꺾어 돈 모퉁이까지 둥글게 깎여 거리가 줄어든다. 달리는 중에 본 숫자와 저장한 뒤의 숫자가 다른 앱도 있다. 달리는 동안에는 방금 들어온 위치만으로 계산하지만, 끝난 뒤에는 경로 전체를 놓고 다시 다듬을 수 있어서다. 순간 페이스가 유난히 오르내리는 것도 뿌리가 같은데, 그 원리는 화면 속 페이스가 출렁이는 이유에서 설명한다.
멈춘 시간을 다루는 기준이 다르다
신호등 앞에 서 있는 동안에도 위치는 계속 들어온다. 몸은 멈췄지만 점은 오차 때문에 제자리 둘레를 떠돈다. 이 움직임까지 더하면 한 걸음도 떼지 않았는데 거리가 조금씩 쌓인다.
많은 앱이 이를 막으려고 자동 일시정지를 둔다. 속도가 어느 값 아래로 떨어지면 멈춘 것으로 보고 기록을 세우는 기능이다. 그 기준값도, 다시 달리기 시작했다고 판단하는 시점도 앱마다 다르다. 기준이 높으면 천천히 걸은 구간이 통째로 빠지고, 다시 출발한 뒤의 몇 걸음이 기록에서 사라지기도 한다.
건물과 다리가 신호를 가린다
여기까지는 신호가 좋을 때의 이야기다. 위성 신호는 하늘이 트인 곳에서 가장 잘 잡힌다. 높은 건물 사이에서는 벽에 부딪혀 돌아 들어오고, 다리 밑이나 터널에서는 아예 끊긴다. 그러면 점이 길 건너 건물 안이나 강 한가운데에 찍힌다.
이럴 때 기기가 하는 일도 저마다 다르다. 끊긴 구간을 직선으로 잇는 앱이 있고, 걸음 수와 직전 속도로 빈 구간을 채우는 기기가 있으며, 튄 점을 그대로 받아들이는 쪽도 있다. 같은 곳을 지나도 한쪽은 거리가 줄고 다른 쪽은 늘어난다. 한강 다리 아래와 빌딩 사이에서 벌어지는 일은 다리 밑에서 GPS가 튀는 이유에서 자세히 본다. 러닝머신 위처럼 위성 신호가 닿지 않는 곳에서는 실내에서 거리를 재는 방식이 따로 있다.
원인별로 정리하면
| 원인 | 기록에 나타나는 모습 | 할 수 있는 일 |
|---|---|---|
| 위치를 찍는 간격 | 성기면 짧게, 촘촘하면 길게 나온다 | 절전 설정을 확인한다 |
| 튀는 점 거르기 | 달리는 중과 저장한 뒤의 숫자가 다르다 | 저장한 뒤의 숫자를 본다 |
| 멈춘 시간 처리 | 신호등이 많은 길에서 차이가 커진다 | 자동 일시정지 설정을 바꾸지 않는다 |
| 건물과 다리 | 경로가 길 밖으로 튄다 | 하늘이 트인 곳에서 출발한다 |
기기끼리는 얼마나 다를까
차이의 크기를 잰 실험이 있다. 2024년 7월 학술지 Sensors에 실린 스마트워치 정확도 검증 연구는 시계 10종으로 400m 트랙에서 4000m 달리기를 여섯 번 쟀다. 거리 오차는 기기에 따라 0.8%에서 12.1%까지 벌어졌다. 4000m에서 0.8%는 32m이고 12.1%는 484m다. 언덕이 있는 3.4km 야외 코스에서는 0.2%에서 7.5% 사이였다.
이 결과는 그 시점의 시계 10종을 잰 것이어서 소프트웨어나 환경이 바뀌면 값도 달라진다. 휴대폰 앱을 잰 실험이 아니어서 이 숫자를 휴대폰에 그대로 옮길 수도 없다. 여기서 읽을 것은 숫자 하나하나가 아니라, 같은 트랙에서도 기기에 따라 이만큼 차이가 났다는 사실이다.
대회 공인 거리와 내 기록이 다른 이유
대회를 마치고 기록을 열어 보면 10km 대회인데 10km가 넘게 찍혀 있는 일이 흔하다. 마라톤 거리는 1921년에 42.195km로 표준화됐지만 완주한 사람의 화면에는 그보다 긴 숫자가 남곤 한다. 코스를 잘못 쟀다고 생각하기 쉬운데, 대개는 그렇지 않다.
공인 코스의 거리는 주자가 달릴 수 있는 가장 짧은 경로를 따라 잰다. 모퉁이마다 안쪽에 바짝 붙어 도는 선이다. 실제 대회에서 그 선을 그대로 밟는 사람은 드물다. 앞사람을 피해 옆으로 빠지고, 급수대에 들르고, 모퉁이를 크게 돈다. 그렇게 달린 길은 측정한 선보다 길다. 도심 구간의 신호 오차와 앞에서 본 계산법의 차이도 여기에 얹힌다.
내 기록은 이렇게 읽는다
어느 기기의 숫자가 맞는지 가려낼 방법은 마땅치 않다. 알 수 있는 것은 자기 기기가 어느 쪽으로 기우는지다. 육상 트랙이나 거리 표지가 있는 하천 자전거길처럼 길이를 아는 곳에서 몇 번 달려 본다. 번번이 조금 길게 나온다면 그것이 그 기기의 버릇이다.
더 쓸모 있는 방법은 견줄 상대를 바꾸는 것이다. 남의 기기와 맞춰 보는 대신 같은 기기, 같은 설정으로 잰 자기 기록끼리 비교한다. 오차는 대체로 비슷한 방향으로 생기므로, 같은 코스를 지난달보다 얼마나 편하게 달렸는지는 충분히 읽힌다. 앱을 바꾸거나 시계를 새로 샀다면 그 앞뒤의 기록은 곧바로 잇지 않는 편이 좋다. 출발 전에 손볼 설정은 휴대폰으로 러닝을 기록하는 법에 모아 두었다.
기록에 찍힌 거리는 눈금이 고운 줄자가 아니라 꽤 쓸 만한 어림값이다. 끝자리가 옆 사람의 화면과 조금 다르다고 해서 달린 길이 달라지지는 않는다.
자주 묻는 질문
- 같은 코스를 뛰었는데 왜 앱마다 거리가 다르게 나오나요?
- 앱은 거리를 직접 재지 않고 위치를 찍은 점 사이의 길이를 더한다. 점을 찍는 간격, 튀는 점을 거르는 방식, 멈춘 시간을 다루는 기준이 앱마다 달라서 숫자도 달라진다.
- 마라톤 대회에서 시계 거리가 공인 거리보다 길게 나오는 이유는 무엇인가요?
- 공인 코스는 주자가 달릴 수 있는 가장 짧은 경로를 따라 잰다. 실제 대회에서는 앞사람을 피하고 급수대에 들르고 모퉁이를 크게 돌기 때문에 달린 길이 그보다 길어진다.
- GPS 거리를 더 정확하게 재려면 어떻게 해야 하나요?
- 하늘이 트인 곳에서 위치가 잡힌 뒤에 출발하고, 위치를 찍는 간격을 넓히는 절전 설정을 끈다. 그래도 오차는 남는다. 같은 기기와 같은 설정으로 꾸준히 재서 자기 기록끼리 비교하는 것이 현실적인 방법이다.