Korat
기능

운동 기록과 GPS 경로, 그리고 하루의 링

건강과 운동은 열두 가지 활동, GPS로 그려지는 실시간 경로 지도, 날짜를 넘어 이어지는 링과 연속 기록, 그리고 Korat에서 이미 이야기를 나누는 사람들이 내 달리기를 보고 응원을 누르는 피드.

건강과 운동 기록은 대개 둘 중 하나로 실패합니다. 아무도 보지 않는 아름다운 개인 그래프가 되어, 나가기 싫은 날 나를 끌어당기는 것이 아무것도 없거나. 아니면 모르는 사람들의 소셜 네트워크가 되어, 응원을 보내는 사람이 나를 모르니 그 격려가 일반명사가 되거나. Korat의 운동 모듈은 이미 채팅과 그룹과 피드로 쓰고 있는 앱 안에 있습니다. 그래서 토요일 아침 라이딩의 관객은 월요일에 그 이야기를 물어볼 바로 그 사람들입니다. 아래의 모든 결정이 이 전제에서 나옵니다.

열두 가지 활동, 그중 GPS가 필요한 것은 넷

앱은 열두 가지 활동을 기록합니다. 달리기, 걷기, 자전거, 등산, 러닝머신, 수영, 헬스, 요가, 줄넘기, 축구, 배드민턴, 복싱. 그중 넷 — 달리기, 걷기, 자전거, 등산 — 이 GPS로 추적됩니다. 지도 위를 실제로 이동하고 경로가 기록의 일부이기 때문입니다. 나머지 여덟은 아니고, 앱도 그런 척하지 않습니다. 요가 세션에는 시간과 강도가 있지 폴리라인이 없습니다. 한 시간의 배드민턴을 GPS 칩에게 묘사시키면 데이터가 아니라 낙서가 나옵니다.

추적되는 넷은 진행 중에 거리, 시간, 페이스가 실시간으로 보이고 일시정지·재개·종료가 있습니다. 경로는 끝난 뒤의 요약을 기다리지 않고 OpenStreetMap 위에 달리는 동안 그려집니다. 걸음 수는 GPS 이동에서 추정하지 않고 기기의 걸음 센서에서 읽습니다. 그래서 실내에서 주머니에 넣고 있어도 계속 세어지고, 건물 사이에서 신호가 끊겨도 무너지지 않습니다.

목표는 내가 지어내는 숫자가 아니라 레벨에서 나옵니다

운동 모듈을 처음 열면 앱은 빈 목표 입력란을 내미는 대신 두 가지를 묻습니다. 다섯 개 중 하나의 목적, 그리고 네 개 중 하나의 수준. 그 2×2의 답이 활동별 제안 목표를 만들고, 이후에 직접 고칠 수 있습니다. 이렇게 돌려 묻는 이유는, 대부분의 사람이 첫날에 좋은 주간 거리 목표를 고르지 못하기 때문입니다. 야심 찬 숫자를 적고, 2주 차에 놓치고, 연속 기록 카운터가 실패의 기록으로 바뀝니다. 무엇을 위해 하는지와 대략 어디서 출발하는지를 물으면 닿을 수 있는 첫 목표가 나오고, 실제 한 주와 부딪혀 살아남는 목표는 그런 종류뿐입니다.

설정이 끝나면 목표는 활동별로 존재합니다. 달리기 목표와 자전거 목표는 하나로 섞인 체력 점수가 아니라 별개의 숫자입니다. 진행 상황은 걸음·킬로칼로리·킬로미터의 활동 링과 주간 막대 그래프로 보여서, 총합만이 아니라 실제로 어떤 날에 움직였는지가 보입니다. 연속 기록은 연달아 채운 날을 셉니다. 그리고 어떤 운동 앱에서든 가장 큰 동기이자 가장 가혹한 숫자이기 때문에, 헤드라인이 아니라 링 옆에 놓았습니다.

센서가 볼 수 없는 것을 위한 일일 기록

중요한 것이 모두 활동인 것은 아닙니다. 앱은 물, 체중, 수면 등을 직접 입력하는 일일 기록으로 갖고 있습니다. 얼마나 마셨는지, 얼마나 잘 잤는지는 어떤 휴대폰 센서도 알려주지 못하기 때문입니다. 이 기록은 같은 건강 프로필 안에서 운동 이력 옆에 놓입니다. 그래서 거리가 줄어든 주에 수면 기록도 함께 줄었다면, 그것이 끊어진 두 개의 그래프가 아니라 하나의 이야기로 읽힙니다. 건강 프로필 자체는 날마다 바뀌지 않아 매번 다시 입력할 필요가 없는 사실들을 담습니다.

응원, 그리고 이 피드가 메인 피드와 분리된 이유

끝낸 활동은 커뮤니티 활동 피드에 올릴 수 있고, 다른 사람이 응원을 누를 수 있습니다. 응원은 일부러 작은 동작입니다. 한 번의 탭, 댓글 스레드가 필요 없고, 「누군가 이걸 봤다」 이상을 뜻하는 숫자도 아닙니다. 등산로 입구에서 주고받는 목례의 운동판입니다. 이것을 메인 피드에 쏟지 않고 별도 피드로 둔 이유는, 운동 게시물의 리듬이 소셜 게시물과 다르기 때문입니다. 주 5일 훈련하는 사람이 공용 타임라인을 덮어버리고, 자기 알고리즘으로 정렬되는 메인 피드가 그 물량과 싸우게 됩니다.

특정 활동을 더 넓은 곳에 보여주고 싶을 때는 공유 편집기가 있습니다. 고른 배경 위에 문구를 얹어 Korat 피드로, 스토리로, 채팅의 친구에게, 또는 휴대폰의 다른 앱으로 보냅니다. 마지막 경로가 중요합니다. 목적은 성취를 Korat 안에 가두는 것이 아니라, 실제로 기록된 세션에서 보기 좋은 카드를 만들어 원하는 곳에 두게 하는 것입니다.

그 숫자들이 실제로 무엇인지

거리와 페이스는 세션 중에 표본으로 수집한 GPS 위치에서 나오므로 GPS의 평범한 성질을 그대로 물려받습니다. 정확도는 하늘이 얼마나 보이는지에 따라 달라지고, 지붕 덮인 시장 아래에서 기록한 경로는 같은 길을 트인 곳에서 기록한 것과 다르게 보입니다. 걸음 수는 기기의 전용 걸음 센서에서 오므로 걸음 수와 GPS 거리는 서로 독립된 출처를 갖습니다. 킬로칼로리는 활동에서 도출한 추정치이지 측정값이 아닙니다. 어떤 휴대폰도 에너지 소비를 측정할 수 없고, 그래서 앱은 그 숫자를 사실이 아니라 링을 이루는 세 입력 중 하나로 놓습니다.

건강은 안드로이드 앱에만 있습니다. 웹 앱에는 이 모듈이 없고, 이는 못 만든 것이 아니라 결정입니다. 한 번의 기록에는 화면이 꺼진 채로도 위치를 계속 추적해야 하는데 브라우저는 그것을 제대로 못 합니다. 중간에 경로를 잃는 절반짜리 버전은 정직한 「앱에서 여세요」보다 나쁩니다 — 정직한 쪽은 달린 시간을 버리게 하지 않으니까요.

심박 데이터가 없고, 웨어러블 연동도 없습니다. Korat은 휴대폰의 GPS와 걸음 센서만 읽습니다. 흉부 스트랩이나 시계로 훈련한다면 그 데이터는 앱으로 들어오지 않으며, 앱도 내 심박 구간을 아는 척하지 않습니다.

세션은 휴대폰을 지니고 있고 위치 권한이 허용되어 있어야 성립합니다. 권한 사전 안내 화면이 시스템 대화상자가 뜨기 전에 각 안드로이드 권한을 왜 요청하는지 설명하며, 위치를 거절하면 모듈이 막히는 것이 아니라 GPS 활동 네 가지가 사라집니다.

나머지 앱과 맞물리는 방식

운동은 한 계정을 쓰는 한 앱 안의 한 모듈입니다. 응원을 누르는 친구는 채팅에 있는 그 친구이고, 러닝 모임은 글과 역할과 가입 요청이 있는 평범한 Korat 그룹일 수 있으며, 공유한 활동은 그 그룹의 대화에 평범한 게시물로 바로 들어갑니다. 별도의 운동 계정도, 두 번째 친구 목록도, 경로 데이터를 들고 있는 서드파티 서비스도 없습니다. 나머지 전부와 같은 Supabase 백엔드에 있습니다.

활동 종류
12가지 — 달리기, 걷기, 자전거, 등산, 러닝머신, 수영, 헬스, 요가, 줄넘기, 축구, 배드민턴, 복싱
GPS 추적
달리기·걷기·자전거·등산 — 실시간 거리, 시간, 페이스, 경로 지도
지도
OpenStreetMap, 세션 중에 실시간으로 그려짐
걸음
기기의 걸음 센서에서 읽음
걸음 · 킬로칼로리 · 킬로미터
첫 설정
5개 중 목적 하나 × 4개 중 수준 하나
일일 기록
물, 체중, 수면 등
소셜
커뮤니티 활동 피드, 응원, 공유 편집기

누군가와 함께 달리고 순위표를 보고 싶다면 스포츠 클럽입니다. 여기의 개인 기록이 그대로 여럿의 일이 됩니다.

한 번의 훈련을 공개해도 되겠다 싶으면, 그것은 피드의 지극히 평범한 게시물이 되고 댓글과 알림도 똑같이 움직입니다.

자주 묻는 질문

스마트워치나 심박 스트랩과 연동되나요?

되지 않습니다. 앱은 휴대폰의 GPS와 내장 걸음 센서만 읽으며 어떤 종류의 웨어러블 연동도 없습니다. 모듈 어디에도 심박 데이터가 없습니다.

그래서 세션에는 휴대폰이 몸에 있어야 합니다. 두고 나가면 활동은 기록되지 않습니다.

GPS 없이 헬스나 요가도 기록되나요?

됩니다. 열두 가지 중 여덟 가지 — 러닝머신, 수영, 헬스, 요가, 줄넘기, 축구, 배드민턴, 복싱 — 는 경로가 아니라 시간으로 기록됩니다.

그래도 목표와 링, 연속 기록에는 그대로 반영됩니다.

제 활동은 누가 보나요?

끝낸 활동은 다른 사람이 응원을 누를 수 있는 커뮤니티 활동 피드로 보낼 수도 있고, 아무것도 공유하지 않고 나만 가질 수도 있습니다.

공유할 때는 편집기가 Korat 피드, 스토리, 채팅의 친구, 또는 휴대폰의 다른 앱으로 보냅니다. 한 번 정해 두는 것이 아니라 매번 고릅니다.

칼로리 숫자는 어떻게 계산되나요?

측정값이 아니라 활동에서 도출한 추정치입니다. 어떤 휴대폰도 에너지 소비를 직접 측정하지 못합니다.

그래서 킬로칼로리는 헤드라인이 아니라 세 개의 링 중 하나입니다. 거리와 걸음은 측정되고, 칼로리는 추론됩니다.

하루 빠지면 연속 기록은 어떻게 되나요?

초기화됩니다. 연속 기록은 연달아 채운 날을 세며, 휴식일 크레딧이나 정지 기능은 없습니다.

첫 실행에서 목표 숫자를 직접 적게 하지 않고 목적과 수준을 묻는 이유이기도 합니다. 기분 좋을 때 고른 목표가 2주 차에 연속 기록이 끊기는 흔한 원인입니다.

기록을 시작하세요

Korat은 한 계정으로 쓰는 무료 안드로이드 앱과 웹 앱입니다. 운동은 그 안의 한 모듈입니다.