“파이썬으로 월간 보고서를 자동화하고 싶어요.” 목표를 정하고 목차와 실습까지 만들었다. 그런데 며칠 뒤 마음이 바뀐다. “먼저 CSV 데이터를 정리하는 연습부터 하고 싶어요.” AI가 목표 문장만 고치고 예전 보고서 실습을 그대로 보여 주면, 분명 수정했는데 공부는 엉뚱한 방향으로 간다. 책 표지만 바꾸고 속지는 그대로 둔 셈이다.
학습자료를 목표 → 목차 → 실습 → 개념 → 용어 순서로 만들었다면, 앞 단계의 수정은 뒤 단계에도 영향을 준다. 핵심은 전부 지우고 다시 만드는 것이 아니라, 기존 내용을 보존한 채 어느 단계가 다시 확인받아야 하는지 표시하는 데 있다.
AI 학습 목표를 바꾸면 목차와 실습도 왜 확인해야 할까?
처음 목표가 ‘월간 보고서 자동화’라면 목차에는 파일 읽기, 데이터 집계, 보고서 출력이 들어갈 수 있다. 실습도 월간 결과물을 만드는 쪽으로 설계된다. 목표를 ‘CSV 데이터 정리부터 연습’으로 좁힌 뒤에는 같은 목차가 적절한지, 보고서 출력 실습이 지금 단계에 필요한지 다시 물어야 한다.
반대로 목표가 바뀌었다고 모든 실습을 즉시 삭제할 필요는 없다. 파일 읽기 연습처럼 여전히 맞는 부분도 있다. 그래서 후속 자료의 상태를 ‘확정’에서 ‘검토 필요’로 바꾸고, 사용자가 남길 것과 고칠 것을 결정하게 한다. 새 목표는 확정, 옛 목차와 실습은 검토 전이라는 구분이 중요하다.
단계별 승인과 자료 수정은 어떻게 연결할까?
새 자료를 만들 때는 각 단계마다 질문 → 초안 → 피드백 → 확정을 거친 뒤 다음으로 넘어간다. 기존 자료를 수정할 때도 같은 원칙을 적용한다. 먼저 어느 학습자료를 수정할지 확인하고, 바꿀 목표를 제안한 뒤 사용자의 동의를 받는다. 동의 전에는 저장된 원본을 바꾸지 않는다.
| 상태 | 목표 | 목차·실습 |
|---|---|---|
| 수정 전 | 기존 목표 확정 | 기존 목표에 맞춰 확정 |
| 새 목표 제안 중 | 아직 미확정 | 그대로 유지 |
| 새 목표 승인 후 | 새 목표 확정 | 삭제하지 않고 검토 필요 |
| 후속 검토 완료 | 새 목표 확정 | 새 목표에 맞게 다시 확정 |
용어집까지 이미 만들었다면 그것도 사용된 용어가 바뀌었는지 확인해야 한다. 여기서 목차와 실습에 집중하는 이유는 목표와의 어긋남이 가장 먼저 드러나는 자리이기 때문이다.
승인된 목표만 저장하고 후속 자료는 검토 상태로 남겨 보자
아래 코드는 AI 모델이나 데이터베이스가 아니라, 승인 이후 상태 전환만 보여 주는 작은 예제다. 실제 서비스의 구현이라고 볼 수는 없다.
function approveGoal(material, nextGoal) {
const goal = nextGoal.trim();
if (!goal) throw new Error('학습 목표가 비어 있습니다');
if (goal === material.goal.text) return material;
return {
...material,
goal: { text: goal, revision: material.goal.revision + 1 },
curriculum: { ...material.curriculum, status: 'review_required' },
exercises: material.exercises.map((exercise) => ({
...exercise,
status: 'review_required',
})),
};
}approveGoal은 사용자 승인이 끝난 뒤에만 호출한다. 아직 제안 중인 문장은 함수에 넘기지 않는다. 기존 목차와 실습의 내용은 보존하고 상태만 바꾸므로, 무엇이 달라져야 하는지 비교할 수 있다.
const saved = {
goal: { text: '파이썬으로 월간 보고서 자동화', revision: 1 },
curriculum: { title: '파일 읽기 → 집계 → 보고서 출력', status: 'approved' },
exercises: [{ title: '월간 보고서 만들기', status: 'approved' }],
};
const revised = approveGoal(saved, 'CSV 데이터 정리부터 연습');
console.log(revised.goal.revision); // 2
console.log(revised.curriculum.status); // review_required
console.log(revised.exercises[0].title); // 월간 보고서 만들기: 삭제되지 않음같은 목표를 다시 승인하면 원래 객체를 돌려줘 불필요한 재검토를 만들지 않는다. 실제 실행에서도 목표 변경 시 후속 상태가 review_required가 되고, 빈 목표는 거절되며, 동일한 목표는 상태를 그대로 유지하는지 확인했다.
여러 학습자료를 운영한다면 무엇을 더 정해야 할까?
‘파이썬 자료 수정해 줘’만으로는 대상이 모호할 수 있다. 같은 주제의 초급·중급 자료가 있다면 수정할 자료를 먼저 선택해야 한다. 자료 ID를 찾았다는 이유로 그것을 권한 확인으로 착각해서도 안 된다. 다른 사용자의 자료 접근을 막는 일은 별도의 인증·권한 검사 책임이다.
또한 이 예제의 review_required는 후속 자료를 자동 재생성하지 않는다. 목차를 다시 검토하고 실습을 고친 뒤 각 단계를 승인받아야 한다. 동시에 여러 사람이 같은 자료를 수정하는 서비스라면 저장 시점의 버전 충돌도 별도로 처리해야 한다. 작은 상태 함수 하나가 그 문제까지 해결해 주지는 않는다.
핵심 요약
AI 학습자료에서 목표를 바꾸는 일은 문장 한 줄의 교체가 아니다. 사용자가 새 목표를 승인한 뒤 기존 목차·실습은 보존하면서 ‘검토 필요’로 표시하고, 맞는 부분만 다시 확정한다. 이렇게 해야 새 목표와 옛 실습이 조용히 섞이지 않는다.

