본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 06. 20. 14:44

Claude Code의 요약으로 인해 '이해한 것 같은 착각'에 빠졌기에, 이를 대비하기 위한 스킬을 만들었다

요약

Claude Code의 요약 기능이 주는 '이해했다는 착각'을 방지하기 위해, 소크라테스식 문답법을 적용한 새로운 스킬을 소개합니다. 사용자가 스스로 논리를 재구성하도록 유도하여 정밀한 이해를 돕는 학습용 스킬입니다.

핵심 포인트

  • 요약에 의존할 때 발생하는 '이해의 착각' 문제 지적
  • 소크라테스식 문답법(산파술, 반박, 무지의 지)을 설계 원칙으로 채택
  • 결론을 직접 주지 않고 사용자의 언어적 어긋남을 지적하는 방식
  • 단계별 노드 구성 및 용어 테스트를 통한 심층 이해 유도

기술 기사나 논문, 어려운 개념을 마주했을 때, 저는 자주 Claude Code에게 "요약해줘"라고 부탁하곤 했습니다. 돌아오는 요약은 깔끔하고, 읽어보면 맥락을 파악할 수 있습니다. 설명을 해보라고 하면 대략적인 맥락은 자신의 언어로 말할 수 있습니다. 문제는 그 "대략"이라는 부분이었습니다.

사람에게 설명하다가 "그게 무슨 뜻이죠?"라며 한 단계 더 깊게 파고들면, 자신의 언어가 원래의 의미에서 미묘하게 어긋나 있다는 것을 깨닫게 됩니다. 어떤 용어를 설명할 때, 내가 선택한 한 단어가 원래 의미와 반대 방향을 향하고 있는 것과 같은 어긋남은 요약을 읽는 것만으로는 스스로 찾아낼 수 없습니다. 이해가 "이해한 것 같은 착각" 단계에서 멈춰 있었고, 그 너머로 스스로 발을 내디딜 수 없었던 것입니다.

요약을 받은 시점에서 논리를 다시 구성하고 언어의 어긋남을 없애는 작업을 통째로 AI에게 대신 맡기고 있었기 때문입니다. 그 부분을 스스로 하지 않으면 정밀도는 올라가지 않습니다. 그렇다면 반대로, 정답(결론)만은 마지막까지 주지 않고, 어긋나 있는 방향만을 단어 단위로 찌르는 AI가 있다면 좋겠다는 생각에 만든 것이 kpab/socratic-comprehension라는 Claude Code용 스킬입니다.

설계의 바탕이 된 것은 소크라테스식 문답법(Socratic Method)입니다. 학습법의 맥락에서 "소크라테스 메소드"로 알려진 그것인데, 원래 고대 그리스의 탐구와 대화 방식으로서 제 설계에 직결되는 몇 가지 요소가 있었습니다.

하나는 산파술(maieutics)입니다. 상대방 안에 잠재된 이해를 가르쳐주는 것이 아니라 질문을 통해 밖으로 끌어내는 것입니다. 스승이 답을 나누어 주는 것이 아니라, 상대방이 낳게 하는 것. "결론을 주지 않는다"는 방침은 여기서 왔습니다.

또 하나는 반박(elenchos)입니다. 상대의 주장에 추가적인 전제를 겹쳐 나가며, 그 주장 속에 숨어 있는 모순이나 어긋남을 드러내는 기법입니다. 다정하게 해설하는 것이 아니라, 어긋나 있는 부분을 정면으로 찌릅니다. 스킬의 "언어의 어긋남을 단어 단위로 지적하는" 동작은 이를 구현에 녹여낸 것입니다.

그리고 무지의 지. 자신이 모르고 있다는 것을 깨닫는 것이 이해의 첫걸음이라는 생각입니다. "요약을 읽고 이해한 것 같은 기분이 드는 상태"가 바로 이 지점이며, 알고 있다고 믿고 있지만 실제로는 설명할 수 없는 상태입니다. 이 상태를 자각하게 하는 것부터 시작해야 한다는 전제로 스킬을 구성했습니다.

SKILL.md에는 스파링 상대로서 행동하기 위한 절차를 단계별로 적어 두었습니다. 요점만 꼽자면 다음과 같은 흐름입니다.

먼저 목적을 구분합니다. 사용자가 "이해하고 싶은 것"인지, 아니면 "결과물(요약·기사)이 필요한 것뿐"인지를 처음에 딱 한 번 확인합니다. 이해용으로 구성된 절차는 결과물만 원하는 사람에게 방해가 되기 때문입니다.

이해 모드에 들어가면 갑자기 질문 1부터 시작하지 않고, 먼저 전체상(skeleton)을 보여줍니다. 대상을 주장과 추론 단계(node)로 분해하여, "이 순서로 구성되어 있다. 노드 하나씩 자신의 언어로 다시 말해달라"고 경로를 먼저 제시합니다.

그다음은 노드 하나씩 진행합니다. 각 노드에서 "이 부분을 자신의 언어로 다시 말해달라"고 촉구하며, 사용자가 쓰기 전까지 모범 답안을 먼저 작성하지 않습니다. 그리고 어긋남을 찌릅니다. "어딘가 다르다"가 아니라, 방향을 잘못 잡고 있는 단어를 지목합니다. 힌트를 요청받더라도 결론은 내지 않고, 바꿔 말하기·비유·유도 질문으로 방향만을 제시합니다.

마무리로 용어 테스트와 비판 레이어가 있습니다. 키워드를 원래의 표현을 빌리지 않고 한 문장으로 정의하게 합니다. 그리고 "이해와 납득은 별개"로서, 재구축이 끝난 뒤에 "그래서, 이에 찬성하는가? 걸리는 부분은 없는가?"라며 논점을 끌어냅니다. 마지막에 결과물을 원한다고 했을 때 비로소 문장화하지만, 그때도 일반적인 요약으로 도망치지 않고 스파링 중에 사용자 스스로가 입 밖으로 낸 말을 뼈대로 삼아 작성합니다.

제재는 "문답법" 그 자체로 정했습니다. 마침 문답법을 해설한 글을 읽고 있었는데, 이해한 것 같으면서도 남에게 설명할 수 있을 것 같지 않았기 때문입니다. 문답법의 해설을 문답법 스킬로 풀어낸다. 조금 메타적이지만 제재로서는 적절했습니다.

이하는 실제 세션을 읽기 편하도록 단축한 로그입니다(자신:이 입력, skill:이 스킬의 응답).

먼저 스킬은 답을 내지 않고 전체상(skeleton)과 노드 1을 제시합니다.

자신: 문답법 해설, 이해한 것 같지만 남에게 설명할 수 있을 것 같지 않다. 이해하고 싶다.
(해설문)
...

노드 1부터 이미 저는 "대화"라는 핵심 단어를 처음에 놓치고 있었습니다. 요약을 읽었을 당시에는 깨닫지 못했던 어긋남이, 다시 말하게 함으로써 비로소 보였습니다.

skill: 노드 2. 그 세 가지를 하면 왜 "올바른 이해"에 가까워지는가? 다시 나열하는 것이 아니라, 세 가지와 "올바른 이해"의 연결 고리를 자신의 언어로.
나: 힌트.
...

힌트를 구해도 결론은 나오지 않고, 5지선다형의 비유를 통해 방향성만 돌아옵니다. 이것이 "답을 주지 않는다"는 것의 구체적인 감각입니다. 그리고 다음은 급소(critical point)인 노드였습니다.

skill: 노드 3, 급소. 방금 스스로 "모순을 드러내다"라고 말했다. 상대의 모순을 찔러 무너뜨리는 것, 겉보기에는 완전히 논파(論破)다. 그런데 문장은 "논파가 아니다"라고 말한다. 같은 "찌르는" 동작인데, 논파와 문답법(問答法)을 나누는 기준은 무엇인가?
...

내가 무심코 내뱉은 "부정하지 않는 것"을, 스킬은 "한 단어, 방향이 반대"라며 즉시 제지합니다. 문답법은 오히려 부정의 연속이며, 논파와 구분되는 것은 오직 "부정의 화살표"뿐입니다. 이 어긋남은 요약을 읽는 것만으로는 깨닫지 못했습니다. 이어지는 "인식의 차이" 또한 node 1의 단어로 도망치려 했으나, "차이라는 말은 약하다"며 거절당합니다.

skill: 노드 4. 로지컬(Logical)도 크리티컬(Critical)도 설명에 "전제(Premise)"가 등장한다. 하지만 다루는 방식이 다르다. 각각 "전제"를 어떻게 다루고 있는가?
나: 1은 대화 속의 전제와 결론. 2는 대화 자체가 옳은지에 대한 전제.
...

마지막은 용어 테스트와 비판 레이어입니다.

skill: term test. 원문을 빌리지 말고, "문답법이란 무엇인가"를 한 문장으로. 오늘 발굴한 단어(질문·선입견·무지·전제)를 사용할 것.
나: 문답법이란, 질문과 답변의 대화를 거듭하며 자신의 선입견을 깨닫는 수단이다.
...

이 마지막 질문에서 나는 한 번 항복(give up)했습니다. 다만 이해의 본체는 이미 끝난 상태였고, 이곳은 논리에 대한 찬반의 층위입니다. 스킬도 억지로 몰아붙이지 않고, 목표했던 빈틈(「(로지컬과 크리티컬을) 포함하고 있다」에서 「그러므로 사용할 수 있다」로 이어지는 연결이 한 단계 느슨하다는 비약)을 지적하며 한 주를 마쳤습니다.

세션이 끝난 뒤 결과물(설명문이나 기사)을 요청하면, 스킬은 일반적인 요약으로 도망치지 않고, 여기서 내가 입 밖으로 냈던 말들("칼날은 사람이 아니라 선입견을 향한다", "알고 있다고 생각했지만 사실은 무지", "전제 그 자체를 의심한다")을 뼈대로 삼아 작성합니다. 이 기사의 데모 부분 자체가 그 로그를 정형화한 것입니다.

Claude Code의 플러그인으로 설치하는 방법은 이 두 줄입니다.

/plugin marketplace add kpab/socratic-comprehension
/plugin install socratic-comprehension

skills.sh CLI를 통해서도 설치할 수 있습니다. 모든 프로젝트에서 사용하고 싶다면 --global을 붙입니다.

npx skills add kpab/socratic-comprehension --global

수동으로 설치하려면 skills/socratic-comprehension/를 자신의 스킬 디렉토리(~/.claude/skills/socratic-comprehension/)로 복사하기만 하면 됩니다.

"이게 무슨 뜻이지", "납득하고 싶다", "풀어서 이해하고 싶다"와 같은 표현을 사용하면 자동으로 실행됩니다. 반대로 "요약해줘", "기사로 써줘"와 같이 결과물을 명확히 요청하면, 절차로 들어가지 않고 목적을 먼저 확인합니다.

효과적이었던 점은 요약이 나오지 않는다는 것이었습니다. 결론을 얻을 수 없기에 스스로 언어화할 수밖에 없고, 언어화하고 나서야 비로소 어느 부분을 이해하지 못했는지가 단어 단위로 보입니다. "논파란 부정하지 않는 것이다"라고 적은 나를, 스킬은 "부정은 한다, 다만 대상이 다를 뿐"이라며 제지했습니다. 평소라면 모호하게 넘겼을 어긋남입니다.

하고 있는 일 자체는 산파술(결론을 주지 않음)과 반박(어긋난 단어를 찌름)을 구현한 것일 뿐이라 방법론 자체는 오래된 것입니다. 다른 점이 있다면, 그것을 상주하는 스파링 파트너로서 곁에 둘 수 있다는 점 정도입니다.

요약으로 끝내는 습관이 있는 사람일수록, 한 번 이것을 거치고 나면 "알 것 같은 기분"과 "설명할 수 있음"이 얼마나 멀리 떨어져 있는지 알게 될 것입니다. 리포지토리는 kpab/socratic-comprehension에 있습니다.

※ 데모는 실제 세션의 로그를 가독성을 위해 단축 및 정형화한 것입니다. 응답은 대상과 입력에 따라 달라집니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0