Google Fit 플랫폼은 Android 사용자의 신체 활동 및 건강 데이터를 수집, 저장 및 분석하기 위한 Google의 에코시스템입니다. Google Developers, 2025에 따르면, 이 플랫폼은 Fitness API, Sensors API 및 Sessions API를 Google Cloud와 동기화되고 REST 요청을 통해 액세스할 수 있는 단일 아키텍처로 결합합니다. 통합 건강 프로필을 통해 사용자는 어떤 앱이 자신의 피트니스 및 웰빙 데이터에 액세스할 수 있는지 제어할 수 있습니다.
주요 사항
Google Fit은 Google이 2014년 I/O 컨퍼런스에서 출시한 건강 관리 플랫폼입니다. 이 플랫폼은 신체 활동 데이터를 읽고 쓰기 위한 통합 API를 제공하여 앱이 Google 클라우드의 중앙 저장소를 통해 정보를 교환할 수 있도록 합니다.
독점 솔루션과 달리 Google Fit은 Android 운영 체제 및 REST API를 통해 iOS에서 작동합니다. 사용자는 피트니스 밴드, 스마트워치 및 활동 추적 앱을 연결할 수 있으며 Google Fit은 모든 데이터를 Google Cloud의 단일 건강 프로필로 집계합니다.
Google I/O 2024에 따르면, 이 플랫폼은 전 세계 5000개 이상의 앱에서 사용되며 활성 사용자 수는 1억 명을 초과합니다. 이 플랫폼은 Wear OS와 통합되어 있으며 타사 앱을 통해 모든 인기 피트니스 트래커를 지원합니다.
Google Fit 아키텍처는 세 가지 계층으로 구축됩니다: 클라이언트 SDK, Google Fitness Store 클라우드 스토리지 및 서버 통합을 위한 REST API. 클라이언트 SDK는 Android(Kotlin, Java) 및 iOS(Swift, Objective-C)에서 사용할 수 있으며 JavaScript를 통한 웹 클라이언트도 있습니다.
데이터는 소스(DataSource) 및 데이터 포인트(DataPoint)로 구성됩니다. 각 소스는 장치 또는 앱을 나타내며 각 데이터 포인트는 타임스탬프가 있는 단일 측정값을 나타냅니다. 데이터 포인트 그룹은 세션(유형과 기간이 있는 연속적인 활동 기간)으로 결합됩니다.
val fitnessClient = Fitness.getClient(activity, GoogleSignIn
.getAccountForExtension(activity, fitnessOptions))
val stepType = DataType.TYPE_STEP_COUNT_DELTA
val request = DataReadRequest.Builder()
.read(stepType)
.setTimeRange(
startTime, endTime, TimeUnit.MILLISECONDS
)
.build()
fitnessClient.readData(request)
.addOnSuccessListener { response ->
for (bucket in response.buckets) {
println(bucket.dataSets)
}
}
Google Fit은 온라인 및 오프라인 모드를 모두 지원하는 Google Cloud를 통한 동기화 모델을 사용합니다. 앱은 데이터를 로컬에 기록하고 Google Fit SDK는 인터넷 연결이 가능할 때 자동으로 클라우드 스토리지와 동기화합니다. 충돌은 마지막 쓰기 원칙에 따라 해결됩니다.
각 데이터 유형에는 표준화된 형식이 있습니다: 걸음 수 — TYPE_STEP_COUNT_DELTA, 칼로리 — TYPE_CALORIES_EXPENDED, 심박수 — TYPE_HEART_RATE_BPM, 거리 — TYPE_DISTANCE_DELTA. 사용자 정의 유형의 경우 Google APIs 콘솔을 통해 고유한 네임스페이스를 가진 사용자 정의 DataType을 만들 수 있습니다.
플랫폼은 두 가지 기록 모드를 지원합니다: 활성 — 앱이 명시적으로 HistoryClient.insertData()를 호출, 수동 — 백그라운드에서 데이터 수집을 구독하는 RecordingClient를 통해. 수동 모드는 피트니스 앱에 편리합니다: 사용자가 앱을 한 번 실행하면 Google Fit이 앱이 최소화된 상태에서도 지속적인 CPU 사용 없이 걸음 수, 칼로리 및 거리를 자동으로 수집합니다.
Google에 따르면 플랫폼은 매일 20억 개 이상의 데이터 포인트를 처리합니다. 활성 연결 시 평균 동기화 지연 시간은 5~10초이며 백그라운드 모드에서는 배터리 절약을 위해 30분마다 동기화가 이루어집니다.
Google Fit은 권한 부여를 위해 OAuth 2.0을 사용하며 액세스 범위는 fitness.activity.read, fitness.activity.write, fitness.body.read 및 fitness.body.write입니다. 앱은 필요한 범위만 요청하며 사용자는 계정 선택이 포함된 표준 Google Sign-In 대화 상자를 통해 액세스를 확인합니다.
사용자는 Google Account Permissions 또는 Google Fit 앱을 통해 언제든지 액세스를 취소할 수 있습니다. Google은 명시적 동의 없이 건강 데이터를 제3자와 공유하는 것과 Restricted Scopes 정책에 따라 광고 목적으로 데이터를 사용하는 것을 엄격히 금지합니다.
Google Fit은 세 가지 주요 API를 제공합니다: 기록 데이터 읽기 및 쓰기를 위한 Fitness API, 센서의 실시간 데이터 스트리밍을 위한 Sensors API, 활동 세션 관리를 위한 Sessions API. 각 API는 Android SDK 및 REST 요청을 통해 사용할 수 있습니다.
Fitness API는 데이터 작업을 위한 주요 API입니다. 배치 작업을 지원합니다: 단일 호출로 최대 1000개의 데이터 포인트 쓰기, 시간 범위, 데이터 유형 및 소스별 필터링하여 읽기. 데이터 집계를 위해 선택된 메트릭으로 그룹화된 DataSet이 사용됩니다.
Sensors API는 실시간 센서 데이터 — 걸음 수, 심박수, 가속도 — 를 구독할 수 있게 합니다. 데이터는 센서 유형 및 앱 설정에 따라 결정된 주파수로 SensorEventListener를 통해 수신됩니다.
세 가지 주요 API 외에도 Google Fit은 앱을 활성 상태로 유지할 필요 없이 자동 데이터 수집을 위한 Recording API를 제공합니다. 이 API는 Wear OS에 특히 유용합니다: 스마트워치가 심박수 및 활동 데이터를 수집하고 연결 시 전화 앱이 동기화됩니다. Recording API는 최소 전력 소비를 위해 최적화된 Google Fit Background Services를 사용합니다 — 수동 걸음 수 수집 시 하루 최대 2%의 배터리 소모.
REST API Google Fit은 fitness.googleapis.com 엔드포인트에서 사용할 수 있습니다. REST API는 서버 응용 프로그램이 OAuth 권한 부여 후 사용자를 대신하여 데이터를 읽고 쓸 수 있게 합니다. 이는 웹 분석 대시보드, 기업 피트니스 프로그램 및 직원 또는 환자 건강 데이터의 중앙 집중식 저장소가 필요한 의료 시스템에 유용합니다.
val recordingClient = Fitness
.getRecordingClient(activity, googleSignInAccount)
recordingClient.subscribe(DataType.TYPE_STEP_COUNT_DELTA)
.addOnSuccessListener {
println("구독이 활성화되었습니다")
}
// 기록 데이터 가져오기
val historyClient = Fitness
.getHistoryClient(activity, googleSignInAccount)
val endTime = Calendar.getInstance().timeInMillis
val startTime = endTime - TimeUnit
.DAYS.toMillis(7)
historyClient.readDailyTotal(DataType.TYPE_STEP_COUNT_DELTA)
.addOnSuccessListener { total ->
println("오늘 걸음 수: $total")
}
Google Fit 통합은 build.gradle을 통해 Google Fit SDK 종속성을 추가하는 것으로 시작됩니다: com.google.android.gms:play-services-fitness. 그런 다음 Google APIs 콘솔을 구성해야 합니다 — 프로젝트를 만들고 Fitness API를 활성화하고 올바른 SHA-1 지문으로 OAuth 2.0 자격 증명을 추가합니다.
통합 프로세스에는 다음이 포함됩니다: 필요한 범위로 GoogleSignIn 초기화, Fitness.getClient()를 통해 FitnessClient 생성, 사용자에게 권한 부여 요청 및 데이터 읽기 또는 쓰기 작업 수행. 백그라운드 기록을 위해 앱이 최소화된 상태에서도 자동으로 데이터를 수집하는 RecordingClient가 사용됩니다. Google Fit은 배터리 수준 및 사용자 활동에 따라 데이터 수집 빈도를 자동으로 관리합니다.
Google에 따르면 Google Fit 통합 앱은 사용자 유지율이 35% 더 높습니다. 주요 앱 카테고리는 피트니스 트래커, 달리기, 사이클링, 요가 및 체중 관리 앱입니다.
개인정보 보호 요구 사항을 고려하는 것이 중요합니다: Google Fit은 OAuth Verification을 통해 별도의 앱 확인이 필요한 특수 액세스 범위인 Restricted Scopes를 사용합니다. 개발자는 수집되는 데이터, 사용 방법 및 보관 기간을 설명해야 합니다. Google은 또한 개인정보 보호정책 및 API Services Terms of Service 준수를 요구합니다.
데이터를 기록하려면 유형, 장치 및 앱을 지정하여 DataSource를 만듭니다. 그런 다음 타임스탬프와 값으로 DataPoint를 만듭니다. 여러 DataPoints가 DataSet으로 결합되어 HistoryClient.write()에 전달됩니다.
val dataSource = DataSource.Builder()
.setAppPackageName(activity)
.setDataType(DataType.TYPE_STEP_COUNT_DELTA)
.setType(DataSource.TYPE_RAW)
.build()
val stepCount = DataPoint.builder(dataSource)
.setTimestamp(now, TimeUnit.MILLISECONDS)
.setField(Field.FIELD_STEPS, 500)
.build()
val dataSet = DataSet.builder(dataSource)
.add(stepCount)
.build()
historyClient.insertData(dataSet)
.addOnSuccessListener {
println("데이터가 저장되었습니다")
}
자주 묻는 질문
Google Fit은 걸음 수, 칼로리, 심박수, 거리, 속도, 수면, 체중, 키, 혈압, 포도당 수치 및 체온을 포함한 50개 이상의 데이터 유형을 지원합니다. 전체 목록은 Android 및 REST API용 DataType 문서에서 확인할 수 있습니다.
네, Google Fit을 사용하려면 Google 계정이 필요합니다. 사용자는 Google Sign-In을 통해 인증하며 이후 앱은 지정된 범위로 Fitness API에 액세스할 수 있습니다. Google 계정이 없으면 모든 데이터가 Google Cloud에 저장되므로 플랫폼을 사용할 수 없습니다.
네, Google Fit 데이터는 Google Takeout을 통해 내보낼 수 있습니다 — 이 서비스를 통해 모든 플랫폼 데이터를 JSON 및 CSV 형식으로 다운로드할 수 있습니다. 개발자는 적절한 액세스 범위로 REST API를 통해 프로그래밍 방식으로 데이터를 내보낼 수 있습니다.
Google Fit은 Android, iOS 및 REST API에서 작동하는 크로스 플랫폼 클라우드 플랫폼인 반면 HealthKit은 Apple iOS 생태계에 연결되어 장치에 로컬로 데이터를 저장합니다. Google Fit은 권한 부여에 OAuth 2.0을 사용하는 반면 HealthKit은 iOS 시스템 권한을 사용합니다.
Google Fit API에는 다음과 같은 한계가 있습니다: 프로젝트당 100초에 1000개의 요청, 쓰기 요청당 1000개의 데이터 포인트, 최대 읽기 시간 범위 — 요청당 365일. 한도를 늘리려면 Google Cloud Console을 통해 할당량을 요청해야 합니다.
요약
턴키 방식의 모바일 애플리케이션을 개발해 드립니다
IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.