12월 업데이트
뭔지 맞춰봐? 더 많은 통합! 그냥 평소 뿐만 아니라 더 많은 심박수 관련 정보와 대규모 요청에 대한 더 개발자 친화적인 로직도 있습니다.
심박수 구간 정보 ❤️
뭐?
심박수 구간 정보를 데이터 모델에 추가하여 더 쉽게 캡처 및 분석할 수 있도록 하여 운동 요약에 운동 통찰력을 강화하고 선수의 훈련 강도를 조정하는 데 사용되는 보다 의미 있는 훈련 정보를 포함할 수 있습니다.
어떻게?
심박수 구간 데이터를 조화시키는 것은 보이는 것처럼 간단하지 않습니다. WHOOP는 표준 심박수 영역 1~5를 50%에서 시작하여 10% 단위로 제공하지만 Fitbit은 50~70% 범위에서 "지방 연소", "심장 강화" 및 "피크"라는 세 가지 사용자 지정 영역을 제공합니다. 각각 70–85% 및 85–100%. 이것은 우리가 어떻게든 이것을 설명해야 한다는 것을 의미합니다. 이를 고려하여 가능한 각 심박수 영역 값에 시작 및 종료 심박수 %를 포함하고 기본적으로 5개의 표준 값을 제공하기로 결정했습니다. 이러한 계산을 제공하지 않는 모든 공급자의 경우 가능한 경우 직접 계산을 수행합니다.
왜요?
우리 사용자들은 선수 훈련을 최적화하기 위해 알고리즘을 공급하는 데 사용할 수 있는 "훈련 강도" 이상의 필드를 제공할 수 있는지 묻고 있습니다. 우리는 항상 가능한 한 많은 데이터를 제공하는 것을 목표로 하고 있습니다. 이 추가는 데이터 액세스 측면에서 우리의 비전과 일치하며 더 풍부한 데이터를 제공하는 데 도움이 됩니다.
와우, 더 많은 통합!
뭐?
크리스마스가 다가오고 있습니다 따라서 Terra는 모두에게 더 많은 통합을 제공합니다! 모든 연결 요구 사항을 충족하기 위해 Cardiomood, Rouvy 및 Technogym 통합을 추가했습니다. Rouvy와 또 다른 사이클링 중심 통합을 수행하고 Technogym을 통해 더 많은 체육관 관련 초점을 추가했으며 Cardiomood를 통해 보다 정확한 데이터 통찰력을 얻었습니다.
어떻게?
이러한 회사 중 일부와 이야기하고 다른 회사의 API를 우회하는 방법을 파악하여 위를 지원하는 데 필요한 인프라를 구축했습니다. 더 많은 통합 및 더 많은 데이터 유형을 추가할 예정이므로 이번 달의 다른 변경 사항을 확인하세요
왜요?
우리는 레퍼토리에 있는 통합 범위를 다양화하고 이미 가지고 있는 장르를 더 깊이 탐구하는 데 중점을 두었습니다. Rouvy는 Zwift API 통합과 같은 사이클링 통합, Biostrap 통합과 같은 임상 등급 데이터와 함께 Cardiomood, 그리고 Technogym은 체육관 중심 통합의 새로운 범주로 분기됩니다.
대규모 쿼리 처리 개선 〰️
뭐?
한 달 이상의 기간에 대한 쿼리가 생성될 때마다 우리는 해당 요청을 1주 세그먼트 로 나누고 각 주에 대한 데이터가 있는지 여부에 관계없이 개발자의 웹훅으로 보냅니다. 대신 이제 내부적으로 모든 데이터 쿼리를 집계하고 총 데이터 양을 기반으로 개발자의 웹후크로 요청을 보내며 최대 10MB의 세그먼트 또는 데이터 목록 내의 10개 개체로 청크를 나눕니다.
왜요?
우리는 이전 시스템이 말이 되지 않는다는 것을 깨달았습니다. 초기 알고리즘은 개발자에게 전송된 많은 페이로드가 비어 있을 수 있고 아무 이유 없이 서버에 불필요한 로드 및 노이즈를 생성할 수 있음을 의미했습니다. 대신, 새로운 데이터 청킹 시스템은 한 요청의 총 바이트 수에 대한 상한을 설정하여 전송되는 데이터에 대한 잠재적인 제한을 해결합니다. 이것은 현재 임의로 설정되어 있지만 이후에 다양한 요구에 맞게 개발자별로 사용자 정의할 수 있는 것입니다.
어떻게?
멀티 스레딩을 영리하게 사용하고 별도의 프로세스를 생성함으로써 우리는 모든 데이터 요청을 병렬로 생성하고 이러한 모든 요청이 완료될 때 실행되도록 작업 관리자에 콜백을 제공합니다. 이렇게 하면 데이터 요청이 완료되기를 기다리는 동안 스레드를 중단하지 않고 결국 데이터를 가져오면 전체 데이터를 처리할 수 있습니다. 결과? 요청당 10MB 미만의 데이터를 얻을 수 있는 행복한 개발자와 행복한 람다 기능

![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































