[
  {
    "concept_id": "c_var",
    "canonical_name": "변수와 자료형",
    "aliases": [
      "변수",
      "자료형"
    ],
    "prerequisite_ids": [],
    "content_ids": [
      "ct_101"
    ],
    "difficulty": "intro"
  },
  {
    "concept_id": "c_cond",
    "canonical_name": "조건문",
    "aliases": [
      "조건문",
      "if문"
    ],
    "prerequisite_ids": [
      "c_var"
    ],
    "content_ids": [
      "ct_108"
    ],
    "difficulty": "basic"
  },
  {
    "concept_id": "c_loop",
    "canonical_name": "반복문",
    "aliases": [
      "반복문",
      "루프",
      "for문"
    ],
    "prerequisite_ids": [
      "c_cond"
    ],
    "content_ids": [
      "ct_110"
    ],
    "difficulty": "basic"
  },
  {
    "concept_id": "c_func",
    "canonical_name": "함수",
    "aliases": [
      "함수"
    ],
    "prerequisite_ids": [
      "c_var"
    ],
    "content_ids": [
      "ct_120"
    ],
    "difficulty": "basic"
  },
  {
    "concept_id": "c_list",
    "canonical_name": "리스트",
    "aliases": [
      "리스트",
      "배열"
    ],
    "prerequisite_ids": [
      "c_loop"
    ],
    "content_ids": [
      "ct_130"
    ],
    "difficulty": "inter"
  },
  {
    "concept_id": "c_dict",
    "canonical_name": "딕셔너리",
    "aliases": [
      "딕셔너리",
      "해시맵"
    ],
    "prerequisite_ids": [
      "c_list"
    ],
    "content_ids": [
      "ct_140"
    ],
    "difficulty": "inter"
  },
  {
    "concept_id": "c_str",
    "canonical_name": "문자열 처리",
    "aliases": [
      "문자열"
    ],
    "prerequisite_ids": [
      "c_list"
    ],
    "content_ids": [
      "ct_135"
    ],
    "difficulty": "inter"
  },
  {
    "concept_id": "c_oop",
    "canonical_name": "객체지향",
    "aliases": [
      "객체지향",
      "OOP",
      "클래스"
    ],
    "prerequisite_ids": [
      "c_func"
    ],
    "content_ids": [
      "ct_150",
      "ct_151"
    ],
    "difficulty": "advanced"
  },
  {
    "concept_id": "c_exc",
    "canonical_name": "예외처리",
    "aliases": [
      "예외처리",
      "try-except"
    ],
    "prerequisite_ids": [
      "c_func"
    ],
    "content_ids": [],
    "difficulty": "advanced"
  },
  {
    "concept_id": "c_file",
    "canonical_name": "파일 입출력",
    "aliases": [
      "파일입출력"
    ],
    "prerequisite_ids": [
      "c_str",
      "c_exc"
    ],
    "content_ids": [
      "ct_160"
    ],
    "difficulty": "advanced"
  },
  {
    "concept_id": "c_module",
    "canonical_name": "모듈과 패키지",
    "aliases": [
      "모듈",
      "패키지"
    ],
    "prerequisite_ids": [
      "c_zzz_missing"
    ],
    "content_ids": [
      "ct_170"
    ],
    "difficulty": "inter"
  },
  {
    "concept_id": "c_recur",
    "canonical_name": "재귀",
    "aliases": [
      "재귀",
      "recursion"
    ],
    "prerequisite_ids": [
      "c_func",
      "c_cond"
    ],
    "content_ids": [
      "ct_180"
    ],
    "difficulty": "advanced"
  },
  {
    "concept_id": "c_operator",
    "canonical_name": "연산자",
    "aliases": [
      "연산자"
    ],
    "prerequisite_ids": [
      "c_var"
    ],
    "content_ids": [
      "ct_105"
    ],
    "difficulty": "intro"
  }
]