📝 한줄 요약
데이터과학 교재 한 권을 강의에 재사용할 수 있도록 AI와 함께 온톨로지 지식그래프로 바꾸고 있습니다. 처음에는 챕터 제목만 연결한 얕은 그래프가 나왔지만, 사람이 직접 확인할 수 있는 화면과 검증 절차를 반복해서 고친 끝에 현재 6개 장의 지식 객체 450개와 관계 361개를 탐색할 수 있게 됐습니다.
바쁘시면 이것만 읽어도 돼요:
Codex CLI로 [Codex CLI] 교재를 AI에 맡겼더니 제목만 연결했다—6개 장, 450개 지식 객체로 다시 만든 과정
📝 한줄 요약
데이터과학 교재 한 권을 강의에 재사용할 수 있도록 AI와 함께 온톨로지 지식그래프로 바꾸고 있습니다. 처음에는 챕터 제목만 연결한 얕은 그래프가 나왔지만, 사람이 직접 확인할 수 있는 화면과 검증 절차를 반복해서 고친 끝에 현재 6개 장의 지식 객체 450개와 관계 361개를 탐색할 수 있게 됐습니다.
바쁘시면 이것만 읽어도 돼요:
Codex CLI로 HTML 원문을 읽어 지식그래프로 만들었습니다.
그래프를 눈으로 확인하지 않았다면, 챕터 제목을 실제 개념으로 착각한 채 작업을 계속했을 겁니다.
문제, 초기 시도, 실패 경계, 사례, 개념, 결정이 이어지는 흐름으로 교재의 지식을 다시 정의했습니다.
자동 검사는 오류가 있으면 다음 단계로 넘어가지 못하게 하고, 검사 결과는 다시 확인할 수 있는 증거 파일로 남겼습니다.
한 번의 성공에 그치지 않도록 다른 교재에도 적용할 수 있는 재사용 스킬로 만들었습니다.
AI에게 “잘 정리해줘”라고만 하기보다, 결과를 사람이 볼 수 있게 만들고 잘못된 예를 함께 정의하는 것이 훨씬 중요했습니다.
🎯 이런 분들께 도움돼요
두꺼운 교재나 보고서의 지식을 강의·교육 자료로 재사용하고 싶은 분
AI가 만든 요약이 원문 구조와 의미를 제대로 보존했는지 확인하기 어려운 분
한 번의 대화에서 끝나는 작업을 반복 가능한 AI 업무 절차로 만들고 싶은 분
😫 문제 상황 (Before)
시작점은 단순했습니다. 데이터과학 교재 한 권의 내용을 강의에 재 사용하려면, 어느 장에 어떤 개념이 있는지만이 아니라 “왜 이 개념이 필요해졌는가”까지 구조화해야 했습니다.
예를 들어 어떤 분석 방법이 등장했다면 그 앞에는 해결하려던 문제가 있어야 합니다. 먼저 시도해 본 방법이 있다면, 왜 충분하지 않았는지도 연결되어야 합니다. 그런데 이런 관계를 사람이 장마다 직접 읽고 정리하기에는 책의 범위가 너무 컸습니다.
그래서 AI와 함께 온톨로지 지식그래프를 만들기로 했습니다. 온톨로지라는 말이 조금 어렵게 들리지만, 여기서는 교재 속 지식을 일정한 종류로 나누고 서로 어떤 관계인지 연결한 지도라고 생각하면 됩니다.
첫 요청부터 검증 원칙을 분명히 했습니다.
검증시에는 code as gate랑 proof as artifact 원칙 지켜줘쉽게 풀면 두 가지입니다. 자동 검사를 통과하지 못한 결과는 다음 단계로 넘기지 않고, 통과했다고 말할 때는 다시 열어 볼 수 있는 증거를 남기는 것입니다.
🛠️ 사용한 도구
도구명: Codex CLI
모델: Codex에서 제공된 GPT-5 계열 모델
원전: Veridical Data Science 웹 교재의 HTML 17개와 연결 이미지
확인 화면: 브라우저에서 실행되는 3D 지식그래프
특이사항: 코드 검사와 별도로 AI가 원문과 결과를 다시 비교하는 의미 검증을 사용했습니다.
🔧 작업 과정
화면을 만들어 보니, “지식그래프”가 아니라 “목차 그래프”였다
처음에는 작업이 잘 진행되는 듯했습니다. 교재의 장과 구간이 연결됐고, 개념 수도 화면에 표시됐습니다. 하지만 숫자와 파일만 봐서는 실제로 무엇이 연결된 것인지 알기 어려웠습니다.
그래서 제가 직접 확인할 수 있는 화면을 요청했습니다.
아 좋아. 그럼 그냥 저걸 참조하지 말고 우리가 하던거를 시각화해서 볼수있는 화면이 하나 필요해. 간단해도 좋아. 지금 잘 되고 있는지 내가 검증 및 확인이 필요해그래프를 눈으로 보자 문제가 바로 드러났습니다. 제가 원했던 것은 교재의 개념과 지식 흐름이었는데, AI가 만든 것은 챕터 제목과 교육 구간을 중심으로 연결한 색인에 가까웠습니다. 화면에는 “교육 개념 16개”가 전권의 지식을 대표하는 것처럼 보였습니다.
이해가 안 가는 게 지금 너가 한 건 교제 제목들로만 지금 이어놓은 거고 우리가 맨 처음에 약속했던 건 각 교재의 개념들에 대한 온톨로지를 만들기로 한 거 아니었어 근데 왜 이렇게 만들었지 그래프를이 장면이 전체 작업의 첫 번째 전환점이었습니다. AI가 “그래프를 만들었다”는 말과, 제가 원한 지식그래프가 만들어졌다는 말은 전혀 달랐습니다. 결과를 눈으로 보지 않았다면 잘못된 구조 위에 계속 내용을 쌓았을 겁니다.
이미 가공한 교재가 아니라 원문으로 돌아갔다
작은 범위부터 다시 만들면서 두 번째 근본 문제가 드러났습니다. 당시 사용 중이던 자료는 VDS 원문을 이미 번역하고 강의용으로 다시 작성한 것이었습니다. 즉, AI가 원전을 읽은 것이 아니라 제가 한 차례 해석한 결과를 다시 분석하고 있었습니다.
아 세상에. 나 깨달아버렸어. 지금 내가 이미 1차 가공 한걸로 지금 온톨로지를 만들고있었구나 우리. 원문 책으로 해야하는데.이후에는 HTML 17개와 그 안에서 실제로 참조하는 이미지 152개만 원전으로 인정했습니다. 번역본과 Markdown 문서는 참고조차 하지 않아도 전체 과정이 돌아가도록 분리했습니다.
이 결정은 단순히 파일 형식을 바꾼 일이 아니었습니다. “AI가 무엇을 근거로 말했는가”를 한 곳으로 고정한 일이었습니다.
문제·시도·실패·개념을 구분하는 일이 생각보다 어려웠다
다음에는 교재 속 지식을 일곱 종류로 나눴습니다.
해결해야 하지만 아직 풀리지 않은 문제
그 문제를 해결하기 위해 먼저 해 본 시도
그 시도가 더는 통하지 않는 실패 경계
실제 사건이나 연구 사례
학습자가 이해해야 할 교육 개념
정의·수식·알고리즘 같은 형식 개념
어떤 조건에서 무엇을 선택할지 정하는 결정
처음에는 “문제처럼 보이는 문장”을 문제로 올리면 된다고 생각했습니다. 하지만 AI는 저자의 결론이나 원인 진단을 말만 바꿔 문제처럼 저장하는 경향이 있었습니다.
여기서 효과가 있었던 것은 정답 정의만 쓰는 것이 아니라, 각 종류에 들어가면 안 되는 예를 함께 정한 것입니다. 예를 들어 문제에는 해결책, 저자의 평가 결과, 단독 실패 사례, 장의 주제가 들어가면 안 됩니다.
또 한 가지 중요한 결정을 했습니다. 원문의 모든 문장은 근거로 보존하되, 모든 문장을 그래프의 독립 노드로 만들지는 않았습니다. 책의 내용을 버리지 않으면서도 지식그래프가 문장 창고가 되는 것을 막는 방식이었습니다.
현실의 시작 문제와 지식의 전개 문제를 분리했다
문제를 정의하는 과정에서 제가 직접 든 두 가지 예가 설계를 바꿨습니다.
첫 번째는 호주 산불 피해 동물 수를 직접 셀 수 없지만 피해 규모는 추정해야 한다는 현실 과업이었습니다. 이런 문제는 첫 개념을 배우기 전에 이미 존재합니다.
두 번째는 최근접 이웃 방법을 배운 뒤 차원이 커지면 사용할 수 없다는 새로운 한계였습니다. 이런 문제는 앞선 방법을 사용해 봤기 때문에 생깁니다.
예를들어서 문제는, k nn알고리즘에 대해 설명을 한 다음 여기서 새로생겨난 문제 - 차원이커지면 활용불가. -그래서 나온 시도 : 임의의 저차원을 선택해보자 - pca(다음챕터의 내용이 연결됨) 이런식인거야그래서 문제를 두 역할로 나눴습니다. 현실의 사례나 과업에서 첫 개념을 요구하는 “시작 문제”, 그리고 기존 방법의 한계가 다음 개념을 요구하는 “전개 문제”입니다.
이 구분 덕분에 존 스노우의 콜레라 지도에서 가까운 집을 찾는 문제로 시작해, 최근접 이웃 개념을 배우고, 고차원에서 생기는 한계를 거쳐 PCA로 이어지는 흐름을 장 경계와 무관하게 표현할 수 있게 됐습니다.
그래프의 선이 많다고 관계가 풍부한 것은 아니었다
Chapter 2까지 확장한 뒤 그래프를 다시 보니 이상한 점이 있었습니다. 하나의 문제에서 시도, 실패, 개념이 모두 직접 뻗어나가 별 모양을 만들고 있었습니다. 일부 관계는 순환하고 있었고, 어떤 초기 시도는 왜 등장했는지 알 수 없었습니다.
지금 problem에서 attempt랑 failure pattern같은게 순차연결이아니라 problem 자체에 전부 연결된거같은데 맞나 확인해줘. 시도에 대한 실패는 attempt에만 연결되어야지. 즉, 바로직전의 상위개념만 링크되어야지확인 결과, 제 관찰이 맞았습니다. 더 심각한 점은 기존 자동 검사가 이 잘못된 평면 구조를 정상으로 간주하고 있었다는 것입니다.
그래서 관계를 두 층으로 나눴습니다. 지식이 왜 다음 지식을 필요로 하는지 보여주는 진행 관계에는 바로 직전 단계만 저장했습니다. 장·절 소속, 사례, 상하위 문제처럼 탐색을 돕는 정보는 별도의 문맥 관계로 옮겼습니다.
그 결과 기본 흐름은 다음처럼 읽을 수 있게 됐습니다.
문제 → 초기 시도 → 실패 경계 → 후속 문제·개념·결정
중간 단계를 건너뛰는 연결과 순환은 자동 검사가 막습니다. 화면에서는 진행 관계를 기본으로 보고, 문맥 관계는 필요할 때만 켤 수 있습니다.
한 장의 성공을 반복 가능한 스킬로 만들었다
Chapter 3과 Chapter 4까지 같은 방식으로 확장하면서 새로운 질문이 생겼습니다. 지금의 작업 방식이 이 세션 안에만 남아 있다면, 다음 장이나 다른 교재에서 다시 처음부터 설명해야 했습니다.
이 작업이 지금 무슨 스킬로 저장되어있어? 이 세션 말고 다른 세션에서도 이제 반복적으로 쓰고 싶어.처음에는 모든 과정을 하나의 거대한 스킬로 만들려 했습니다. 하지만 교재마다 장의 관계와 지식 구조가 다릅니다. VDS의 장간 관계를 범용 규칙으로 넣으면 다른 교재에 적용할 때 오히려 방해가 됩니다.
그래서 하나의 진입 스킬과 세 개의 독립 작업 스킬로 나눴습니다. 사용자는 진입 스킬 하나만 실행하면 됩니다. 내부에서는 원문 모델링, 기존 장과의 통합, 독립 의미 평가가 차례로 실행됩니다. 교재마다 달라지는 내용은 별도 프로필이 소유하고, 공통 스킬은 작업 순서와 검증만 책임집니다.
Chapter 6에서 스킬이 “실패할 줄 아는지” 시험했다
스킬이 잘 만들어졌다는 증거는 한 번에 성공하는 것이 아니었습니다. 잘못된 결과가 들어왔을 때 실제로 멈추는지가 더 중요했습니다.
Chapter 6을 적용했을 때 모델 의미 검증은 여섯 번 실패했습니다. 고친 뒤 일곱 번째 검증에서 통과했습니다. 통합 단계에서도 차원축소와 PCS가 앞 장의 개념과 어떻게 이어지는지 빠져 있었고, 두 번의 실패 뒤 세 번째에 통과했습니다.
그 과정에서 자동 검사 자체의 문제도 발견했습니다. 새로운 증거 형식을 읽지 못했고, 교재별 관계 계약에는
refines와applies가 빠져 있었습니다. 스킬은 이런 문제를 그냥 지나가지 않고 승격을 중단했습니다.최종적으로 Chapter 6의 고차원 탐색 문제는 Chapter 2의 더 넓은 내재 구조 발견 문제와 같은 문제로 합치지 않았습니다. 별도 문제로 유지하되 그 하위 문제로 연결했습니다. Chapter 6의 차원축소 설명은 앞 장의 개념을 더 구체화하고, PCA 평가는 일반 PCS 틀을 실제로 적용하는 관계로 남겼습니다.
✅ 결과 (After)
Before vs After
항목
Before
After
지식 구조
챕터 제목과 교육 구간 중심의 얕은 그래프
문제·시도·실패·사례·개념·결정이 이어지는 지식그래프
원전
이미 번역·가공된 강의 자료
VDS HTML 17개와 연결 이미지 152개
장 구성
장마다 대표 문제나 개념 하나처럼 단순화
한 장의 복수 문제와 복수 지식 경로 보존
관계
문제에서 여러 객체로 직접 뻗는 평면 연결과 순환
바로 직전 단계만 잇는 진행 관계와 별도 문맥 관계
확인 방법
파일과 숫자를 보고 정상이라고 추정
브라우저에서 직접 클릭·필터·확대·회전하며 확인
반복 작업
세션에서 다시 설명해야 하는 수동 과정
하나의 진입 스킬로 모델링·통합·평가 실행
현재 규모
교육 개념 16개가 전권을 대표하는 것처럼 표시
검증된 6개 장, 지식 객체 450개, 관계 361개
결과물
Chapter 1~6 통합 3D 지식그래프
문제 73개와 형식 개념 93개를 포함한 유형별 탐색 목록
노드 클릭 설명, 장·유형 필터, 문맥 관계 표시, 휠 확대·축소, 3D 회전
프로젝트 회귀 검사 159개와 범용 스킬 검사 15개
모델·통합·브라우저 검증의 성공·실패 증거
다른 교재에서도 쓸 수 있는 범용 온톨로지 제작 스킬
아직 책 전권이 끝난 것은 아닙니다. 현재 완료 범위는 6개 장이고, 다음은 Chapter 7부터 같은 절차로 확장하는 것입니다. 하지만 이제는 장마다 방법을 다시 발명하지 않아도 됩니다.
💬 이 과정에서 배운 AI 활용 팁
효과적이었던 것
결과를 사람이 볼 수 있는 화면으로 만든다
그래프 화면이 없었다면 제목 중심 색인을 실제 온톨로지로 착각했을 가능성이 큽니다.
정의와 함께 들어가면 안 되는 예를 준다
“문제란 무엇인가”만 설명하는 것보다 결론, 해결책, 장 주제는 문제가 아니라는 기준이 훨씬 효과적이었습니다.
AI가 통과했다고 말하는 것과 실제 통과를 분리한다
자동 검사가 실패하면 다음 단계로 넘어갈 수 없게 하고, 검사 결과를 파일로 남기니 세션이 바뀌어도 확인할 수 있었습니다.
코드 검사와 의미 검사를 나눈다
순환, 누락, 파일 해시는 자동으로 검사할 수 있지만, 원문의 문제를 잘못 해석했는지는 원문과 결과를 함께 읽는 별도 의미 검사가 필요했습니다.
반복 작업은 결과가 아니라 과정 전체를 스킬로 만든다
원문 읽기부터 모델링, 통합, 평가, 화면 갱신까지 한 흐름으로 묶어야 다른 장에서도 같은 품질을 재현할 수 있었습니다.
이렇게 하면 안 돼요
“온톨로지를 만들어줘”라고만 요청하고 파일 존재로 끝내기
AI는 목차나 키워드 묶음도 그럴듯한 온톨로지처럼 보여줄 수 있습니다.
가공본을 원전처럼 다시 분석하기
이미 한 번 요 약된 자료를 입력하면 원문에 있던 복수 문제와 경계 조건이 사라질 수 있습니다.
선이 많을수록 좋은 그래프라고 생각하기
중간 단계를 건너뛴 선과 양방향 편의 연결은 오히려 지식이 전개되는 이유를 가립니다.
AI의 첫 결과를 기준으로 검증 규칙 만들기
잘못된 결과를 정상으로 가정하면 자동 검사도 그 오류를 반복해서 승인합니다.
🌍 다른 업무에 적용한다면?
이 방식은 교재에만 한정되지 않습니다.
긴 정책 문서에서 문제·시도·예외·결정을 연결하기
연구 분야의 논문을 질문·방법·한계·후속 연구로 구조화하기
사내 업무 매뉴얼에서 상황·초기 대응·실패 조건·최종 판단을 연결하기
여러 프로젝트에서 반복되는 AI 작업을 하나의 진입 스킬과 독립 작업 단계로 나누기
핵심은 모든 문장을 노드로 만드는 것이 아닙니다. 원문은 모두 보존하되, 업무에서 실제로 탐색하고 재사용할 가치가 있는 지식만 역할에 맞게 승격하는 것입니다.
🚀 앞으로의 계획
Chapter 7부터 VDS의 남은 장을 같은 검증 절차로 확장합니다.
전권 지식그래프가 완성되면 강의용 자료를 이 그래프에서 다시 생성합니다.
실제 두 번째 교재 전체 장에 적용해 범용 스킬이 VDS 밖에서도 작동하는지 확인합니다.
교재별로 달라지는 관계는 각 교재 프로필에 두고, 공통 스킬은 계속 얇고 재사용 가능하게 유지합니다. HTML 원문을 읽어 지식그래프로 만들었습니다.