메인 콘텐츠로 이동

아키텍처 고려사항

서버->서버

모든 k-ID API 호출에는 유효한 k-ID API 키가 포함된 Authorization 헤더가 필요합니다. k-ID API 키가 외부에 노출되지 않도록 k-ID API가 서버 간에 호출될 것으로 예상됩니다.

게임 안정성 및 캐싱

k-ID API는 높은 가용성을 제공합니다. 하지만 서버 간 호출 시 k-ID API에 대해 안정성과 내결함성(예: 회로 차단기)을 위한 일반적인 패턴을 구현하는 것이 권장됩니다. 모든 플레이어가 세션을 필요로 하므로, k-ID 서비스에 문제가 있을 가능성이 낮은 상황에서도 신규 및 기존 플레이어가 차단되지 않도록 하는 방법을 게임에서 구현해야 합니다.

캐시된 세션

세션은 로컬 또는 클라우드 스토리지에 캐시되어야 하며, 플레이어의 계정과 연결될 수 있습니다. k-ID 세션은 부모가 권한을 업데이트하거나, 아이나 청소년이 다음 나이 카테고리로 "성장"하거나, 부모나 플레이어가 삭제할 때만 변경됩니다. 게임이 재시작할 때마다 /session/get API에서 세션을 새로 고치는 것이 권장되지만, 이는 명시적으로 요구되지 않습니다. 또한 /session/get 대신 세션 정보 업데이트를 받기 위해 k-ID 웹훅을 사용하는 방법이 있습니다. k-ID API에 문제가 있는 경우 새로 고침을 나중까지 연기할 수도 있습니다. 캐시된 세션은 문제가 해결되는 동안 k-ID API에 연결하지 않고 권한을 관리하는 데 사용할 수 있습니다.

k-ID 세션 및 플레이어 신원

k-ID 세션은 플레이어의 ID와 강하게 연결된 것으로 생각할 수 있습니다. 게임이 ID 시스템을 사용하는 경우, 세션 자체는 플레이어의 계정과 연결된 스토리지와 함께 JSON 문서로 완전히 저장될 수 있습니다.

Session.ChangePermissions 및 Session.Delete 웹훅

k-ID 개발자 포털에서 k-ID로부터 이벤트를 받기 위해 웹훅을 등록할 수 있습니다. 이는 플레이어가 "성장"할 때를 제외하고 k-ID 세션의 드문 변경사항을 검색하기 위해 /session/get을 호출할 필요를 피합니다.

기본 세션

신규 플레이어의 경우, k-ID 서비스에 문제가 있을 때 신규 플레이어에게 합리적인 기본값을 제공할 수 있도록 게임 서버에서 각 관할권에 대한 기본 권한을 캐시하는 것이 가능합니다. /age-gate/get-default-permissions API는 관할권별 기본 권한을 반환합니다. 기본 권한에는 특정 게임에 대해 구성된 모든 설정이 포함되며, 부모가 관리하지 않으므로 대체 역할을 할 수 있습니다. 캐시된 기본 k-ID 권한은 다른 채널(예: 원격 구성)을 통해 게임에 전달될 수도 있습니다.

얼굴 나이 추정 다운로드 크기

k-ID 얼굴 나이 추정은 웹 뷰나 외부 브라우저 창에서 사용하기에 적합한 iframe에 나타납니다. iframe은 나이 추정을 수행하기 위해 로컬에서 실행되는 CDN의 자산을 참조하며, 여기에는 지원 JavaScript 라이브러리와 머신러닝 모델 가중치가 포함됩니다. 자산의 총 크기는 약 8메가바이트입니다. 앱 내에서 k-ID를 배포할 때 다운로드 크기를 줄이려면, 지원 라이브러리와 모델 가중치를 앱 바이너리 자체에 번들링하고 기기에서 로컬로 제공하여 다운로드를 피할 수 있습니다.