B1 B2 F8 K7 KF1 L5 P2 Q6 Q8 T2 Y6 리딩펜의 온디바이스 텔레메트리 파이프라인, 로그 링 버퍼, 익명화, 그리고 GDPR/COPPA/PIPL 컴플라이언스 설계

게시일: 3월 18, 2024 - 41 조회수

리딩펜 로그 수집 및 텔레메트리: 디바이스에서 나가는 정보와 디바이스에 남는 정보, 그리고 40,000대 규모 fleet에서 중요한 이유

대상 독자: 본 기고문은 개인정보 보호 담당자, 교육청 및 부처의 IT 아키텍트, fleet 헬스 대시보드를 통합하는 OEM 파트너, 그리고 EU·미국·걸프·중남미 바이어에게 "펜이 공장으로 어떤 데이터를 전송하는가?"라는 질문에 답해야 하는 B2B 수입상을 위한 글입니다. GDPR과 COPPA를 개념 수준에서 이해하고 있다고 가정하되, B1/B2/F8/K7/KF1/L5/P2/Q6/Q8/T2/Y6 펜에서 어떤 이벤트 클래스가 전송되는지, 어떤 데이터가 익명화되는지, 어떤 데이터가 옵트인 방식인지, 그리고 어떤 데이터는 절대 전송되지 않는지를 정확히 알고 싶은 분들을 대상으로 합니다.

지난 분기 스페인 학교협동조합이 12,000대의 펜을 도입하면서 저희 컴플라이언스 팀에 정밀한 질문을 던졌습니다: "GDPR 25조에 따라 기기에서 어떤 데이터가 나가고, 어떤 데이터가 기기 내에 남아 있으며, 보호자가 품질보증 커버리지 손실 없이 옵트아웃할 수 있는가?" 솔직한 답은 23페이지에 달합니다. 여기서 공개하는 짧은 답은, EU에서는 텔레메트리 이벤트가 기본 옵트아웃, 미국은 COPPA에 따라 기본 옵트인, 사우디아라비아는 SFDA에 따라 기본 옵트인, OEM 자체 호스팅 fleet은 기본적으로 절대 전송되지 않음. 이러한 정책의 엔지니어링 배경을 아래에 설명합니다.

본 기고문에서는 기기 내 로그 링 버퍼, 이벤트 스키마, 익명화 파이프라인, 업로드 스케줄, GDPR/COPPA/PIPL/LGPD 컴플라이언스 태세, 대시보드가 제공하는 fleet 헬스 지표, 그리고 47개국 47,000대 이상의 펜에서 텔레메트리를 운영할 때의 비용을 다룹니다.

1. 기기 내 로그 링 버퍼

모든 펜은 사용자 데이터 파티션에 512 KB 링 버퍼를 갖추고 있습니다. 이 버퍼는 추가 전용(append-only)이며 시간 인덱싱이 적용되고, 보호자가 "진단 로그 보존"을 선택한 경우에만 공장 초기화 후에도 유지됩니다. 이는 엔터프라이즈 배포에서는 기본값이며, 일반 소매에서는 기본값이 꺼져 있습니다.

1.1 모델별 버퍼 파라미터

모델 파티션 버퍼 크기 이벤트 레코드 수 보존 기간(일)
B1 사용자 데이터 NOR 256 KB 2,800 14
B2 사용자 데이터 NOR 256 KB 2,800 14
F8 사용자 데이터 NAND 512 KB 5,600 21
K7 / KF1 사용자 데이터 NAND 512 KB 5,600 21
L5 사용자 데이터 NAND 1 MB 11,200 30
P2 사용자 데이터 NOR 256 KB 2,800 14
Q6 / Q8 사용자 데이터 NAND 1 MB 11,200 30
T2 / Y6 사용자 데이터 NAND 2 MB 22,400 45

버퍼는 모델에 따라 14~45일 동안 가장 빈도가 높은 이벤트 클래스(앱.이벤트)를 보관할 수 있도록 크기가 설계되었습니다. 버퍼는 순환식이며, 가장 오래된 이벤트가 먼저 삭제됩니다.

1.2 이벤트 스키마

모든 레코드는 1바이트 타입, 4바이트 타임스탬프, 2바이트 스키마 버전, 그리고 89바이트의 타입별 페이로드로 구성된 고정 96바이트 구조입니다.

struct telemetry_event_t {
    uint8_t  type;          // 0x01..0x2C
    uint32_t timestamp;     // seconds since boot
    uint16_t schema_ver;    // e.g., 0x0007
    uint8_t  severity;      // 0..3 (info, warn, error, critical)
    uint8_t  reserved;
    uint8_t  payload[80];
    uint16_t crc;           // CRC-16-CCITT
    uint8_t  sig_pad[6];    // reserved for Ed25519 short sig
} __attribute__((packed));

페이로드는 유형별로 다릅니다. 부팅.종료 이벤트는 uint32 부팅 지속 시간을 전달하고, oid.조회 이벤트는 uint16 지연 시간과 uint16 사전 페이지 버킷을 전달하며, 앱.크래시 이벤트는 64바이트 스택 지문 해시를 전달합니다.

2. 이벤트 클래스

총 44개의 이벤트 클래스를 정의합니다. 모두 업로드되지는 않습니다. 분류는 로컬 (절대 업로드되지 않음), 원격측정 (업로드되며 익명화됨), 또는 지원 (사용자의 명시적 동의 시에만 업로드됨)입니다.

클래스 개수 기본 동작 예시
로컬 전용 18 로컬 키.입력, 책.열기, 앱.로케일
텔레메트리(익명화) 19 원격측정 부팅.종료, oid.조회, 전력.소모, 펌웨어.업데이트
지원(옵트인) 7 지원 음성.클립, 음성인식.발화, 사전.덮어쓰기

18개의 LOCAL 이벤트는 기기에 그대로 남아 "이전에 읽던 위치에서 이어서 읽기" 같은 앱 내 기능에만 사용됩니다. 19개의 TELEMETRY 이벤트는 Wi-Fi를 통해 배치로 업로드됩니다. 7개의 SUPPORT 이벤트는 부모 또는 fleet 관리자가 명시적으로 지원 모드를 활성화한 경우에만 업로드됩니다.

3. 익명화 규칙

모든 TELEMETRY 이벤트는 업로드 전에 4단계 익명화 파이프라인을 거칩니다. 이 파이프라인은 기기 내에서 실행되며 부트로더가 강제하므로, 손상된 애플리케이션도 이를 우회할 수 없습니다.

  1. 식별자 제거 — 기기 일련번호는 부팅마다 회전하는 솔트로 대체됩니다. 이 솔트는 128비트 랜덤 값이며 콜드 부팅 시마다 재생성됩니다.
  2. 값을 버킷화 — 지연 시간은 가장 가까운 10ms 단위로 반올림됩니다. 배터리 잔량은 가장 가까운 5% 단위로 반올림됩니다. 사전 조회는 CEFR 레벨로 버킷화됩니다.
  3. 지문 해시화 — 스택 트레이스는 fleet별 솔트로 해시됩니다. 이 솔트는 매월 회전되며 절대 업로드되지 않습니다.
  4. 원본에서 집계 — 단일 이벤트는 기기 내에서 15분 단위 윈도우로 집계됩니다. 기기는 윈도우당 1개의 레코드만 업로드하며, 개별 이벤트 30건을 따로 업로드하지 않습니다.

집계된 레코드에는 윈도우 타임스탬프, fleet ID(OEM 하위키의 32-bit 해시), 모델, 펌웨어 버전, 지역 코드, 그리고 6개의 메트릭 카운터가 포함됩니다. 기기 일련번호, 부모 이름, 자녀 이름 또는 자녀가 터치한 콘텐츠는 포함되지 않습니다.

4. 업로드 일정 및 배치 처리

업로드는 Wi-Fi에서만 수행되며 셀룰러에서는 절대 수행되지 않습니다(셀룰러 모뎀은 포함되지 않음). 기본 일정은 다음과 같습니다.

조건 동작
Wi-Fi 연결됨, 유휴 >5분 대기 중인 배치 업로드
배터리 <20% 업로드 보류
배터리 <10% 업로드 취소, 배치 로컬에 보존
충전기 연결, 배터리 무관 즉시 업로드
플릿 관리자 강제 업로드 상태 무관하게 지금 업로드

일반적인 펜은 하루 1~3개의 배치 레코드를 업로드하며, 총 18~54 KB입니다. 12,000대 규모 플릿에서 한 학주간 업로드 용량은 주당 1.6~4.8 GB로 단일 기업 광대역 회선 내에서 충분히 처리됩니다.

5. GDPR / COPPA / PIPL / LGPD 규정 준수

기본 텔레메트리 동작은 관할 지역별로 다릅니다. 공장은 배송 목적지 규정에 따라 기본값을 적용합니다.

관할 지역 기본 텔레메트리 기본 지원 옵트아웃 방식
EU (GDPR) 옵트아웃 해제 설정 → 개인정보 → 텔레메트리
영국 (GDPR + DPA) 옵트아웃 해제 설정 → 개인정보 → 텔레메트리
미국 (COPPA, 13세 미만) 옵트인 해제 최초 부팅 마법사
미국 (13세 이상, 주법) 옵트아웃 해제 설정 → 개인정보 → 텔레메트리
사우디아라비아 (SFDA, PTA) 옵트인 해제 최초 부팅 마법사 + PTA 포털
UAE (TDRA) 옵트인 해제 최초 부팅 마법사 + TDRA 포털
중국 (PIPL) 옵트인 해제 최초 부팅 마법사 + PIPL 동의
브라질 (LGPD) 옵트아웃 해제 설정 → 개인정보 → 텔레메트리
멕시코 (LFPDPPP) 옵트아웃 해제 설정 → 개인정보 → 텔레메트리
기타 모든 지역 옵트아웃 해제 설정 → 개인정보 → 텔레메트리

모든 관할 지역에서 부모 또는 플릿 관리자는 보증 coverage, OTA 업데이트 접근권, 지원 접근권을 잃지 않고 텔레메트리를 비활성화할 수 있습니다. 옵트아웃 시 비활성화되는 유일한 기능은 운영 상태 대시보드이며, 이 기능은 집계 텔레메트리 데이터가 필요합니다.

6. 플릿 운영 상태 지표 대시보드

OEM 파트너 및 대규모 플릿 운영사를 위해 텔레메트리 대시보드는 플릿 레벨에서 9가지 지표를 제공합니다. 단일 기기 시리얼까지 드릴다운할 수 있는 지표는 없습니다.

지표 정의 용도
일일 활성률 (24시간 이내에 1회 이상 부팅한 펜 수) / (전체 fleet 규모) 참여도
크래시 없는 세션 (처리되지 않은 예외가 없는 세션 수) / (전체 세션 수) 안정성
OID 조회 p95 OID-발음 응답의 95번째 백분위수 성능
배터리 상태 초기 용량의 80% 미만으로 보고되는 펜 하드웨어 수명 주기
OTA 적용률 (최신 펌웨어가 적용된 펜들) / (보유 대수) 업데이트 속도
사전 캐시 적중률 (캐시에서 제공된 조회 수) / (전체 조회 수) 성능
언어 팩 로드 성공률 (서명 검증에 실패하지 않은 LP 로드 수) / (전체 로드 수) 콘텐츠 무결성
충전 이벤트 발생률 (펜 1대당 주간 충전 세션 수) 사용 패턴
오류 심각도 구성 심각도 0–3 이벤트 분포 상태

대시보드는 5,000개 이상의 펜을 보유한 fleet에 무료로 제공됩니다. 그 미만일 경우 펜 1대당 연간 $0.04가 월간으로 청구됩니다.

7. 텔레메트리 파이프라인 및 지표 구성의 SVG 시각화

Telemetry pipeline (on-device to fleet dashboard)

8. 비용

서비스 비용 비고
호스팅형 텔레메트리 대시보드 (5,000개 이상 펜) OEM 포털에 포함 무료
호스팅형 텔레메트리 대시보드 (5,000개 미만 펜) $0.04/펜/연 월간 청구
자체 호스팅형 텔레메트리 싱크 연간 $1,800 유통사별
맞춤 이벤트 클래스 (유형당) 일회성 $2,400 + 펜 1대당 연간 $0.06 OEM 파트너당
개인정보 영향 평가 지원 $1,200 지역당
데이터 삭제 인증서 (GDPR Art. 17) $0 포털에서 셀프 서비스

구매자 팁:EU 지역에 10,000개 이상의 펜을 배포하는 경우, PO 체결 전에 샘플 데이터 삭제 인증서를 포털에서 요청하시기 바랍니다. 인증서는 삭제 타임스탬프와 삭제된 레코드 집합의 SHA-256 해시가 포함된 1페이지 PDF입니다.

8. 부록: 익명화 처리 예시 및 이벤트 클래스 인벤토리

8.1 익명화 처리 예시

사우디아라비아 학교 현장에 실제 배치된 Q8에서 수집한 아래 원시 이벤트 시퀀스를 기준으로, 4단계 익명화 파이프라인의 각 단계를 추적합니다.\n

원시 oid.조회 이벤트 (현지 시간 14:00–14:15, 샘플 구간):

14:02:11  oid.lookup  serial=QC8-24-118-00472  lat=98ms  page=412  word="الفيل"
14:03:48  oid.lookup  serial=QC8-24-118-00472  lat=104ms page=412  word="يمشي"
14:05:22  oid.lookup  serial=QC8-24-118-00472  lat=88ms  page=412  word="ببطء"
14:09:17  oid.lookup  serial=QC8-24-118-00472  lat=101ms page=412  word="في"
14:11:46  oid.lookup  serial=QC8-24-118-00472  lat=94ms  page=412  word="الحديقة"

1단계 — 식별자 제거. 시리얼 번호는 부팅마다 갱신되는 128비트 솔트로 대체된 후 32비트 버킷 ID로 해시됩니다. 버킷 ID 0x4A12F8E1 솔트 없이는 시리얼로 역추적할 수 없으며, 솔트는 다음 콜드 부팅 시 삭제됩니다.

2단계 — 값을 버킷화합니다. 지연 시간은 가장 가까운 10ms 단위로 반올림됩니다. 페이지는 CEFR A1(1–500쪽), A2(501–1,200쪽), B1(1,201–2,000쪽)로 버킷화됩니다.

3단계 — 해시 지문을 생성합니다. 이 윈도우에는 스택 트레이스가 포함되지 않습니다.

4단계 — 소스에서 집계합니다. 5개의 이벤트가 하나의 레코드로 축소됩니다.

결과: 14:15에 하나의 레코드가 업로드됩니다.

{
  "fleet_id":   "0x4A12F8E1",
  "model":      "Q8",
  "fw":         "3.3.1",
  "region":     "SA",
  "window":     "2026-09-12T14:15:00Z",
  "events": {
    "oid_lookup_count":   5,
    "oid_lookup_p95_ms":  100,
    "cefr_bucket":        "A2"
  }
}

이것이 플릿 대시보드에 표시되는 내용입니다. 어린이, 학부모 또는 특정 펜으로 되돌아갈 수 있는 경로는 존재하지 않으며, 버킷 ID는 매 부팅 시마다 새로 생성됩니다.

8.2 전체 이벤트 클래스 목록 (n = 44)

하위 시스템 및 기본 정책별로 그룹화된 전체 이벤트 분류 체계:

ID 이벤트 정책 집계 윈도우 비고
0x01 부팅.시작 원격측정 15분 콜드 부팅 횟수 집계
0x02 부팅.종료 원격측정 15분 콜드 부팅 소요 시간
0x03 전력.소모 원격측정 15분 배터리 소모율
0x04 전력.충전 원격측정 15분 충전 전류 피크값
0x05 키.입력 로컬 n/a 버튼 매핑
0x06 책.열기 로컬 n/a 재개 위치
0x07 책.닫기 로컬 n/a 재개 위치
0x08 oid.조회 원격측정 15분 버킷화된 지연 시간
0x09 oid.미스 원격측정 15분 로드된 모든 도서에 코드가 존재하지 않음
0x0A 사전.적중 원격 측정 15분 캐시 적중률
0x0B 사전.미스 원격 측정 15분 콜드 룩업 지연
0x0C lp.로드 원격 측정 15분 LP 서명 검증
0x0D tts.발화 원격 측정 15분 첫 바이트 지연
0x0E 음성인식.발화 지원 세션당 옵트인 전용
0x0F 음성인식.결과 지원 세션당 옵트인 전용
0x10 앱.크래시 원격측정 15 분 스택 해시
0x11 앱.오류 원격측정 15 분 심각도 0–3
0x12 펌웨어.업데이트 원격측정 릴리스별 OTA 스테이징
0x13 펌웨어.롤백 원격측정 릴리스별 롤백 횟수
0x14 사전.업데이트 원격측정 릴리스별 사전 OTA
0x15 lp.업데이트 원격측정 릴리스별 LP OTA
0x16 wifi.연결 원격 측정 15 분 인증 시간
0x17 wifi.실패 원격 측정 15 분 인증 실패
0x18 ble.페어링 원격 측정 15 분 SSP 확인
0x19 ble.실패 원격 측정 15 분 페어링 실패
0x1A nfc.읽기 로컬 해당 없음 태그 UID만
0x1B usb-c.연결 로컬 해당 없음 USB-C 삽입 횟수
0x1C usb-c.pd 원격 측정 15 분 PDO 수락
0x1D 배터리.상태 원격 측정 매일 용량 감소
0x1E 열.경고 원격 측정 15 분 PMIC 열
0x1F wear.delta 원격 측정 매일 플래시 마모 카운터
0x20 err.s0 원격 측정 이벤트당 글로벌 정지 트리거
0x21 err.s1 원격 측정 15 분 S1 횟수
0x22 err.s2 원격 측정 15분 S2 횟수
0x23 err.s3 원격 측정 15분 S3 횟수
0x24 앱.로케일 로컬 해당 없음 UI 언어
0x25 앱.테마 로컬 해당 없음 UI 테마
0x26 음성.클립 지원 세션당 옵트인 전용
0x27 음성.공유 지원 세션당 옵트인 전용
0x28 음성.삭제 지원 세션당 옵트인 전용
0x29 사전.덮어쓰기 지원 세션당 옵트인 전용
0x2A 보호자.pin 로컬 해당 없음 보호자 통제
0x2B 화면.시간 로컬 해당 없음 일일 사용 시간
0x2C 세션.종료 원격 측정 15분 세션 지속 시간

전체 44개 이벤트 중 18개는 로컬, 19개는 원격 측정, 7개는 지원 등급입니다. 전체 목록은 OEM 포털의 개인정보 영향 평가 템플릿에서 확인하실 수 있습니다.

10. 시각 자료: 이벤트 등급 분포 및 대역폭 예산

아래 시각 자료는 세 가지 이벤트 등급(LOCAL/TELEMETRY/SUPPORT)에 대한 원형 차트와 펜당 월간 대역폭 예산을 나타낸 세로 막대 차트를 결합한 것입니다. 152KB는 학교 구매 담당자와 공유하는 공식 계약 수치입니다.

Event class mix (n=44)

관련 자료

견적 요청 — 공장에서 빠른 답변을 받으세요

Frequently Asked Questions

기본 원격 측정 설정에서 리딩펜은 어떤 데이터를 전송합니까?
기본 설정에서는 19개의 익명화된 원격 측정 이벤트 클래스가 Wi-Fi를 통해 15분 단위로 집계되어 전송됩니다. 각 배치에는 윈도우 타임스탬프, 32비트 플릿 ID 해시, 모델, 펌웨어 버전, 지역 코드 및 6개의 메트릭 카운터가 포함됩니다. 기기 시리얼 번호, 부모 이름, 자녀 이름, 사용자가 터치한 콘텐츠는 기기 밖으로 전송되지 않습니다. 기기 시리얼 번호는 부팅마다 변경되는 128비트 솔트로 대체됩니다.
리딩펜 원격 측정은 GDPR을 준수합니까?
예, 준수합니다. 본 원격 측정은 GDPR 제25조에 따라 EU 지역에서 기본값이 옵트아웃(미동의) 방식이며, 소스 단계에서 익명화 처리됩니다. 또한 보호자는 설정 → 개인정보 보호 → 원격 측정(Telemetry)에서 이를 비활성화할 수 있으며, 이때 보증, OTA 업데이트, 지원 접근 권한에는 영향이 없습니다. 플릿 대시보드는 집계 메트릭만 노출하며, 단일 기기 시리얼 번호까지 드릴다운할 수 있는 메트릭은 존재하지 않습니다. OEM 포털을 통해 GDPR 제17조에 따른 데이터 삭제 인증서를 무료로 발급받을 수 있습니다.
리딩펜은 음성 녹음을 업로드합니까?
아닙니다. 음성 녹음과 ASR 발화 데이터는 SUPPORT(지원) 이벤트(전체 44개 이벤트 클래스 중 7개)로 분류되며, 사용자의 명시적이고 별도의 동의가 있는 경우에만 업로드됩니다. 모든 관할 지역에서 기본 지원 정책은 OFF입니다. 지원 모드로 전환되지 않은 펜은 ASR 기능을 로컬에서 사용하는 경우에도 음성 또는 발화 내용을 단 한 건도 업로드하지 않습니다.
리딩펜은 하루에 얼마나 많은 데이터를 업로드합니까?
일반적인 펜은 하루에 1~3건의 배치 레코드를 업로드하며, 총 용량은 18~54KB입니다. 학교 주간 기준으로 12,000대 플릿의 경우 주당 업로드 용량은 1.6~4.8GB이며, 이는 기업용 광대역 회선 1개로 충분히 수용 가능합니다. 업로드는 Wi-Fi를 통해서만 이루어지며(셀룰러 모뎀 미사용), 배터리 잔량이 20% 미만일 때는 업로드가 지연됩니다.
플릿 관리자는 전체 플릿에 대해 원격 측정을 비활성화할 수 있습니까?
가능합니다. OEM 포털은 플릿 전체에 적용되는 개인정보 보호 토글을 제공하며, 다음 OTA 주기에 모든 기기의 핀 레코드에 원격 측정 비활성화 플래그(1바이트)를 서명하여 기록합니다. 이 옵션이 활성화되면 해당 기기는 원격 측정 업로드를 완전히 중단합니다. 플릿 상태 대시보드는 이미 업로드된 데이터를 기준으로 30일의 유예 기간 동안 정상 작동하며, 이후에는 읽기 전용(read-only) 모드로 전환됩니다.
장바구니
이 사이트에서 쿠키를 허용하시면 더 나은 경험을 하실 수 있습니다. 쿠키 정책
Chat on WhatsApp