String GOAT
로그인
Blog
2026년 8월 4일
Blog
2026년 8월 4일

애플워치·갤럭시워치로 테니스 타구 수와 플레이 시간 기록하기 — String GOAT 워치 앱

애플워치·갤럭시워치로 테니스 타구 수와 플레이 시간 기록하기 — String GOAT 워치 앱

스트링 교체 시점은 날짜가 아니라 사용량으로 정해집니다. 같은 한 달이라도 주 1회 치는 사람과 주 4회 치는 사람은 코트에서 보낸 시간이 네 배 차이 납니다. 달력은 똑같이 흘러도 스트링이 받은 부하는 전혀 다릅니다.

String GOAT도 처음에는 작업 날짜에 교체 주기를 더하는 방식이었습니다. 저 역시 스트링을 직접 매는 동호인이라, 이 기준이 어디서 어긋나는지는 쓰면서 계속 느꼈습니다. 많이 친 주와 거의 못 친 주가 같은 날 같은 알림을 받으니까요.

기준을 날짜에서 사용량으로 옮기고 싶었지만 거기서 막혔습니다. 플레이 시간은 경기가 끝나고 "오늘 두 시간 반쯤 쳤나" 하고 어림잡는 순간 데이터가 아니라 기억이 됩니다. 타구 수는 셀 방법도 없습니다. 스트링 기록 앱을 만들면서도 정작 스트링이 얼마나 일했는지는 채울 방법이 없었던 셈입니다.

워치 앱은 그 구멍을 메우려고 만들었습니다. 애플워치나 갤럭시워치에서 세션을 시작하면 타구 수와 플레이 시간이 기록되고, 그 기록이 교체 시점 판단으로 들어갑니다.

다만 만드는 쪽에서 넘어야 할 제약이 하나 있었습니다. 테니스를 칠 때 워치는 보통 라켓을 잡지 않는 손목에 찹니다. 라켓 손에 차면 그립이 불편하고 충격이 그대로 전달되기 때문입니다. 그런데 타구를 세는 쪽에서는 이 습관이 불리합니다. 공이 맞는 순간의 충격은 라켓을 쥔 팔에 가장 뚜렷하게 남고, 반대쪽 팔에는 훨씬 약하게 전해집니다. 그래서 손목 센서로 타구를 세는 기능은 대체로 "워치를 라켓 손에 차라"는 전제에서 출발합니다.

String GOAT는 그 전제를 바꾸지 않는 쪽을 택했습니다. 평소처럼 라켓 반대 손목에 차면 됩니다.

이 글은 스트링을 직접 매거나 교체 주기를 스스로 관리하는 플레이어를 위한 것입니다. 어떻게 동작하는지, 어디까지 정확한지, 그 기록이 교체 판단으로 어떻게 이어지는지 순서대로 정리했습니다.

핵심 요약

  • 지원 기기 — watchOS 9.0 이상(Apple Watch Series 4 이상), Wear OS 3.0 이상(갤럭시 워치 등). 페어링된 휴대폰 앱과 함께 동작합니다.
  • 착용 위치 — 라켓을 잡지 않은 손목.
  • 기록 항목 — 타구 수, 플레이 시간, 심박수, 소모 칼로리, 실외 GPS 경로.
  • 정확도 — 빈 스윙과 걷기는 세지 않습니다. 다만 그라운드스트로크 전체로는 약 4분의 3 수준이고, 원핸드 백핸드는 실제보다 적게 잡힙니다.
  • 쓰임새 — 누적 플레이 시간이 스트링 종류별 수명 기준과 비교됩니다. 날짜가 아니라 실제 사용량으로 교체 시점을 알려줍니다.

약한 신호에서 타구를 읽는 방법

반대쪽 팔에도 흔적은 남습니다. 다만 약할 뿐입니다. 그래서 필요한 것은 신호를 키우는 방법이 아니라, 약한 신호를 읽도록 학습된 모델입니다.

String GOAT는 KAIST 연구팀이 발표한 Silent Impact 모델을 적용했습니다. 라켓을 쥐지 않은 팔의 움직임만으로 임팩트를 판별하도록 만들어진 모델입니다. 2024년 UIST(ACM 사용자 인터페이스 소프트웨어·기술 심포지엄)에 발표됐고(Park, Yang, Jo), CC BY 4.0 라이선스로 공개되어 저작자 표시를 조건으로 상업적 사용이 가능합니다. String GOAT 앱의 오픈소스 라이선스 화면에도 표기하고 있습니다. 원문은 ACM 디지털 라이브러리에서 볼 수 있습니다.

분석은 워치가 아니라 휴대폰에서 돌아갑니다. 워치는 센서 데이터를 모아 보내고, 휴대폰이 그 데이터를 모델에 넣습니다. 이 과정이 기기 안에서 끝나기 때문에 코트에서 인터넷이 잘 안 잡혀도 감지에는 영향이 없습니다.

한 세션에 기록되는 것

워치 앱에서 라켓을 고르고 세션을 시작하면, 종료할 때까지 다음 항목이 함께 쌓입니다.

세션 1회에 기록되는 항목
항목내용
타구 수임팩트가 감지된 횟수
플레이 시간세션 시작부터 종료까지
심박수평균·최대 및 구간별 누적
소모 칼로리워치 헬스 데이터 기반
이동 거리·경로실외 세션에서 GPS 사용 시

지원 기기는 watchOS 9.0 이상(Apple Watch Series 4 이상)과 Wear OS 3.0 이상(갤럭시 워치 등)입니다. 워치 앱은 페어링된 휴대폰의 String GOAT 앱과 함께 동작하므로 휴대폰에도 앱이 필요합니다.

얼마나 정확한가

타구 수는 화면에 숫자로 나오는 순간 "이게 맞나"라는 질문을 받습니다. 여기 적는 수치는 논문이 보고한 성능이 아니라 우리 앱에서 직접 측정한 결과입니다. 같은 모델이라도 워치 기종과 처리 과정이 다르면 결과가 달라지기 때문입니다.

확실한 쪽부터 봅니다. 공 없이 라켓만 휘두르는 동작은 세지 않습니다. 실내 테스트에서 빈 스윙 30회가 0으로 기록됐고, 걷거나 서 있는 구간도 0이었습니다. 스윙 동작이 아니라 공이 맞는 순간을 감지하기 때문입니다. 라켓을 들고 코트를 이동하거나 공을 주우러 다녀도 숫자가 올라가지 않습니다. 포핸드 위주로 친 테스트에서는 실제 타구 수와 거의 일치했습니다.

부족한 쪽입니다.

  • 그라운드스트로크(바운드된 공을 베이스라인에서 치는 포핸드·백핸드) 전체로는 약 4분의 3 수준입니다. 실제로 친 것보다 적게 기록될 수 있습니다.
  • 원핸드 백핸드는 특히 적게 잡힙니다. 적용한 모델의 학습 데이터에 원핸드 백핸드 사용자가 거의 없었던 것이 원인으로 보입니다.
  • 빠른 발리는 놓칠 수 있습니다. 짧은 간격으로 이어지는 타구가 하나로 합쳐집니다.
  • 스트로크 종류는 구분하지 않습니다. 포핸드·백핸드·발리를 나눠 세지 않습니다.

그래서 이 숫자는 심판이 세어준 정확한 타구 수가 아닙니다. 세션끼리 비교하는 운동량 지표에 가깝습니다. 오늘이 지난주보다 많았는지, 이 스트링으로 지금까지 얼마나 쳤는지를 보는 데는 충분합니다. 절대값 그대로 쓸 값은 아닙니다.

누적 기록이 교체 알림으로 이어지는 방식

그렇다면 정확하지 않은 숫자로 교체를 판단하는 것 아니냐는 의문이 남습니다. 교체 알림을 움직이는 값은 타구 수가 아니라 플레이 시간입니다. 시간은 세션 시작과 종료로 재기 때문에 추정이 아니라 실측값입니다.

세션이 저장되면 플레이 시간이 라켓별로 누적됩니다. String GOAT는 이 누적 시간을 스트링 종류별 수명 기준과 비교합니다. 폴리와 멀티, 내추럴 거트는 견디는 시간이 서로 다르기 때문에 종류마다 기준이 다르고, 이 값은 자료 조사를 거쳐 정한 것입니다. 스트링이 끊어지지 않아도 성능이 먼저 죽는다는 점은 Tennis Warehouse University의 실험에서도 확인된 내용입니다.

바뀌는 것은 알림이 오는 시점이 아니라 알림의 근거입니다. "매단 지 한 달"이 아니라 "이 스트링으로 실제로 몇 시간을 쳤는가"가 기준이 됩니다. 한 달에 한 번 치는 사람과 주 4회 치는 사람이 같은 날 같은 알림을 받지 않습니다.

타구 수도 라켓별로 함께 쌓입니다. 플레이 시간과 나란히 놓으면, 같은 시간을 쳤어도 타구가 많았던 스트링과 적었던 스트링이 구분됩니다.

텐션 측정과 합치면 판단이 한 단계 더 정확해집니다

누적 시간과 타구 수만으로도 달력보다는 낫습니다. 다만 이것도 결국 얼마나 썼는지를 볼 뿐, 스트링이 지금 어떤 상태인지를 직접 보는 것은 아닙니다.

스트링 상태를 직접 재는 값은 따로 있습니다. 스트링을 맨 직후의 텐션, 그리고 이후에 측정한 DT(동적 텐션, 스트링베드 스티프니스)입니다. 앱에 스트링을 등록할 때 초기 DT를 함께 입력해두면 그 값이 기준점이 되고, 이후 측정할 때마다 점이 하나씩 찍힙니다.

여기에 워치 데이터가 붙으면 축이 하나 더 생깁니다. 텐션이 며칠 만에 얼마나 떨어졌는지가 아니라, 몇 번의 타구를 견디고 얼마나 떨어졌는지를 보게 되는 것입니다. 두 측정 사이에 실제로 몇 개를 쳤는지는 워치가 채워줍니다.

측정값이 쌓이면 String GOAT는 그 궤적을 이어 임계값에 언제 닿을지 추정합니다. 기준은 초기값 대비 손실률과 주관 점수이고, 결과는 예상 교체일 또는 남은 타구 수로 나옵니다. 텐션 측정 데이터가 있으면 자동으로 이 방식이 쓰입니다 — 어떤 신호로 판단할지는 설정이 아니라 데이터 가용성이 정합니다.

String GOAT 측정 화면 — 누적 3,504 타구·6시간 28분 플레이 시간과 메인 50→43.9lbs·크로스 48→42.8lbs 텐션 손실 그래프가 AI 인사이트와 함께 표시된 모습

타구 수·플레이 시간과 텐션 측정이 한 화면에서 결합되는 실제 예시입니다.

교체 이력이 3개 이상 쌓이면 한 단계 더 갑니다. 그동안 실제로 교체를 결정한 시점의 손실률과 느낌 점수를 되짚어, 표준 임계값 대신 본인 기준을 씁니다. 텐션이 같은 정도로 떨어져도 누구는 계속 치고 누구는 바꾸기 때문입니다.

정리하면 판단 근거가 이렇게 옮겨갑니다.

교체 시점 판단 근거의 단계
단계판단 근거필요한 것
날짜맨 지 며칠 지났나작업 날짜
사용량실제로 몇 시간·몇 개를 쳤나+ 워치 세션
상태타구가 쌓이는 동안 텐션이 얼마나 떨어졌나+ 초기 텐션·DT 측정
개인 기준내가 실제로 바꾸는 지점은 어디인가+ 교체 이력 3회 이상

아래로 갈수록 정확해지지만, 그만큼 입력이 필요합니다. 이 표는 기능 목록이 아니라 실제로 거쳐온 순서이기도 합니다. 첫 줄에서 시작해 한 줄씩 내려오는 동안, 매번 막힌 지점은 "판단 기준이 틀렸다"가 아니라 "그 기준에 넣을 데이터가 없다"였습니다. 워치는 그중 가운데 두 줄을 자동으로 채우는 역할입니다.

워치에서 앱, 그리고 웹으로

세션을 끝내면 워치가 휴대폰으로 데이터를 보냅니다. 분석과 저장은 휴대폰이 맡습니다. 저장된 세션은 휴대폰 앱과 웹 대시보드 양쪽에서 볼 수 있습니다.

코트에서는 네트워크가 불안정한 경우가 많습니다. 전송이나 저장에 실패한 세션은 기기에 남겨두고, 앱을 다시 열 때 자동으로 재시도합니다. 워치에서 세션을 끝냈는데 목록에 바로 안 보이면 휴대폰 앱을 한 번 열면 됩니다.

시작하기

워치 기록은 스트링을 교체한 직후부터 쓰는 것이 가장 유용합니다. 누적 플레이 시간이 새 스트링을 등록한 뒤부터 쌓이기 때문입니다.

  1. 휴대폰 앱에 먼저 로그인 — 워치 앱은 페어링된 휴대폰 앱과 함께 동작합니다
  2. 워치를 라켓 반대 손목에 착용 — 타구 감지가 이 착용을 전제로 합니다
  3. 워치 앱에서 세션 시작 — 실외라면 GPS를 켜두면 이동 경로도 남습니다
  4. 세션 종료 후 휴대폰 앱 열기 — 분석과 저장이 이때 이뤄집니다
  5. 스트링 기록과 함께 보기 — 누적 플레이 시간이 교체 시점 판단으로 이어집니다

무료 플랜에서는 매월 8개 세션의 상세 내용을 볼 수 있습니다. 그 이상은 목록에 남아 있다가, 구독하면 이전 세션까지 함께 열립니다.

String GOAT는 무료로 시작할 수 있습니다.

String GOAT 무료로 시작해보세요

기록·AI 추천·교체 알림 — 한 번에 30초면 충분해요

App StoreGoogle Play

관련 글:

  • 폴리 스트링 교체 시점 가이드 — 자기 데이터로 정확한 교체 시점 찾는 법
  • 자가스트링어를 위한 기록 시스템 — 스트링 작업·릴·텐션을 한 앱에서
  • 스트링 기록의 중요성 — 프로 선수도 기록하는 이유

자주 묻는 질문

String GOAT
개인정보 처리방침이용약관
© 2022 String GOAT. All rights reserved.