1. 소개
자이로스코프 API는 Generic Sensor API [GENERIC-SENSOR]를 확장하여 디바이스의 로컬 X, Y, Z축을 기준으로 하는 각속도(radian per seconds 단위) 정보를 제공합니다.
2. 사용 사례 및 요구 사항
사용 사례와 요구 사항은 Motion Sensors Explainer 문서에 설명되어 있습니다.
3. 예시
let sensor= new Gyroscope(); sensor. start(); sensor. onreading= () => { console. log( "X축 회전 속도 " + sensor. x); console. log( "Y축 회전 속도 " + sensor. y); console. log( "Z축 회전 속도 " + sensor. z); }; sensor. onerror= event=> console. log( event. error. name, event. error. message);
4. 보안 및 개인정보 보호 고려 사항
자이로스코프와 같은 관성 센서가 제공하는 센서 데이터는 공격자에 의해 다양한 보안 위협, 예를 들어 키로깅, 위치 추적, 기기 핑거프린트, 사용자 식별 심지어 도청 등으로 악용될 수 있습니다.
예를 들어, [KEYSTROKEDEFENSE]와 같은 보안 커뮤니티의 논문에서는 빈도 제한이 공격 성공 위험을 완전히 제거하지 못하고, 센서를 합법적으로 사용하는 웹 애플리케이션의 유용성이 크게 저하될 수 있음을 지적합니다.
[TOUCHSIGNATURES] 연구에서는, 센서 사용 시 시각적 표시를 제공하거나 센서 데이터 접근에 대해 명시적인 사용자 동의를 요구할 수 있다고 제안합니다. 이러한 완화 전략은 Generic Sensor API에 정의된 일반 완화책을 보완합니다.
5. Permissions Policy 통합
이 명세는 policy-controlled feature를 사용하며
"gyroscope"
문자열로 식별됩니다. 자세한 내용은 [DEVICE-ORIENTATION]를 참고하세요.
6. 모델
자이로스코프 센서 타입은 다음 데이터를 가집니다:
- 확장 센서 인터페이스
- 센서 권한 이름
- 센서 기능 이름
- 권한 취소 알고리즘
-
generic sensor permission revocation algorithm을 "
gyroscope"와 함께 호출합니다. - 기본 센서
-
디바이스의 메인 자이로스코프 센서입니다.
- 가상 센서 타입
최신
측정값은 Sensor
중 자이로스코프 센서
타입
경우 "x", "y", "z" 키를 가지며 해당 키의 값에
각각 축의 각속도가 들어 있습니다.
각속도는 디바이스가 특정 축을 기준으로 회전하는 비율로, 디바이스가 정의한 로컬 좌표계 기준입니다. 단위는 라디안/초(rad/s)입니다. [SI]
현재 각속도의 부호는 회전 방향에 따라 다르며, 로컬 좌표계에서 오른손 규칙에 따라 정해집니다. 즉, 축의 양의 방향에서 바라볼 때 시계 방향이 양(+)입니다(아래 그림 참고).

6.1. 기준 프레임
로컬 좌표계는
Gyroscope 측정값의 기준 프레임입니다. 디바이스 좌표계 또는 화면 좌표계가 될 수 있습니다.
7. API
7.1. Gyroscope 인터페이스
[SecureContext ,Exposed =Window ]interface :Gyroscope Sensor {constructor (optional GyroscopeSensorOptions = {});sensorOptions readonly attribute double ?;x readonly attribute double ?;y readonly attribute double ?; };z enum {GyroscopeLocalCoordinateSystem ,"device" };"screen" dictionary :GyroscopeSensorOptions SensorOptions {GyroscopeLocalCoordinateSystem = "device"; };referenceFrame
지원되는 옵션은 "frequency" 및 "referenceFrame"입니다.
7.1.1. Gyroscope.x
x
속성은 Gyroscope
인터페이스에서
X축을 기준으로 한 현재 각속도를
나타냅니다.
즉, get value from latest reading을
7.1.2. Gyroscope.y
y
속성은 Gyroscope
인터페이스에서
Y축을 기준으로 한 현재 각속도를
나타냅니다.
즉, get value from latest reading을
7.1.3. Gyroscope.z
z
속성은 Gyroscope
인터페이스에서
Z축을 기준으로 한 현재 각속도를
나타냅니다.
즉, get value from latest reading을
8. 추상 연산
8.1. 자이로스코프 객체 생성
- 입력
-
object,
Gyroscope객체입니다.options,
GyroscopeSensorOptions객체입니다.
-
allowed는 check sensor policy-controlled features 결과로, object의 센서 타입으로 구합니다.
-
allowed가 false면:
-
initialize a sensor object를 object와 options로 호출합니다.
-
options.
referenceFrame값이 "screen"이면:
9. 자동화
이 절은 Generic Sensor API § 9 Automation을 확장하여 자이로스코프 전용 가상 센서 메타데이터를 제공합니다.
자이로스코프 가상 센서 타입과 이에 대응하는 타입별 가상 센서 메타데이터 맵은 Device Orientation and Motion § automation에 정의되어 있습니다.
10. 감사의 글
Tobie Langel이 Generic Sensor API 작업에 기여했습니다.
11. 적합성
적합성 요구 사항은 설명적인 주장과 RFC 2119 용어의 조합으로 표현됩니다. 주요 용어 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", "OPTIONAL"은 이 문서의 규범적 부분에서 RFC 2119에 따라 해석되어야 합니다. 그러나 가독성을 위해 이 용어들은 이 명세에서 모두 대문자로 표시되지 않습니다.
이 명세의 모든 텍스트는 규범적이며, 명시적으로 비규범적임을 표시한 섹션과 예제, 주석만 예외입니다. [RFC2119]
적합한 사용자 에이전트는 이 명세에 사용자 에이전트에 적용되는 모든 요구 사항을 구현해야 합니다.
이 문서의 IDL 단편들은 Web IDL 명세에서 설명한 대로, 적합한 IDL 단편이 요구하는 것처럼 해석되어야 합니다. [WEBIDL]