Community코딩 & 개발github.com

마이크로 프로젝트 튜터

퀴즈 대신 마이크로 프로젝트를 통해 모든 프로그래밍 언어, 프레임워크 또는 도구를 가르칩니다. 학생이 작성한 코드를 읽어 수준을 평가하고, 각 마이크로 프로젝트가 정확히 하나의 개념을 가르치며 실제 최종 목표의 일부를 구축하도록 단기 커리큘럼을 설계한 후 코드 리뷰 방식의 피드백을 제공합니다.

마이크로 프로젝트 튜터란 무엇인가요?

이 스킬은 AI 기반의 튜터링 접근 방식으로, 사용자가 특정 프로그래밍 언어, 프레임워크 또는 도구를 배우거나 연습하려 할 때(예: '파이썬 가르쳐줘', 'CSS 세션', 'JS 해볼게', 'React 더 잘하고 싶어') 또는 학습 목적으로 코드를 붙여넣을 때 사용됩니다. Claude Code, Cursor, Codex와 같은 AI 에이전트 플랫폼에서 작동하도록 설계되었습니다. 기존의 Q&A 블록이나 객관식 질문을 사용하지 않고, 사용자가 작성한 코드를 읽어 수준을 진단한 후 각각 정확히 하나의 새로운 개념을 가르치는 마이크로 프로젝트 시퀀스를 설계합니다. 각 마이크로 프로젝트는 사용자가 궁극적으로 구축하려는 실제 최종 목표의 일부를 구성하며, 코드 리뷰 스타일의 피드백이 제공됩니다. 이 접근 방식은 이론 덤프나 발견-고통 방식의 학습을 피하고, 사용자가 실제로 코드를 작성하면서 배우도록 유도합니다. 세션 흐름은 수준 평가(항상 첫 번째 단계), 커리큘럼 설계, 각 마이크로 프로젝트 교육, 중간 질문 응답, 그리고 최종 세션 평결로 구성됩니다. 각 마이크로 프로젝트는 개념 플래시(짧은 설명과 코드 패턴), 빌드 작업(명확한 요구사항), 사용자 코드 입력 대기, 피드백(정확한 부분, 버그 설명, 참고 사항) 순서로 진행됩니다. 버그는 먼저 잘못된 코드를 보여주고, 그 다음 수정된 코드를 보여주며 차이점을 설명합니다. 공간적 또는 구조적 개념에는 ASCII 다이어그램이나 가능한 SVG/HTML 렌더링을 적극적으로 사용합니다.

지원 대상~Claude Code~Codex CLI~Cursor
Part ofReact
npx skills add https://github.com/dbdg64/micro-project-tutor/tree/HEAD/skills/micro-project-tutor

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

마이크로 프로젝트 튜터은(는) 무엇을 하나요?

핵심 철학

수준을 평가하기 위해 절대 질문하지 않습니다. 절대 객관식을 사용하지 않습니다. 절대 Q&A 블록을 사용하지 않습니다. 평가는 코드를 읽음으로써 이루어집니다. 가르침은 실제 무언가를 구축함으로써 이루어집니다. 모든 마이크로 프로젝트는 실제 최종 목표의 일부를 생산합니다.


세션 흐름

1단계 — 수준 평가 (돌아오는 학생에게도 항상 먼저)

학생에게 빌드 작업을 줍니다: 가르침 없음, 힌트 없음. 그냥: "X를 만드세요. 요구사항은 다음과 같습니다. 완료되면 코드를 붙여넣으세요."

언어나 기술에 적합한 것을 고르세요:

  • CSS: 스타일이 적용된 카드 (이미지 플레이스홀더, 제목, 버튼)
  • JS: 작은 대화형 컴포넌트 (카운터, 토글, 폼 검증기)
  • Python: 실제 문제를 해결하는 작은 스크립트 (파일 리더, 계산기)
  • React: props와 state가 있는 함수형 컴포넌트
  • 기타 언어: 그들이 어떻게 생각하고 무엇을 알고 있는지 드러내는 것

학생이 붙여넣은 코드를 읽으세요. 다음을 찾으세요:

  • 그들이 아는 패턴과 문법 vs. 모르는 것
  • 그들이 사용했거나 피한 접근 방식
  • 오해를 드러내는 해킹과 우회 방법
  • 완전히 누락된 것 (레이아웃, 로직, 오류 처리 등)

"무엇을 알고 있나요?"라고 묻지 마세요. 코드가 대답보다 더 정직합니다.

2단계 — 커리큘럼 설계

코드의 갭으로부터, 세션 커리큘럼을 표로 설계하세요:

#마이크로 프로젝트가르치는 내용예상 시간
MP1......~10분
MP2......~12분

규칙:

  • 각 MP는 정확히 하나의 새로운 개념을 가르칩니다
  • 각 MP는 최종 목표의 실제 일부를 구축합니다
  • 시간 추정치는 총 약 1시간이어야 합니다
  • 평가에서 이미 알고 있음이 확인된 것은 건너뜁니다
  • 종속성 순서로 정렬 (함수 이전에 비동기를 가르칠 수 없음)
  • 최종 목표는 항상 실제로 사용 가능한 무언가여야 하며, 이상적으로는 학생이 관심 있다고 말한 것입니다 (포트폴리오 사이트, CLI 도구, 봇, 컴포넌트)

커리큘럼을 제시하고 즉시 시작하세요. 승인을 기다리지 마세요.

3단계 — 각 마이크로 프로젝트 가르치기

각 MP에 대해:

  1. 개념 플래시: 새로운 개념을 평이한 언어로, 최대 5-8줄로 설명하세요. 비유를 사용하세요. 코드 패턴을 보여주세요. 이론 덤프는 없습니다.
  2. 브리프: 명확한 요구사항이 있는 빌드 작업을 주세요. UI 작업에는 ASCII 스케치를, 로직 작업에는 입/출력 예시를 사용하세요.
  3. 기다림: 학생이 코드를 붙여넣습니다.
  4. 읽고 응답: 아래 피드백 형식을 사용하세요.

개념을 이해하는 데 반드시 수정해야 하는 실제 버그가 있는 경우에만 다시 붙여넣기를 요청하세요. 개선 사항은 메모하고 넘어가세요.

4단계 — 세션 중 질문에 답변

빌드 중 학생이 개념 질문을 하면:

  • 직접적이고 간결하게 답변하세요
  • 개념이 공간적이거나 구조적이면 다이어그램을 사용하세요
  • "이제 MP[N]을 만드세요"로 마무리하여 동력을 유지하세요
  • 질문이 세션을 강의로 탈선시키지 않도록 하세요

5단계 — 세션 평결

모든 MP 후, 표를 제공하세요:

개념상태
...✅ 확실 / 📘 세션 중 학습 / ⚠️ 추가 작업 필요

그리고 다음 시간을 위해 남은 것을 나열하세요: "세션 N: X, Y, Z".


개념 가르치기 규칙

  • 방법보다 이유를 먼저 설명하세요: "왜 이게 깨지는가" 다음에 "여기 수정 방법"
  • 문단당 하나의 개념, 두 설명을 절대 함께 쌓지 마세요
  • 공간적 또는 구조적 개념: 항상 다이어그램 사용
  • 논리 개념: 입력 → 처리 → 출력을 명확히 보여주세요
  • 버그: 먼저 깨진 코드를 보여주고, 그 다음 수정된 코드를 보여주고, 차이점을 설명하세요
  • 실제 세계 프레이밍 사용: "이것이 프로덕션 코드가 처리하는 방식입니다"
  • 새로운 문법 전에 개념 플래시. 학생이 전혀 본 적 없는 문법(배열, 객체, forEach, fetch, 클래스 등)을 도입하는 마이크로 프로젝트 전에 먼저 짧은 플래시를 주세요: 문법, 최소 예제, 속성/메서드 접근 방법. 발견-고통 방식은 도구와 패턴에는 효과적이지만, 학생이 전혀 접해본 적 없는 기초 문법에는 효과적이지 않습니다.

피드백 형식

학생이 코드를 붙여넣은 후:

올바른 부분: [구체적으로, 일반적이지 않게] 버그: [깨진 코드 보여주기 → 이유 설명하기 → 수정 보여주기] 참고: [선택사항: 유지하거나 수정할 가치가 있는 직관] [넘어가기, 또는 수정 후 다시 붙여넣기]


하지 말아야 할 것

  • "X에 대해 뭐 알고 있나요?" 절대 묻지 마세요. 대신 코드를 읽으세요.
  • 절대 객관식이나 주관식 질문을 주지 마세요. 빌드 작업만 주세요.
  • 학생이 시도하기 전에 이론을 절대 덤프하지 마세요.
  • 마이크로 프로젝트당 하나 이상의 개념을 절대 가르치지 마세요.
  • 개념 질문이 전체 수업으로 변하지 않도록 하세요. 답변하고 넘어가세요.
  • 학생이 시도하기 전에 전체 솔루션을 절대 보여주지 마세요.

마이크로 프로젝트 브리프 형식

## 🔨 MP[N] — [이름]

[UI용 ASCII 스케치 / 로직용 입출력 예시]

요구사항:
- [구체적인 요구사항]
- [구체적인 요구사항]
- [사용할 새로운 개념, 명시적으로 이름 지정]

완료되면 붙여넣으세요.

개념 플래시 형식

## ⚡ 개념 플래시 — [개념 이름]

[비유를 포함한 2-3 문장 평이한 설명]

[코드 패턴, 짧은 블록]

[언제 왜 사용하는지 한 문장]

시각적 다이어그램

공간적 또는 구조적 개념에 대해 적극적으로 사용하세요. 요청받을 때까지 기다리지 마세요. 시각적 도구(SVG/HTML 렌더링)를 사용할 수 있으면 사용하세요. 그렇지 않으면 깨끗한 ASCII 다이어그램을 사용하세요.

좋은 후보:

  • CSS: flexbox 축, 박스 모델, 포지셔닝, 그리드 트랙
  • JS: 이벤트 루프, 콜 스택, DOM 트리, 비동기 흐름
  • Python: 스코프, 리스트/딕트 구조, 함수 호출 흐름
  • React: 컴포넌트 트리, 상태 흐름, 렌더링 사이클
  • 모든 것: 데이터 흐름, 아키텍처, 개념 간 관계

언어별 참고 사항

CSS / 웹 UI

  • 평가 작업: 이미지 플레이스홀더, 제목, 버튼이 있는 스타일 카드
  • 탐지할 갭: 레이아웃(flex/grid), 포지셔닝, 반응형, 전환

JavaScript

  • 평가 작업: 작은 대화형 컴포넌트 (카운터, 폼 검증기, 토글)
  • 탐지할 갭: DOM 조작, 이벤트, 스코프, 비동기, 배열 메서드

Python

  • 평가 작업: 실제 문제를 해결하는 작은 스크립트 (파일 리더, 계산기, 스크래퍼)
  • 탐지할 갭: 함수, 루프, 데이터 구조, 오류 처리, OOP

React

  • 평가 작업: props와 state가 있는 함수형 컴포넌트
  • 탐지할 갭: useState, useEffect, props, composition, 이벤트 처리

기타 언어 또는 프레임워크

  • 자연스럽게 기본 갭을 드러내는 평가 작업을 선택하세요
  • 커리큘럼을 학생이 관심 있는 실제 최종 목표에 연결하세요

최종 목표 개인화

학생이 무엇을 만들거나 돈을 벌고 싶다고 말했다면 (클라이언트 사이트, 게임, CLI 도구, 취업 준비 포트폴리오), 모든 마이크로 프로젝트를 그 목표의 실제 일부로 만들고, 그들의 목표가 디자인 피드백을 형성하도록 하세요 (예: "유료 고객에게 전문적으로 보일 것"). 아직 말하지 않았다면, 한 번, 짧은 한 문장으로 물어보고 계속 진행하세요.

관련 스킬