[
  {
    "learner_id": "l_001",
    "quiz_item_id": "q_301",
    "concept_raw": "리스트",
    "concept_id": "c_list",
    "is_correct": false,
    "answered_at": "2026-06-10T09:00:00",
    "progress_pct": 45
  },
  {
    "learner_id": "l_001",
    "quiz_item_id": "q_305",
    "concept_raw": "배열",
    "concept_id": "c_list",
    "is_correct": false,
    "answered_at": "2026-06-10T09:04:00",
    "progress_pct": 45
  },
  {
    "learner_id": "l_001",
    "quiz_item_id": "q_309",
    "concept_raw": "리스트",
    "concept_id": "c_list",
    "is_correct": true,
    "answered_at": "2026-06-10T09:08:00",
    "progress_pct": 45
  },
  {
    "learner_id": "l_001",
    "quiz_item_id": "q_312",
    "concept_raw": "딕셔너리",
    "concept_id": "c_dict",
    "is_correct": false,
    "answered_at": "2026-06-10T09:12:00",
    "progress_pct": 40
  },
  {
    "learner_id": "l_001",
    "quiz_item_id": "q_315",
    "concept_raw": "해시맵",
    "concept_id": "c_dict",
    "is_correct": false,
    "answered_at": "2026-06-10T09:16:00",
    "progress_pct": 40
  },
  {
    "learner_id": "l_001",
    "quiz_item_id": "q_201",
    "concept_raw": "조건문",
    "concept_id": "c_cond",
    "is_correct": true,
    "answered_at": "2026-06-09T14:00:00",
    "progress_pct": 80
  },
  {
    "learner_id": "l_001",
    "quiz_item_id": "q_101",
    "concept_raw": "변수",
    "concept_id": "c_var",
    "is_correct": true,
    "answered_at": "2026-06-08T10:00:00",
    "progress_pct": 100
  },
  {
    "learner_id": "l_002",
    "quiz_item_id": "q_120",
    "concept_raw": "함수",
    "concept_id": "c_func",
    "is_correct": false,
    "answered_at": "2026-06-11T11:00:00",
    "progress_pct": 30
  },
  {
    "learner_id": "l_002",
    "quiz_item_id": "q_121",
    "concept_raw": "함수",
    "concept_id": "c_func",
    "is_correct": false,
    "answered_at": "2026-06-11T11:05:00",
    "progress_pct": 30
  },
  {
    "learner_id": "l_002",
    "quiz_item_id": "q_401",
    "concept_raw": "정규표현식",
    "concept_id": null,
    "is_correct": false,
    "answered_at": "2026-06-11T11:10:00",
    "progress_pct": 30
  },
  {
    "learner_id": "l_002",
    "quiz_item_id": "q_402",
    "concept_raw": "머신러닝 입문",
    "concept_id": null,
    "is_correct": null,
    "answered_at": null,
    "progress_pct": null
  },
  {
    "learner_id": "l_003",
    "quiz_item_id": "q_150",
    "concept_raw": "객체지향",
    "concept_id": "c_oop",
    "is_correct": true,
    "answered_at": "2026-06-12T09:30:00",
    "progress_pct": 90
  },
  {
    "learner_id": "l_003",
    "quiz_item_id": "q_151",
    "concept_raw": "클래스",
    "concept_id": "c_oop",
    "is_correct": true,
    "answered_at": "2026-06-12T09:35:00",
    "progress_pct": 90
  },
  {
    "learner_id": "l_003",
    "quiz_item_id": "q_130",
    "concept_raw": "리스트",
    "concept_id": "c_list",
    "is_correct": true,
    "answered_at": "2026-06-11T16:00:00",
    "progress_pct": 100
  }
]