AI 제품
어린이와 청소년을 대상으로 하는 AI 제품은 콘텐츠, 데이터, AI 동작에 관한 전 세계의 변화하는 규제(미국의 COPPA, EU의 GDPR-K, 영국의 AADC 등)의 영향을 받습니다. 이러한 규제는 어떤 연령에서 어떤 AI 기능이 사용 가능한지를 결정합니다. k-ID의 CDK는 사용자의 연령과 관할권을 AI 전용 권한 세트로 변환하며, 제품은 이 권한을 읽어 각 기능을 사용자별로 활성화하거나 비활성화합니다.
k-ID Dev Explorer라는 오픈 소스 개발자 샌드박스를 사용하여 AI 권한 흐름을 테스트하고 이벤트 로그에서 모든 트래픽을 볼 수 있습니다. 또한 이를 자신의 AI 제품 구현을 위한 시작점으로 사용할 수 있습니다.
k-ID 모델에서 AI 제품이란?
AI 제품은 사용자가 텍스트 채팅, 음성, 이미지나 비디오 생성, 또는 지속적인 AI 페르소나와 같은 생성형 AI 기능과 상호 작용하는 모든 애플리케이션입니다. k-ID는 각 AI 기능을 별도의 권한으로 처리합니다. 각 권한은 사용자의 연령, 관할권, 부모 설정에 따라 활성화, 비활성화 또는 금지될 수 있습니다.
CDK 흐름은 다른 k-ID 제품과 동일합니다: 연령 게이트 → 사용자가 미성년자인 경우 VPC → 세션 → 권한 적용 → 웹훅을 통한 변경 사항 대응. AI 특화 부분은 단계 1에서 나열된 세션에서 반환되는 권한 세트입니다.
VPC 빠른 시작 및 세션 및 권한 관리 빠른 시작을 참조하세요.
사전 요구 사항
시작하기 전에 다음이 필요합니다:
- k-ID 제품: k-ID Compliance Studio에서 제품 생성 및 구성
- API 키: Compliance Studio의 제품 개발자 설정 페이지에서 API 키 생성
- 웹훅 엔드포인트 (선택 사항이지만 권장): 세션 및 권한 이벤트를 받을 보안 HTTPS 엔드포인트 설정. 자세한 내용은 웹훅을 참조하세요.
- Compliance Studio에서 AI 권한 활성화: 제품의 기능에 해당하는 AI 권한을 활성화합니다(단계 1 참조).
단계 1: AI 권한 구성
Compliance Studio에서 제품을 열고 Configuration → Permissions 탭으로 이동하세요. AI 카테고리에는 AI 제품의 일반적인 기능에 매핑되는 7개의 권한이 포함되어 있습니다:
| 권한 | 표시 이름 | 설명 | 활성화 시점 |
|---|---|---|---|
ai-chat | AI 채팅 | 귀하의 자녀는 상호 작용 또는 지원 기능 등의 목적으로 생성형 AI를 사용하는 기능과 자유롭게 의사소통할 수 있습니다. | 제품이 입력 방식과 무관하게 AI와의 자유 형식 대화를 제공하는 경우. |
ai-companion-chatbot | 컴패니언 챗봇 | 귀하의 자녀는 개인화된 콘텐츠를 통해 인간 상호 작용을 모방하는 AI 캐릭터 또는 컴패니언과 상호 작용할 수 있습니다. | AI가 세션 간에 관계를 유지하는 지속적인 컴패니언 또는 페르소나로 자리매김하는 경우. |
ai-memory | AI 메모리 | 귀하의 자녀의 선호도와 AI와의 상호 작용이 보존되어 시간이 지남에 따라 자녀의 경험에 대한 프로필을 만드는 데 사용됩니다. | AI가 세션 간에 사용자 선호도나 대화 기록을 보존하여 향후 상호 작용을 개인화하는 경우. |
ai-voice-mode | AI 음성 모드 | 귀하의 자녀는 실시간 음성 대화에서 AI에게 말할 수 있습니다. AI는 자녀의 음성을 처리합니다. | AI가 사용자의 음성을 처리(음성→텍스트)하거나 음성을 생성하여 응답(텍스트→음성)하는 경우. |
ai-media-generation | AI 미디어 생성 | 귀하의 자녀는 자녀의 프롬프트를 기반으로 이미지 및/또는 비디오를 생성할 수 있는 AI와 상호 작용할 수 있습니다. | AI가 사용자에 응답하여 이미지, 비디오 또는 오디오를 생성하는 경우. |
ai-media-upload | AI 미디어 업로드 | 귀하의 자녀는 AI와의 상호 작용의 일부로 이미지, 비디오 또는 기타 미디어를 제공할 수 있습니다. | 사용자가 AI에 의해 처리될 이미지, 비디오 또는 오디오를 업로드할 수 있는 경우. |
ai-model-training | AI 모델 학습 | 귀하의 자녀의 정보와 입력이 AI 모델을 학습시키는 데 사용됩니다. | 사용자 입력이 AI 모델을 학습 또는 미세 조정하는 데 사용될 수 있는 경우. |
제품의 기능을 반영하는 권한을 활성화하고 나머지는 끄세요. 미국(COPPA), 영국(AADC), 호주(온라인 안전법), EU(GDPR 제22조), 브라질에 맞춘 규칙을 포함하여, 지원되는 모든 관할권에 대한 관할권별 기본값이 이미 설정되어 있습니다.
ai-model-training 및 COPPA2026 COPPA 개정안에 따르면, 자녀의 개인 정보를 AI 모델 학습 또는 개발에 공개하는 것은 **비필수적(non-integral)**으로 취급되며 별도의 부모 동의가 필요합니다. 제품에서 사용자 입력을 학습에 사용하는 경우 ai-model-training이 활성화되어 있는지 확인하고 2026 COPPA 개정안 가이드를 검토하세요.
모든 카테고리의 권한 전체 목록은 사용 가능한 권한을 참조하세요.
단계 2: 부모 동의를 수집하고 세션을 생성
AI 제품은 다른 모든 k-ID 제품과 동일한 연령 게이트 및 검증 가능한 부모 동의(VPC) 흐름을 따릅니다. 위젯과 API가 관할권별 로직을 처리하므로 제품은 흐름을 시작하고 결과 세션을 받기만 하면 됩니다.
엔드투엔드 통합을 위해 다음 중 하나를 따르세요:
- VPC 빠른 시작: 가장 빠른 경로입니다. 엔드투엔드 위젯을 사용하여 연령 수집, VPC, 데이터 알림, 권한을 하나의 iframe에서 처리합니다.
- 커스텀 연령 게이트 빠른 시작: k-ID가 컴플라이언스 로직을 처리하는 동안 자체 연령 게이트 UI를 구축합니다.
부모가 동의 흐름을 완료하면 제품은 sessionId를 받습니다. /session/get으로 세션을 가져와 단계 1에서 구성한 AI 권한을 읽으세요:
GET /api/v1/session/get?sessionId=0ad1641f-c154-4c2a-8bb2-74dbd0de7723
Response:
{
"session": {
"id": "0ad1641f-c154-4c2a-8bb2-74dbd0de7723",
"permissions": [
{ "name": "ai-chat", "enabled": true, "managedBy": "GUARDIAN" },
{ "name": "ai-companion-chatbot", "enabled": false, "managedBy": "GUARDIAN" },
{ "name": "ai-memory", "enabled": true, "managedBy": "GUARDIAN" },
{ "name": "ai-voice-mode", "enabled": false, "managedBy": "GUARDIAN" },
{ "name": "ai-media-generation", "enabled": false, "managedBy": "GUARDIAN" },
{ "name": "ai-media-upload", "enabled": false, "managedBy": "GUARDIAN" },
{ "name": "ai-model-training", "enabled": false, "managedBy": "PROHIBITED" }
]
}
}
managedBy 필드는 각 권한을 누가 제어하는지 알려줍니다: GUARDIAN, PLAYER 또는 PROHIBITED. 전체 시맨틱은 권한을 참조하세요.
단계 3: 세션을 기반으로 AI 기능 게이팅
각 AI 기능을 제공하기 전에 세션의 관련 권한을 확인하세요. 패턴은 다른 k-ID 게이팅 기능과 동일합니다:
- 권한:
GUARDIAN,PLAYER,PROHIBITED시맨틱을 포함하여enabled및managedBy가 작동하는 방식. - 세션 및 권한 관리 빠른 시작: 세션 가져오기, 시간 경과에 따른 비교, 업그레이드 요청, UI에서 비활성화된 기능 처리.
세션에서 AI 요청 구성
세션에서 permissions를 읽고 작은 헬퍼로 각 AI 기능을 게이팅한 다음, 결과 구성 객체를 AI 제공자에게 전달합니다:
function allowed(session, name) {
const permission = session.permissions.find((p) => p.name === name);
return permission?.enabled === true;
}
function buildAIConfig(session) {
return {
chat: allowed(session, "ai-chat"),
companion: allowed(session, "ai-companion-chatbot"),
memory: allowed(session, "ai-memory"),
voice: allowed(session, "ai-voice-mode"),
mediaGeneration: allowed(session, "ai-media-generation"),
mediaUpload: allowed(session, "ai-media-upload"),
trainOnInputs: allowed(session, "ai-model-training"),
};
}
const aiConfig = buildAIConfig(session);
const response = await aiProvider.respond({ prompt, ...aiConfig });
연결할 때 기억해야 할 네 가지 규칙:
- 읽고 나서 적용하세요. 세션 시작 시
/session/get을 호출하세요. - 실패 시 차단. 권한이 누락되었거나 세션에 도달할 수 없으면 기능을 끕니다.
- 우아하게 성능을 저하시키세요. 기능 꺼짐 ≠ 막다른 길. 대체를 표시하세요.
- 미성년자는 기본 꺼짐. 부모가 활성화합니다.
단계 4: 권한 변경에 대응
부모는 Family Connect를 통해 언제든지 AI 권한을 조정할 수 있습니다. 예를 들어, 부모가 알림을 읽은 후 ai-companion-chatbot을 비활성화하거나, 자녀가 충분히 자라면 ai-voice-mode를 활성화할 수 있습니다. 제품은 그러한 변경 사항을 감지하여 사용자에게 반영해야 합니다.
감지 및 처리 패턴은 다른 권한 변경과 동일합니다:
Session.ChangePermissions웹훅을 구독하거나 시작할 때마다 캐시된 세션을 현재 세션과 비교합니다.- 권한이 전환되면 제품 상태를 즉시 업데이트하여 사용자가 꺼진 기능을 사용하려 하지 않도록 합니다.
- 무엇이 어떻게 변경되었는지 사용자에게 명확하게 표시합니다.
웹훅 처리, 세션 비교, 연령이 올라간 사용자를 위한 managedBy: PLAYER 처리, 사용자에게 변경 사항 전달 등을 포함한 전체 구현은 세션 및 권한 관리 빠른 시작을 따르세요.
웹훅 구성
AI 제품의 경우 웹훅 엔드포인트가 다음을 수신하도록 구성되었는지 확인하세요:
Session.ChangePermissions: 부모가 사용자의 AI 권한을 활성화하거나 비활성화할 때 알림을 보냅니다.
이 이벤트는 다음 세션 가져오기를 기다리지 않고 AI 기능을 부모의 결정과 동기화 상태로 유지하는 데 필수적입니다.
다음 단계
이제 AI 제품이 k-ID와 연결되었으니, 다음 리소스를 통해 더 깊이 알아보세요:
- 권한: 권한 구조,
managedBy값, 업그레이드 흐름에 대한 전체 참조 - 세션 및 권한 관리: 부모가 시작한 권한 변경 사항의 실시간 처리
- 2026 COPPA 개정안 가이드: AI 모델 학습 및 기타 비필수적 공개에 대한 컴플라이언스 영향
- 웹훅: 웹훅 구현 및 검증에 대한 전체 가이드
- CDK 개요: 권한 결정을 지원하는 컴플라이언스 엔진에 대한 자세한 설명
- 출시 전 체크리스트: 라이브 전에 검토할 요구 사항