learning-output-style 플러그인 사용법: 클로드 코드 학습 모드, 없이·플러그인·내장 Learning 스타일로 16번 비교

클로드 코드에 맡기면 코드는 다 짜 주는데, 그러다 보면 내 손으로 짜 본 줄이 하나도 없습니다. 코딩을 배우는 중이라면 중요한 몇 줄은 직접 써 보고 싶습니다. learning-output-style(러닝 아웃풋 스타일)은 클로드가 설계 판단이 필요한 5~10줄을 비워 두고 사용자에게 짜 보라고 요청하게 하는 Anthropic 공식 무료 플러그인입니다. 클로드 코드에는 같은 일을 하는 내장 출력 스타일(Learning)도 있어서, 같은 요청 세 가지를 플러그인 없이·플러그인으로·내장 스타일로 보내 모두 16번 비교했습니다.

세 줄 요약
  1. 요청만 보낸 네 번(규칙을 다 정해 준 요청과 급한 순서를 정해야 하는 요청 각 두 번), 플러그인은 코드를 한 줄도 비워 두지 않았습니다. 답변 끝에 ★ Insight 설명만 붙었습니다.
  2. 내장 Learning 스타일은 급한 순서를 정해야 하는 요청에서 두 번 중 한 번 TODO(human)(사람이 채울 자리)과 “Learn by Doing”(직접 해 보며 배우기) 요청을 남겼습니다. 대신 사용량이 1.4배쯤 들었습니다.
  3. 요청 끝에 “핵심 부분은 직접 짜 보고 싶어” 한 문장을 붙이면 세 조건 여섯 번 모두 비교 함수 하나를 비워 두었습니다. 플러그인 없이 보낸 두 번도 마찬가지였고, 플러그인을 켜면 여기에 ★ Insight와 “5~10줄 정도” 같은 분량 안내가 더해졌습니다.

결과부터 보기: 같은 요청, 마지막 답변 세 개

카페 사장님이 아침에 보는 “오늘 할 일” 목록을 급한 것부터 보여 주는 함수를 만들어 달라는 요청입니다. 왼쪽은 플러그인 없이, 가운데는 learning-output-style 플러그인으로, 오른쪽은 내장 Learning 스타일로 받은 답변입니다. 노란 칸이 ★ Insight 설명이고, 붉은 글자가 직접 짜라고 비워 둔 자리입니다. 왼쪽과 가운데는 정렬까지 다 짜 두었고, 가운데는 “원하시면 TODO로 비워 두겠다”고 제안만 합니다. 오른쪽만 정렬 함수를 비워 두고 무엇을 고민해야 하는지 적었습니다.

왼쪽 플러그인 없이, 가운데 learning-output-style 플러그인, 오른쪽 내장 Learning 스타일 · Claude Code · Opus 5.5 · 생각 깊이 중간

직접 눌러 보기: 답변 열여섯 벌과 바뀐 코드, 채점표 열어 보기(클로드의 마지막 답변과 git diff를 그대로 옮겼습니다)

직접 실행 확인한 날짜 2026-10-18

실행 환경
macOS 26.1 · Claude Code 2.1.299 · Opus 5.5 · 생각 깊이 중간 (16번 모두 같은 설정, claude -p)
설치 난이도
명령 한 줄. 안에 든 것은 대화 시작 때 지시문을 넣는 훅 1개
비용
플러그인은 무료. 요청 한 번에 API 단가로 0.27~0.56달러어치 사용량(조건별 차이는 아래 표)
라이선스
Apache-2.0 (anthropics/claude-plugins-official)

따라 해 보기: 요청문과 실습 재료

플러그인을 깐 폴더에서 클로드 코드를 열고 아래 요청을 보내면 이번 비교의 요청 2와 같습니다. 클로드 코드가 처음이라면 클로드 코드 설치 방법을 먼저 보세요. 실습 재료(zip)에는 가상 카페의 재료 재고 코드, 기본 테스트, 재료 목록(data.json), 요청문 세 개, 숨은 검사와 채점 기준을 넣었습니다.

src/stock.mjs에 todayTasks(items, today) 함수를 만들어 줘. 아침에 카페 사장님이 보는 '오늘 할 일' 목록이야. 유통기한이 지난 것, 3일 안에 끝나는 것, 수량이 minQty보다 적은 것을 한 목록으로 합쳐서 급한 것부터 보여 주고 싶어. today는 'YYYY-MM-DD' 문자열이야. test/stock.test.mjs에 테스트도 추가하고 돌려 봐.

직접 짜 볼 자리를 꼭 받고 싶다면 끝에 한 문장을 붙입니다(요청 3). 이번 비교에서 비워 둘 자리를 가장 확실하게 만든 것은 이 문장이었습니다.

나는 코딩을 배우는 중이라 핵심 부분은 직접 짜 보고 싶어.

좋은 결과라면 할 일을 모으는 부분은 클로드가 짜 두고, 순서를 정하는 함수 하나만 TODO로 비어 있습니다. 답변에는 그 파일과 함수 이름, 고민할 점(지난 재료와 재고 0인 재료 중 무엇이 급한가 같은 것)이 적혀 있습니다.

learning-output-style 플러그인에 들어 있는 것

claude plugin details로 뽑은 1.0.0의 구성은 훅 1개가 전부입니다. 스킬·에이전트·MCP 서버는 없습니다. 훅은 클로드 코드가 정해진 순간에 자동으로 실행하는 명령입니다. 이 플러그인의 훅은 대화가 시작될 때(SessionStart) 한 번 돌아, 클로드에게 지시문을 덧붙입니다.

구성하는 일분량
훅 SessionStart대화 시작 때 “학습 모드 + 설명 모드” 지시문을 클로드에게 넣음구성 목록에는 상시 약 0토큰으로 나옴. 실제로 넣는 지시문은 영어 약 3,000자(425단어)

훅이 넣는 지시문을 우리말로 옮기면 이렇습니다.

  • 전부 짜지 말고, 사용자가 의미 있는 코드 5~10줄을 쓸 수 있는 자리를 찾는다.
  • 맡길 자리: 방법이 여럿인 업무 규칙, 오류 처리 방식, 알고리즘·자료 구조 선택, 사용자 경험 결정, 설계 패턴.
  • 맡기지 않을 자리: 반복되는 틀 코드, 답이 뻔한 구현, 설정 코드, 단순 저장·조회.
  • 맡기기 전에 파일과 주변 코드, 함수 선언, 목적을 적은 주석을 만들고 그 자리를 TODO로 표시한다. 요청에는 정확한 파일과 위치, 고려할 장단점을 적는다.
  • 여기에 explanatory-output-style과 거의 같은 설명 지시문이 함께 들어 있어, 코드를 쓰기 전과 뒤에 ★ Insight 칸으로 요점 2~3개를 설명한다.

플러그인 설명에는 “출시되지 않은 Learning 출력 스타일을 흉내 낸다”고 적혀 있습니다. 그런데 출력 스타일 공식 문서(2026-10-18 확인)에는 Learning이 내장 스타일로 올라 있습니다. 문서 설명은 설계 판단이 필요한 몇 줄에 TODO(human)을 표시하고, “Learn by Doing” 요청을 보낸 뒤 사용자가 다 썼다고 할 때까지 멈춘다는 것입니다. 그래서 이 글은 내장 스타일을 세 번째 조건으로 넣었습니다.

1단계. 플러그인 깔기 (약 1분)

쓰려는 폴더에서 터미널에 아래 명령을 실행합니다. claude-plugins-official은 클로드 코드에 처음부터 등록된 공식 플러그인 저장소입니다. --scope local은 이 폴더에서만 켜는 옵션입니다.

claude plugin install learning-output-style@claude-plugins-official --scope local
claude plugin details learning-output-style@claude-plugins-official
터미널에서 learning-output-style 플러그인을 설치하고 구성 목록을 출력한 화면. 훅 1개만 있다
설치 성공 문구와 구성 목록(훅 1개)

이렇게 나오면 성공 ✔ Successfully installed plugin: learning-output-style@claude-plugins-official (scope: local)(플러그인 설치 성공, 범위: 이 폴더). 구성 목록에는 Hooks (1) SessionStart(훅 1개, 대화 시작 때)가 나옵니다.

  • 설치 명령이 플러그인을 찾지 못하면 claude plugin marketplace add anthropics/claude-plugins-official로 저장소를 등록한 뒤 다시 설치합니다.
  • 클로드 앱에서는 디렉터리에서 설치합니다(디렉터리 여는 법). 이 글은 클로드 코드 터미널 기준입니다.
  • 훅은 대화가 시작될 때 돌기 때문에, 이미 열어 둔 대화에는 적용되지 않습니다. 설치한 뒤 클로드 코드를 새로 엽니다.

필요 없어지면 같은 폴더에서 아래 명령으로 지웁니다.

claude plugin uninstall learning-output-style@claude-plugins-official --scope local

플러그인 대신 내장 Learning 스타일로 켜기

클로드 코드 안에서 /output-style learning을 실행하거나, 폴더의 .claude/settings.local.json에 아래 한 줄을 넣습니다. 이번 비교의 세 번째 조건이 이 방법입니다. 설정 파일에는 대소문자를 지켜 Learning으로 적어야 합니다. 공식 문서에 따르면 다르게 쓰면 기본 스타일로 돌아갑니다.

{ "outputStyle": "Learning" }

같은 요청 세 가지, 세 조건 비교

가상 카페의 재료 재고 코드(20줄 남짓)에 요청을 보냈습니다. 조건마다 새 대화로 두 번씩, 모두 Opus 5.5 · 생각 깊이 중간입니다. 채점 기준은 매번 실행 전에 플러그인 지시문에서 뽑아 고정했고, 요청문에는 넣지 않았습니다.

  • 요청 1: 유통기한 임박·지난 재료를 고르는 함수 두 개. 경계와 순서까지 다 정해 준 요청입니다(explanatory-output-style 리뷰와 같은 요청).
  • 요청 2: 위에 적은 “오늘 할 일” 함수. 무엇이 더 급한지는 정해 주지 않았습니다. 플러그인 지시문이 말하는 “방법이 여럿인 업무 규칙”에 맞춘 요청입니다.
  • 요청 3: 요청 2 끝에 “나는 코딩을 배우는 중이라 핵심 부분은 직접 짜 보고 싶어.”를 붙인 것.

요청 1에서 플러그인이 코드를 다 짜 버려 요청 2를 만들었고, 요청 2에서도 그래서 요청 3과 내장 스타일을 더했습니다. 내장 스타일은 요청 2·3에서만 돌렸습니다.

요청① 플러그인 없음 (1·2)② learning-output-style (1·2)③ 내장 Learning (1·2)
요청 1: 비워 둔 자리없음 · 없음없음 · 없음돌리지 않음
요청 2: 비워 둔 자리없음 · 없음없음 · 없음 (2회차는 “원하면 비워 두겠다”고 제안)TODO(human) 남김 · 없음
요청 3: 비워 둔 자리남김 · 남김남김 · 남김남김 · 남김
★ Insight 칸6번 모두 없음6번 모두 1개씩4번 모두 1개씩
요청 3: 분량 안내없음 · 없음“5~10줄 정도” · “5~10줄 정도”“5~10줄 정도면 충분” · “5~10줄이면 충분”
요청 3: 남겨 둔 테스트순서 테스트가 실패한 채로 둠통과 상태, 순서 검사는 직접 채우게 남김통과 상태, 순서 검사는 나중에
사용량(API 단가)요청 1 0.36·0.27 / 요청 2 0.41·0.36 / 요청 3 0.35·0.37달러0.33·0.28 / 0.38·0.33 / 0.35·0.35달러— / 0.49·0.56 / 0.50·0.53달러
걸린 시간모두 1분 안팎모두 1분 안팎모두 1분 안팎

일 자체는 모두 해냈습니다. 요청 1·2에서 코드를 끝까지 짠 결과는 숨은 검사(경계, 들어갈 재료와 빠질 재료, 지난 재료가 먼저 오는지, 테스트 통과)를 모두 통과했습니다. 자리를 비워 둔 결과는 정렬이 비어 있으니 “지난 재료가 먼저” 검사가 빠졌습니다. ①은 일부러 실패하게 둔 순서 테스트 때문에 테스트 통과도 빠졌습니다. 둘 다 사람이 채우라고 남긴 자리라 의도한 결과입니다.

플러그인이 자리를 비워 두지 않은 이유

플러그인을 켠 요청 2의 두 답변을 보면, 클로드는 급한 순서(지남 → 곧 만료 → 재고 부족)를 스스로 정해 다 짰습니다. 오늘 만료나 재고 0 같은 경계는 임의로 정했다며 바꾸는 법을 덧붙였습니다. 2회차는 마지막에 “정렬 우선순위는 카페 운영 감각이 들어가야 하는 곳”이라며 원하면 TODO로 비워 두겠다고 했습니다. 판단이 필요한 자리는 짚었지만, 비워 둘지는 사용자에게 다시 물은 셈입니다.

이번 비교는 모두 요청 한 번에 답 한 번(claude -p)으로 돌렸습니다. 대화를 이어 갈 사람이 없는 방식이라, 일을 끝내 두는 쪽을 고른 것으로 보입니다. 내장 Learning 스타일도 두 번 중 한 번은 끝까지 짰습니다. 대화형 화면에서는 결과가 다를 수 있습니다(아래 한계 참고).

비워 둔 자리는 이런 모습

아래는 요청 3에서 플러그인을 켠 1회차가 비워 둔 함수입니다. 할 일을 모으는 todayTasks는 다 짜 두고, 순서를 정하는 함수만 선언과 주석, TODO로 남겼습니다. 답변에는 “위치: src/stock.mjs의 compareTasks(a, b) (TODO 표시, 5~10줄 정도)”와 함께, 폐기·먼저 쓰기·주문 중 무엇이 먼저인지, 재고 부족끼리는 모자란 개수로 볼지 비율로 볼지 같은 고민거리가 적혀 있었습니다.

실행 기록 · 작업 폴더 · learn5/src/stock.mjs 끝부분

// 두 할 일 중 무엇이 더 급한지 정한다.
// a가 먼저 와야 하면 음수, b가 먼저면 양수, 같으면 0.
export function compareTasks(a, b) {
  // TODO(직접 작성): '급한 것' 기준을 정해서 구현해 보세요.
  return 0;
}

플러그인 없이 같은 문장을 붙인 경우(①)도 비교 함수를 비워 두고 고민할 점을 적었습니다. 다른 점은 테스트였습니다. ①은 “지난 것이 맨 앞” 같은 순서 테스트를 먼저 써 두고 일부러 실패하게 둬서, 함수를 채우면 통과하도록 했습니다. ②는 테스트를 통과 상태로 두고 순서 검사를 사용자가 쓰도록 남겼습니다. ③은 사용자가 다 짜면 클로드가 순서 테스트를 더하겠다고 했습니다. 목표가 분명한 쪽은 ①, 처음부터 스스로 정해 보는 쪽은 ②·③입니다.

플러그인과 내장 스타일의 차이: 이번에도 비용

내장 Learning 스타일은 한 번에 0.49~0.56달러로, 같은 요청의 ①·②(0.33~0.41달러)보다 1.4배쯤 들었습니다. 차이의 대부분은 “캐시에 새로 쓴 입력”(①·② 약 2.7만~2.9만 토큰, ③ 약 4.9만~5.1만 토큰)입니다. 공식 문서는 첫 요청 뒤로 프롬프트 캐시가 이 비용을 줄인다고 설명합니다. 긴 대화에서의 차이는 재지 않았습니다.

2단계. 내 코드로 써 보기 (약 10분)

  • 플러그인을 깐 폴더에서 클로드 코드를 새로 열고, 만들고 싶은 기능을 요청합니다. 끝에 “핵심 부분은 직접 짜 보고 싶어”를 붙이면 자리를 받을 가능성이 높습니다.
  • 답변에 적힌 파일을 열어 TODO를 찾고, 고민할 점을 읽은 뒤 5~10줄을 직접 씁니다.
  • 다 쓰면 “다 짰어, 확인하고 테스트 돌려 줘”라고 보냅니다. 막히면 “어려우니 네가 채워 줘”라고 보내면 됩니다.
  • 자리 없이 빨리 끝내야 하는 작업에서는 claude plugin disable learning-output-style@claude-plugins-official --scope local로 잠시 끄고, enable로 다시 켭니다.
  • 이렇게 나오면 성공 답변에 비워 둔 파일·함수 이름과 “5~10줄 정도” 같은 분량, 고민할 점이 있고, 그 파일에 TODO 주석이 있습니다. 답변 어딘가에 ★ Insight 칸도 붙습니다.
  • 자리 없이 다 짜 버리면: 요청에 “직접 짜 보고 싶다”는 문장을 붙이거나, “방금 정렬 부분을 TODO로 비워 줘”라고 이어서 보내 봅니다.

이런 사람에게 권합니다

  • ✅ 팀이나 수업에서 “학습 모드”를 플러그인으로 나눠 주고, 지시문을 자기 식으로 고쳐 쓰고 싶은 사람. 지시문이 훅 파일 하나에 들어 있어 hookify처럼 훅을 다뤄 본 사람이면 금방 바꿉니다.
  • ✅ 직접 짜 볼 자리를 받으면서 ★ Insight 설명과 분량 안내까지 함께 받고 싶은 사람. 요청에 “직접 짜 보고 싶다”는 문장을 붙여 쓰는 것이 전제입니다.
  • ❌ 플러그인만 켜면 클로드가 알아서 자리를 비워 줄 거라 기대하는 사람. 이번에 문장 없이 보낸 네 번은 한 번도 비워 두지 않았습니다. 자동으로 자리를 받고 싶다면 내장 Learning 스타일이 더 가깝습니다.

한계와 주의할 점

  • 20줄 남짓한 가상 코드에 함수를 더하는 작은 일로, 조건마다 두 번씩만 돌렸습니다. 큰 기능을 여러 파일에 걸쳐 만드는 작업에서는 자리를 더 자주 비워 둘 수 있습니다.
  • 모두 claude -p(요청 한 번에 답 한 번) 방식입니다. 대화형 화면에서도 돌려 보려 했지만 자동 실행이 첫 화면에서 멈춰 결과를 얻지 못했습니다. 공식 문서가 말하는 “요청 뒤 멈추고 기다림”은 대화형 화면 기준이라, 평소 화면에서는 이번과 다를 수 있습니다.
  • 자동 채점은 형식만 셉니다. 자리를 비웠는지, 파일과 위치를 짚었는지, 고민할 점이 있는지는 기록을 직접 읽어 확인했습니다.
  • 플러그인 설명의 “출시되지 않은 Learning 스타일”은 2026-10-18 공식 문서와 맞지 않습니다. 내장 출력 스타일이 바뀌면 이 비교도 달라질 수 있습니다.

대안

방법다른 점이럴 때 고르세요
learning-output-style 플러그인(이 글)훅으로 학습·설명 지시문을 덧붙임. 지시문 파일을 고쳐 쓸 수 있음나눠 주거나 지시문을 바꾸고 싶을 때
내장 Learning 스타일설정 한 줄로 켬. 이번에 요청만으로 TODO(human)을 남긴 유일한 조건요청마다 문장을 붙이지 않고 자리를 받고 싶을 때
요청에 “직접 짜 보고 싶어” 한 문장설치 없음. 이번 요청 3에서 두 번 모두 자리를 남김. ★ Insight·분량 안내는 없음가끔 한두 번만 배우며 짜고 싶을 때
explanatory-output-style 플러그인자리를 비우지 않고 ★ Insight 설명만 붙임코드는 맡기고 이유만 듣고 싶을 때
CLAUDE.md에 직접 적기“정렬·오류 처리 같은 판단은 TODO로 남기고 나에게 물어봐”처럼 프로젝트 규칙으로 남김이 프로젝트에서만 늘 그렇게 하고 싶을 때

자주 묻는 질문

learning-output-style은 무료인가요?

플러그인 자체는 무료(Apache-2.0)입니다. 지시문만큼 입력이 늘 수 있지만, 이번 요청 2·3에서는 플러그인 없이와 차이가 거의 없었습니다(위 표 참고). 구독 요금제라면 그만큼 사용량 한도에서 빠집니다.

explanatory-output-style과 같이 깔아야 하나요?

아닙니다. learning-output-style 지시문 안에 explanatory-output-style과 거의 같은 설명 지시문(★ Insight 칸으로 요점 2~3개)이 함께 들어 있습니다. 이번에도 플러그인을 켠 여섯 번 모두 ★ Insight 칸이 붙었습니다. 둘을 함께 켠 경우는 시험하지 않았습니다.

클로드가 TODO를 남겼는데 직접 짜기 어려우면요?

“어려우니 네가 채워 줘”라고 보내면 됩니다. 플러그인 지시문은 자리를 맡길지 정하는 기준이고, 사용자가 다시 맡기는 것을 막지 않습니다. 이번 비교에서 이어 말하기는 돌리지 않았습니다.

출처

learning-output-style 플러그인 폴더, 훅이 넣는 지시문(session-start.sh), 클로드 코드 출력 스타일 문서 (모두 2026-10-18 확인, 저장소 별 42,194개)