SONUB
KO English 한국어 日本語 中文 हिन्दी বাংলা اردو Español Português Français Deutsch Русский العربية Bahasa Indonesia Tiếng Việt ไทย Türkçe

알림을 켜는 방법

이 브라우저 또는 주소에서는 알림을 사용할 수 없습니다. 지원되는 브라우저로 보안 연결된 SONUB 사이트에 접속해 주세요.

알림이 차단되어 있으면 브라우저 설정에서 허용해 주세요.

  1. 주소 표시줄 옆의 사이트 설정 또는 브라우저의 사이트 설정을 열고, 이 사이트의 알림을 허용으로 바꾸세요.
  2. 기기 설정에서 브라우저 알림을 허용하고 방해 금지 또는 집중 모드를 확인하세요.
  3. SONUB으로 돌아와 페이지를 새로고침한 뒤 벨을 눌러 알림을 켜세요.

iPhone 또는 iPad에서는 SONUB을 홈 화면에 추가하고 거기에서 연 뒤 알림을 허용하세요.

교재

AI 과정

도구를 잘 쓰는 법부터 작은 을 직접 만드는 것까지, 한 페이지에서 챕터별로 배워요. 모든 챕터에 수업 진행 안내가 있어서 강사는 이 페이지만으로 수업을 진행할 수 있어요.

내 학습
챕터 목록
챕터 1 · 초급 · 시작하기

시작하기 전에: 나의 AI 도구 상자

목표

이 강좌에서 쓰는 도구가 무엇이고 각각 어디에 쓰는지, 어떤 계정이 필요한지, 키와 개인 정보를 어떻게 안전하게 지키는지 알아요.

이 강좌는 AI 를 이해하는 것에서 시작해 AI 도구를 쓰고, 마지막에는 작은 을 직접 만들어 봐요. 도구는 세 종류를 만나게 돼요. ChatGPT 처럼 대화로 답하는 채팅 도우미, Codex 와 Claude 처럼 내 컴퓨터의 파일을 읽고 고치는 코딩 , 그리고 Claude Cowork 처럼 여러 단계의 일을 대신 해 주는 에이전트 도구예요. , , 은 이 모든 도구의 바탕이라서 이 강좌에서 함께 배워요. 어떤 챕터는 무료 계정이, 어떤 챕터는 유료 요금제가 필요해요. 수업 진행 안내에 적혀 있고, 언제든 SONUB 의 실습으로 대신 따라올 수 있어요.

조금 더 알아보기

어떤 도구보다 중요한 습관이 두 가지 있어요. 첫째, 결과를 확인하세요. AI 의 답, 그림, 코드 변경은 내가 읽어 보고, 시험해 보고, 출처와 비교하기 전까지는 초안일 뿐이에요. 둘째, 비밀을 지키세요. 비밀번호, , 다른 사람의 개인 정보를 채팅이나 , 남과 나누는 파일에 절대 붙여 넣지 마세요. 키는 환경 변수나 Git 에 절대 하지 않는 에 두어야 해요.

내 말로 설명해 보기

이 강좌에 나오는 AI 도구 세 종류를 내 말로 설명하고, 각각 예시를 하나씩 들어 보세요.

설명과 비교하기

채팅 도우미는 대화로 답해요(ChatGPT). 코딩 에이전트는 프로젝트에서 파일을 읽고 고치고 명령을 실행해요(Codex, Claude Code). 에이전트 도구는 여러 파일과 앱에 걸친 여러 단계의 일을 해내요(Claude Cowork). 세 가지 모두 내가 확인해야 하는 초안을 만들어요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

강좌 지도 소개하기(5분) → 도구 종류마다 예시 하나씩 보여 주기(10분) → 학생이 계정과 강좌 폴더 준비하기(15분) → 안전 규칙과 질문(10분). 수업 시간에 맞춰 각 부분을 늘리거나 줄이세요.

화면으로 보여 주기

  1. 이 강좌를 열고 챕터 목록을 함께 살펴보세요. AI 는 어떻게 작동할까, AI 도구, 개발 기초, AI 에이전트, LLM 만들기, 마무리 프로젝트 순서예요.
  2. 채팅 도우미에게 짧은 질문을 하나 한 다음, 코딩 에이전트가 파일의 한 줄을 고치는 모습을 보여 주세요. 학생들이 "말하기"와 "행동하기"의 차이를 볼 수 있어요.
  3. API 키를 어디에 두어야 하는지(환경 변수나 .env 파일), 그리고 .gitignore 한 줄이 그 키를 Git 에 들어가지 않게 막는 방법을 보여 주세요.

학생 활동

  1. 이미 쓸 수 있는 도구(ChatGPT, Codex, Claude, GitHub)와 아직 가입해야 하는 도구를 적어 보세요.
  2. 내 컴퓨터에 ai-course 라는 빈 폴더를 만드세요. 뒤의 챕터에서 계속 써요.

완료 기준

AI 도구 세 종류를 예시와 함께 하나씩 말하고, 두 가지 안전 습관을 말할 수 있으면 돼요.

학생이 막힐 때

  • 유료 요금제가 없을 때: 시연을 보며 따라가고 SONUB 의 브라우저 실습을 쓰세요. 개념 챕터는 모두 계정 없이 할 수 있어요.
  • 학교나 회사 컴퓨터에서 설치가 막혀 있을 때: 도구의 웹 버전과 SONUB 의 쉘, Python 실습을 쓰세요.

함께 생각할 질문

  • 채팅 도우미에게 묻는 것과 코딩 에이전트가 내 파일을 고치게 하는 것은 어떻게 다를까요?
  • API 키는 어디에 두어야 하고, 어디에는 절대 나오면 안 될까요?

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 2 · 초급 · AI 는 어떻게 작동할까

AI 용어: 매일 듣게 될 낱말 10개

목표

, 프롬프트, , , , , , , , 에이전트 같은 일상의 AI 용어를 각각 쉬운 한 문장으로 설명할 수 있어요.

모델은 데이터에서 패턴을 배운 이에요. 대규모 언어 모델()은 엄청난 양의 글에서 패턴을 배워서 다음에 올 글 조각을 예측해요. 내가 입력하는 글이 프롬프트이고, 모델은 그것을 토큰, 즉 단어의 작은 조각으로 읽어요. 컨텍스트 창은 모델이 한 번에 볼 수 있는 토큰의 양으로, 지금까지 나눈 대화도 여기에 들어가요. 파라미터는 모델 안에 있는 숫자들로, 학습이 이 숫자들을 조정해요. 학습은 오래 걸리고 비용이 많이 드는 배우는 단계이고, 추론은 다 만든 모델을 써서 나에게 답하는 거예요.

조금 더 알아보기

환각은 자신 있게 말하지만 틀렸거나 지어낸 답이에요. 그래서 늘 확인해야 해요. API 는 내 프로그램이 프롬프트를 보내고 답을 돌려받게 해 주는 문이고, 보통 비밀 API 키가 필요해요. 은 답만 하지만, 에이전트는 행동도 할 수 있어요. 목표를 향해 한 단계씩 파일을 읽고, 명령을 실행하고, 도구를 써요. 오픈 소스나 오픈 웨이트 모델은 내려받아서 내 컴퓨터에서 실행할 수 있고, 닫힌 모델은 그 회사의 앱이나 API 로만 쓸 수 있어요.

내 말로 설명해 보기

친구에게 컨텍스트 창이 무엇이고 왜 중요한지 설명해 보세요.

설명과 비교하기

컨텍스트 창은 모델이 한 번에 볼 수 있는 글의 양(토큰 수)이에요. 내 프롬프트, 파일, 지금까지의 대화가 여기에 들어가요. 이 범위 밖으로 밀려난 것은 모델이 더는 볼 수 없어서, 긴 대화에서는 앞부분의 내용을 놓칠 수 있어요. 중요한 사실을 프롬프트에 다시 넣으면 해결돼요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

학생들이 들어 본 AI 용어 묻기(5분) → 짝지어 설명하기: 프롬프트/토큰, 학습/추론, 챗봇/에이전트(15분) → 낱말 짝 맞추기 게임(10분) → 스스로 확인하기(10분).

화면으로 보여 주기

  1. 토크나이저 페이지나 SONUB 의 토큰 챕터에 문장 하나를 입력하고 토큰 수를 함께 세어 보세요.
  2. 챗봇에게 알 수 없는 것(지어낸 사람)을 물어서 환각을 보여 준 다음, 그것을 확인하는 방법을 보여 주세요.
  3. "이 파일 이름을 어떻게 바꾸지?"에 답만 하는 챗봇과, 실제로 이름을 바꿔 버리는 에이전트를 비교해 보세요.

학생 활동

  1. 나만의 낱말 카드를 만드세요. 낱말 열 개마다 한 문장짜리 뜻과 예를 하나씩 적어요.
  2. 아주 지역적이거나 아주 새로운 것을 챗봇에게 물어서 환각을 하나 찾고, 어떻게 확인했는지 적어 보세요.

완료 기준

낱말 열 개를 내 말로 설명하고, 학습과 추론의 차이, 챗봇과 에이전트의 차이를 말할 수 있으면 돼요.

학생이 막힐 때

  • 학습과 추론을 헷갈릴 때: 학습은 시험공부, 추론은 시험 문제 풀기라고 비유해 주세요.
  • 토큰이 헷갈릴 때: 길거나 드문 단어는 토큰 여러 개가 되고, 흔한 단어는 토큰 하나라는 것을 보여 주세요.

함께 생각할 질문

  • 아주 긴 대화에서 모델은 왜 처음에 한 말을 "잊어버릴" 수 있을까요?
  • 챗봇에게 묻는 것과 에이전트에게 일을 맡기는 것은 어떻게 다를까요?
출처와 더 읽을거리
챕터 목록
챕터 3 · 초급 · AI 는 어떻게 작동할까

AI·머신러닝·언어모델

목표

AI라는 분야와 특정 모델의 종류를 구분해요.

인공지능은 예측·인식·계획·생성 같은 일을 하는 시스템을 만드는 분야예요. 사람이 적은 규칙을 쓰는 시스템도 있어요. 은 데이터에서 패턴을 맞추고, 은 여러 층의 을 이용해요.

조금 더 알아보기

대규모 언어모델(LLM)은 AI의 한 종류예요. 글을 만드는 많은 LLM은 주어진 에서 다음 토큰을 예측해요. 이미지 생성기··규칙 기반 시스템은 다른 방식으로 작동할 수 있어요. 유창한 말이 생명체라는 증거나 내용이 참이라는 증거는 아니에요.

내 말로 설명해 보기

모든 AI가 다음 단어를 만들까요? 반대 예를 들어보세요.

설명과 비교하기

아니요. 꽃 분류기는 종류를 예측하고, 규칙 기반 프로그램은 정해진 조건을 따라요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

학생들이 생각하는 AI 가 무엇인지 묻기(5분) → 예시를 규칙, 머신러닝, 언어 모델로 나누기(10분) → 챕터를 읽고 이야기 나누기(15분) → 스스로 확인하기(10분).

화면으로 보여 주기

  1. 세 가지 예를 나란히 보여 주세요. 규칙으로 만든 스팸 필터, 얼굴을 알아보도록 학습한 사진 앱, 글을 만들어 내는 채팅 도우미예요.
  2. 원 세 개를 겹쳐 그려 보세요. 인공지능 안에 머신러닝, 그 안에 딥러닝이 있고, 언어 모델은 가장 안쪽 원에 들어가요.

학생 활동

  1. 내가 쓰는 앱 다섯 개를 적고, 각각 규칙인지 머신러닝인지 언어 모델인지 이유와 함께 표시해 보세요.

완료 기준

글을 만들어 내지 않는 AI 시스템을 올바른 반례로 들 수 있으면 돼요.

학생이 막힐 때

  • 모든 AI 가 ChatGPT 라고 생각할 때: 계산기 같은 규칙 시스템과 추천 시스템을 다른 종류의 AI 로 보여 주세요.

함께 생각할 질문

  • "20 °C 아래로 내려가면 난방을 켠다"는 규칙을 따르는 온도 조절기는 인공지능일까요? 왜 그렇게 생각하나요?
출처와 더 읽을거리
챕터 목록
챕터 4 · 초급 · AI 는 어떻게 작동할까

프롬프트를 쓰고 검증하기

목표

할 일·필요한 문맥·조건·검증 방법을 정해요.

프롬프트는 모델의 출력을 이끄는 입력이에요. ‘분수를 설명해줘’와 ‘초보자에게 피자로 2분의 1을 설명한 다음, 정답을 말하지 말고 문제 하나를 내줘’를 비교해 보세요. 두 번째는 대상·예시·학습 활동을 정했어요.

조금 더 알아보기

역할을 주면 말투를 유도할 수 있지만 전문성이나 지시 준수가 보장되지는 않아요. 필요하면 출처를 요청하고 실제로 주장을 뒷받침하는지 확인하세요. 같은 예제로 두 프롬프트를 비교해 보세요. 필요한 정보만 제공하고, 질문을 잘 써도 모델의 모든 한계가 없어지지는 않는다는 점을 기억해요.

내 말로 설명해 보기

‘너는 전문가야’라고 쓰면 답을 믿어도 될까요?

설명과 비교하기

아니요. 표현 방식은 유도하지만, 근거 확인과 테스트는 여전히 필요해요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

막연한 요청과 정확한 요청 비교하기(10분) → 프롬프트 하나를 함께 고치기(10분) → 학생이 프롬프트를 쓰고 시험해 보기(20분) → 답을 확인하는 방법 이야기하기(10분).

화면으로 보여 주기

  1. "분수를 설명해 줘"라고 물은 다음 챕터에 나온 정확한 요청으로 다시 물어보고, 두 답의 대상, 예시, 활동을 비교해 보세요.
  2. 프롬프트에 "너는 전문가야"를 더해도 답에 여전히 틀린 내용이 있을 수 있다는 것을 보여 주세요.

학생 활동

  1. 지금 배우고 있는 주제로 프롬프트를 써 보세요. 대상, 예시 하나, 답을 확인하는 방법을 넣어야 해요.

완료 기준

학생의 프롬프트에 할 일, 문맥, 조건, 확인 방법이 모두 들어 있으면 돼요.

학생이 막힐 때

  • 답이 여전히 막연할 때: 원하는 결과의 예시와 길이 제한을 더해 보세요.

함께 생각할 질문

  • 프롬프트의 어느 부분이 답을 가장 크게 바꿨나요?
출처와 더 읽을거리
챕터 목록
챕터 5 · 초급 · AI 는 어떻게 작동할까

프롬프트 엔지니어링: 잘 통하는 프롬프트의 여섯 부분

목표

역할, 목표, 맥락, 예시, 조건, 출력 형식이 들어간 프롬프트를 쓰고, 처음부터 다시 쓰는 대신 한 단계씩 고쳐 나갈 수 있어요.

은 모델이 내가 필요한 결과를 내도록 지시를 쓰는 거예요. 좋은 프롬프트에는 보통 여섯 부분이 있어요. 역할(모델이 누구처럼 행동할지), 목표(내가 원하는 것), 맥락(모델에게 필요한 사실, 파일, 읽을 사람), 예시(좋은 답의 샘플 한두 개), 조건(길이, 수준, 피해야 할 것), 출력 형식(목록, 표, , 파일)이에요. 이것들을 많이 줄수록 모델이 짐작해야 할 것이 줄어들어요.

조금 더 알아보기

프롬프트를 초안처럼 다루세요. 답을 읽고, 빠졌거나 틀린 것을 찾아서, 바로 그것을 프롬프트에 더하세요. "더 쉬운 말로 써 줘", "선택지 세 개를 줘", "출처를 밝혀 줘"처럼요. 어려운 일은 모델에게 먼저 계획을 세우고 그다음에 답하라고 하거나, 일을 더 작은 프롬프트들로 나누세요. 코딩 에이전트라면 프롬프트에서 오래 쓰는 부분, 즉 규칙, 명령, 스타일은 CLAUDE.md 나 AGENTS.md 같은 프로젝트 파일에 넣어서 매번 되풀이하지 않게 하세요.

내 말로 설명해 보기

"홈페이지 만들어 줘"를 여섯 부분이 들어간 프롬프트로 다시 써 보세요.

설명과 비교하기

예를 들면 이래요. "너는 웹 디자이너야(역할). 우리 빵집의 한 페이지짜리 홈페이지를 만들어 줘(목표). 서울에서 빵과 케이크를 팔고, 손님은 가족들이야(맥락). 이 샘플처럼 꾸며 줘: …(예시). 과 만 쓰고, 모바일을 먼저 생각하고, 구역은 네 개 이하로 해 줘(조건). index.html 파일 하나로 줘(형식)." 여섯 부분이 모두 있는 프롬프트라면 다 맞아요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

약한 프롬프트와 그 답 보여 주기(5분) → 여섯 부분으로 다시 만들기(15분) → 학생이 프롬프트를 세 번에 걸쳐 고치기(15분) → 결과 비교하기(5분).

화면으로 보여 주기

  1. "기후에 대해 써 줘"라고 물은 다음, 같은 요청에 역할, 읽을 사람, 길이, 형식을 더해 다시 물어보고 두 답을 비교해 보세요.
  2. 프롬프트에 예시 답 하나를 더하고, 결과의 문체가 그 예시를 따라가는 것을 보여 주세요.
  3. 같은 프롬프트로 결과를 표로, 그다음에는 JSON 으로 달라고 해 보세요.

학생 활동

  1. 내가 실제로 할 일(공부 계획, 요약, 이메일)에 대해 여섯 부분이 모두 들어간 프롬프트를 써 보세요.
  2. 두 번 고쳐 보세요. 매번 답에서 틀린 점을 바탕으로 고칠 점 하나를 더하고, 세 가지 버전을 모두 남겨 두세요.

완료 기준

마지막 프롬프트에 여섯 부분이 있고, 각 문제를 해결한 변경을 짚어 낼 수 있으면 돼요.

학생이 막힐 때

  • 답이 너무 길거나 너무 일반적일 때: 읽을 사람, 길이 제한, 형식을 더하세요.
  • 모델이 규칙을 무시할 때: 규칙을 끝으로 옮기고, 한 번만 분명하게 말하고, 답하기 전에 그 규칙을 확인하라고 하세요.

함께 생각할 질문

  • 답의 문체가 틀렸을 때는 여섯 부분 중 어느 것이 가장 도움이 될까요?
  • 오래 쓰는 규칙은 왜 매번 프롬프트에 넣지 않고 CLAUDE.md 나 AGENTS.md 에 넣을까요?
출처와 더 읽을거리
챕터 목록
챕터 6 · 초급 · AI 는 어떻게 작동할까

텍스트·토큰·ID

목표

텍스트 조각과 그 조각의 숫자 식별자를 구분해요.

는 텍스트를 토큰이라는 조각으로 나누고, 어휘 사전의 ID에 대응시켜요. 토큰은 단어·단어 일부·글자·일 수 있으며 공백과 문장부호도 중요해요. 같은 글도 토크나이저에 따라 토큰 수가 달라져요.

조금 더 알아보기

실습실은 실제 LLM 토크나이저가 아닌 간단한 단어 분할기를 써요. ID는 이름표이므로 ID 8이 ID 4보다 뜻이 두 배인 것은 아니에요. 문맥 창에는 사용할 수 있는 토큰 수의 한계가 있어 앱이 자료를 선택·요약·제외할 수 있어요.

내 말로 설명해 보기

두 토큰의 ID가 연속된 숫자이면 뜻도 비슷할까요?

설명과 비교하기

아니요. ID는 어휘를 식별할 뿐, 숫자의 거리가 의미의 거리는 아니에요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

토큰이 무엇인지 알기(10분) → 같은 문장의 토큰을 여러 방법으로 세기(10분) → 학생이 자기 문장을 토큰으로 나누기(20분) → 스스로 확인하기(10분).

화면으로 보여 주기

  1. "unbelievable!"을 글자 단위, 단어 단위, 그리고 un + believ + able + ! 같은 단어 조각으로 나누고 각각 몇 개인지 세어 보세요.
  2. ID 는 이름표일 뿐이라는 것을 보여 주세요. ID 가 바로 옆 번호인 두 토큰도 뜻은 완전히 다를 수 있어요.

학생 활동

  1. 문장 하나를 써서 글자 단위와 단어 단위로 나누고, 조각마다 지어낸 ID 를 옆에 적어 보세요.

완료 기준

같은 글이라도 토큰 수가 달라질 수 있는 이유를 설명할 수 있으면 돼요.

학생이 막힐 때

  • 토큰과 단어를 헷갈릴 때: 긴 단어 하나가 토큰 여러 개로 나뉘고, 띄어쓰기나 문장 부호도 따로 토큰이 되는 것을 보여 주세요.

함께 생각할 질문

  • AI 서비스는 왜 사용량을 단어가 아니라 토큰으로 셀 때가 많을까요?
출처와 더 읽을거리
챕터 목록
챕터 7 · 초급 · AI 는 어떻게 작동할까

벡터와 임베딩

목표

ID··학습된 을 구분해요.

ID는 이름표이고 는 숫자의 목록이에요. 원-핫 벡터는 어휘의 한 자리만 1, 나머지는 0으로 표시하므로 의미의 유사성을 담지 않아요. 임베딩은 학습된 벡터예요. 데이터와 학습 목표에 따라 관련된 쓰임이 가까운 위치에 놓일 수 있어요.

조금 더 알아보기

현대 는 으로 주어진 문맥의 위치별 정보를 섞어서, 같은 토큰도 문장에 따라 표현이 달라져요. 유사도는 진실이나 같은 뜻을 보장하지 않아요. 유명한 왕 − 남자 + 여자 비유는 일부 단어 임베딩에서 관찰된 예이지 보편적인 등식이 아니에요. 검색에서는 질문과 문서 벡터를 호환되는 임베딩 공간에서 비교해요.

내 말로 설명해 보기

가까운 임베딩이면 두 문장이 같은 참말이라는 증거일까요?

설명과 비교하기

아니요. 같은 주제로 정반대 주장을 할 수도 있어요. 실제 내용을 읽고 검증해야 해요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

ID 에서 벡터로(10분) → 원-핫 벡터와 학습된 임베딩 비교하기(10분) → 학생이 단어를 2차원 지도에 놓기(20분) → 스스로 확인하기(10분).

화면으로 보여 주기

  1. 단어 다섯 개짜리 어휘에서 "cat(고양이)"의 원-핫 벡터를 써 보고, 이 벡터로는 비슷한 정도를 전혀 알 수 없다는 것을 보여 주세요.
  2. 고양이와 개는 가깝고 자동차는 먼 2차원 지도를 그리고, 학습이 단어를 그 자리에 놓는다고 설명해 주세요.

학생 활동

  1. 원하는 단어 여덟 개를 뜻에 따라 2차원 지도에 놓고, 그중 두 단어의 자리를 설명해 보세요.

완료 기준

ID, 원-핫 벡터, 임베딩을 구별할 수 있으면 돼요.

학생이 막힐 때

  • 임베딩이 가까우면 "사실"이라고 생각할 때: 같은 주제에 대한 정반대의 두 문장이 가까이 놓이는 예를 보여 주세요.

함께 생각할 질문

  • 두 문장의 임베딩이 가깝다면 무엇을 알 수 있고, 무엇은 알 수 없을까요?
출처와 더 읽을거리
챕터 목록
챕터 8 · 초급 · AI 는 어떻게 작동할까

학습·추론·검색

목표

학습에서 바뀌는 것과 추론에서 사용하는 것을 설명해요.

모형은 바로 앞 단어 다음에 무엇이 나왔는지 세어요. sky 다음에 red가 세 번, blue가 한 번이면 은 3/4와 1/4예요. 현대 신경망 언어모델은 예측 을 줄이도록 많은 를 최적화해요. 추론에서는 그 가중치와 주어진 문맥으로 다음 토큰의 점수를 계산해요. 이 실습은 조건부 예측을 보여주며 Transformer 전체 은 아니에요.

조금 더 알아보기

은 모델 가중치를 바꿔요. LoRA는 기본 가중치를 고정하고 작은 어댑터 을 학습할 수 있어요. 는 가중치 변경 없이도 자료를 찾아 문맥으로 제공해요. BM25는 단어 일치·빈도 포화·문서 길이 보정을, 임베딩 검색은 학습된 벡터 비교를 사용해요. 어느 방법도 증거 누락이나 잘못된 자료 검색을 완전히 막지 못해요. 채팅 한 번이 자동으로 모델 학습이 되는 것은 아니에요.

내 말로 설명해 보기

새 설명서를 찾아 프롬프트에 넣으면 반드시 파인튜닝일까요?

설명과 비교하기

아니요. 검색은 문맥을 더해요. 파인튜닝은 가중치를 갱신하는 학습 과정이 필요해요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

학습과 추론 비교하기(10분) → 두 글자 세기(바이그램) 예제(10분) → 검색과 파인튜닝 비교하기(10분) → 학생이 상황 나누기(10분) → 스스로 확인하기(10분).

화면으로 보여 주기

  1. 챕터에 나온 sky → red/blue 세기 예제를 칠판에서 함께 풀고 확률을 계산해 보세요.
  2. 설명서를 프롬프트에 붙여 넣는 앱(검색)을 보여 주고, 이때 모델의 가중치는 바뀌지 않았다고 설명해 주세요.

학생 활동

  1. 상황 다섯 개를 학습, 추론, 검색으로 나눠 보세요. 예를 들어 "챗봇이 답하기 전에 오늘의 메뉴를 읽는다" 같은 상황이에요.

완료 기준

학습할 때 무엇이 바뀌고, 추론할 때 모델이 무엇을 쓰는지 설명할 수 있으면 돼요.

학생이 막힐 때

  • 챗봇이 대화할 때마다 배운다고 생각할 때: 다시 학습하지 않는 한 가중치는 그대로라고 설명해 주세요.

함께 생각할 질문

  • 모델은 왜 한 번도 학습한 적 없는 문서에 대해서도 답할 수 있을까요?
출처와 더 읽을거리
챕터 목록
챕터 9 · 초급 · AI 는 어떻게 작동할까

지시·샘플링·검증

목표

출력의 일관성과 사실 정확성을 구분하며 생성 설정을 비교해요.

시스템 지시는 응답을 유도하지만 지시 준수나 도구 접근 보안을 보장하지 않아요. 권한은 앱이 강제해야 해요. 는 전에 토큰 점수를 조절해요. 작은 양수는 확률을 집중시키고 큰 값은 평평하게 만들어요. 는 후보 수, top-p는 누적 확률을 기준으로 제한해요. 둘 다 사실 확인 장치는 아니에요. 은 추첨하지 않고 최고 점수 토큰을 골라요.

조금 더 알아보기

직접 만들기에서 탐욕 선택과 을 여러 번 비교해 보세요. 샘플링도 같은 결과가 나올 수 있어요. 실제 시스템은 모델 버전·문맥·도구·수치 연산도 영향을 주므로 온도 0이 완전히 같은 출력을 보장하지 않아요. 이어서 모호한 질문과 목표·배경·검증 방법을 담은 질문을 비교하세요. 사실 주장은 원출처로 확인하고, 힌트를 활용해 결과를 자기 말로 설명해 보세요.

내 말로 설명해 보기

온도가 낮은 모델도 틀린 답을 확신하는 말투로 반복할 수 있을까요?

설명과 비교하기

네. 확률이 집중됐다고 참인 것은 아니에요. 내용을 별도로 검증해야 해요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

지시와 권한 비교하기(10분) → 숫자로 보는 temperature, top-k, top-p(15분) → 학생이 결과 예측하기(15분) → 스스로 확인하기(10분).

화면으로 보여 주기

  1. 토큰 세 개의 점수에 낮은 temperature 와 높은 temperature 를 적용해서 확률이 뾰족해지거나 평평해지는 모습을 보여 주세요.
  2. 높은 temperature 에서 같은 질문을 두 번 해서 답이 달라지는 것을 보여 주고, 어느 쪽도 사실인지 확인된 답은 아니라고 설명해 주세요.

학생 활동

  1. 확률이 0.6, 0.3, 0.1 일 때 top-k = 2 와 top-p = 0.8 이 각각 어떤 토큰을 남기는지 말해 보세요.

완료 기준

temperature 가 낮으면 답이 한결같아지지만 꼭 맞는 답이 되는 것은 아니라고 설명할 수 있으면 돼요.

학생이 막힐 때

  • 시스템 프롬프트가 보안 벽이라고 생각할 때: 권한은 프롬프트가 아니라 애플리케이션이 지켜야 한다고 설명해 주세요.

함께 생각할 질문

  • temperature 를 높이고 싶을 때는 언제이고, 낮추고 싶을 때는 언제일까요?
출처와 더 읽을거리
챕터 목록
챕터 10 · 초급 · AI 도구 쓰기

ChatGPT: 잘 묻고 답을 확인하기

목표

목표, 문맥, 조건, 결과 형식을 갖춘 요청을 쓰고, 한 단계씩 고쳐 나가며, 답을 쓰기 전에 확인할 수 있어요.

ChatGPT 는 대형 언어 모델로 만든 채팅 도우미예요. 글을 쓰고, 요약하고, 번역하고, 설명하고, 계획을 세워 줘요. 첨부한 파일과 그림을 읽을 수 있고, 기능이 켜져 있으면 웹에서 검색도 해요. 좋은 요청에는 네 부분이 있어요. 목표(무엇을 원하는지), 문맥(누구를 위한 것이고 이미 무엇이 있는지), 조건(길이, 말투, 피할 것), 형식(목록, 표, 이메일)이에요. 첫 답이 빗나가면 처음부터 다시 하지 말고 무엇을 바꿀지 정확히 말하세요. 대화 하나에는 주제 하나만 두어야 앞의 메시지가 헷갈리게 하지 않고 도움이 돼요.

조금 더 알아보기

언어 모델은 그럴듯한 글을 예측하기 때문에, 술술 읽히는 답도 틀릴 수 있어요. 출처를 물어보고 직접 열어 보세요. 숫자는 원래 자료와 비교하고, 모델에게 어떤 가정을 했는지 적어 달라고 하세요. 중요한 사실은 따로 떨어진 두 번째 출처로 확인하세요. 저장된 지침과 프로젝트 기능으로 ChatGPT 가 내 취향을 기억하게 할 수 있지만, 그것도 지시일 뿐 보장이 아니니 계속 확인하세요.

내 말로 설명해 보기

"발표 좀 도와줘"라는 요청을 목표, 문맥, 조건, 형식이 들어가게 다시 써 보세요.

설명과 비교하기

예를 들면 "목표: 슬라이드 다섯 장짜리 개요. 문맥: 13살 학생들 앞에서 하는 재활용에 대한 3분 발표. 조건: 쉬운 말, 슬라이드마다 출처가 있는 통계 하나. 형식: 슬라이드마다 제목 하나와 글머리 기호 두 개." 네 부분을 모두 분명히 밝힌 답이면 맞아요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

약한 요청과 강한 요청 비교하기(10분) → 세 번에 걸쳐 실시간으로 고치기(10분) → 학생이 자기 요청을 쓰고 다듬기(20분) → 답을 비교하고 확인하기(10분).

화면으로 보여 주기

  1. "한국에 대해 알려 줘."라고 물어보세요. 그다음 "목표: 10살 아이에게 한국을 다섯 줄로 소개하기. 문맥: 브라질에 사는 아이. 조건: 역사 연도는 넣지 않기. 형식: 글머리 기호 목록."이라고 물어보고 두 답을 비교하세요.
  2. 처음부터 다시 묻지 말고 "3번째 줄을 더 짧게 하고 음식 예시를 하나 넣어 줘"처럼 정확히 무엇을 바꿀지 이어서 말해 보세요.
  3. 답에 숫자가 들어가는 질문을 하고, 출처를 물어 직접 열어 본 뒤 숫자가 맞는지 확인해 보세요.

학생 활동

  1. 실제로 할 일(이메일, 공부 계획, 요약) 하나를 골라 목표, 문맥, 조건, 형식을 갖춘 요청을 써 보세요.
  2. 적어도 두 번 이어서 요청해 답을 고치고, 내가 확인한 주장 하나와 확인한 방법을 적어 보세요.

완료 기준

마지막 요청에 네 부분이 모두 들어 있고, 출처와 비교해 확인한 사실 하나를 보여 줄 수 있으면 돼요.

학생이 막힐 때

  • 답이 너무 길거나 너무 일반적일 때: 길이 제한과 대상을 더하고, 원하는 결과의 예시를 하나 주세요.
  • 답이 출처나 숫자를 지어낼 때: 그렇다고 말하고 링크를 달라고 하세요. 확인할 수 없는 내용은 확인되지 않은 것으로 다루세요.

함께 생각할 질문

  • 내 예시에서 네 부분 중 어느 것이 답을 가장 크게 바꿨나요?
  • 자신 있고 술술 읽히는 답도 왜 틀릴 수 있을까요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 11 · 초급 · AI 도구 쓰기

이미지 생성: 설명하고, 다듬고, 확인하기

목표

그림을 정확하게 설명하고, 한 번에 한 가지만 바꾸고, 쓰기 전에 실수, 권리, 정직함을 확인할 수 있어요.

이미지 모델은 글로 쓴 설명을 그림으로 바꿔 주고, 많은 모델이 내가 준 그림을 고치기도 해요. ChatGPT 와 Codex 는 그림을 만들고 고칠 수 있고, Google 은 Nano Banana 이미지 모델을 제공해요(Gemini API 의 예전 Imagen 모델은 서비스가 끝났어요). 좋은 이미지 프롬프트에는 주제, 배경, 화풍, 구도(가까이 찍었는지 넓게 찍었는지, 무엇이 어디에 있는지), 색, 크기나 가로세로 비율이 들어가요. 고칠 때는 바꿀 것과 그대로 둘 것을 함께 말하세요. 예를 들어 "소녀와 배경은 그대로 두고 우산만 노란색으로 바꿔 줘"처럼요.

조금 더 알아보기

만든 그림에는 작은 실수가 숨어 있을 때가 많아요. 틀린 글자, 남는 손가락, 말이 안 되는 그림자 같은 것들이에요. 꼭 확대해서 확인하세요. 만든 그림으로 실제로 일어난 일인 척하지 말고, 살아 있는 작가나 실제 사람을 허락 없이 흉내 내지 말고, 필요할 때는 AI 로 만든 그림이라고 밝히세요. 그림을 상업적으로 쓰기 전에는 도구의 이용 약관을 읽어 보세요.

내 말로 설명해 보기

인물 사진에서 배경만 해변으로 바꾸고 사람은 똑같이 두는 수정 요청을 써 보세요.

설명과 비교하기

예를 들면 "사람의 얼굴, 옷, 자세, 조명은 지금 그대로 두세요. 배경만 사람 뒤로 바다가 보이는 햇살 좋은 해변으로 바꿔 주세요." 바뀔 것과 그대로 둘 것을 모두 말해야 해요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

약한 프롬프트와 강한 프롬프트 비교하기(10분) → 나머지는 그대로 두고 한 가지만 고치기(10분) → 학생이 자기 그림을 만들고 고치기(20분) → 실수와 권리 살펴보기(10분).

화면으로 보여 주기

  1. "고양이"로 그림을 만든 다음, "햇살 드는 창가의 파란 의자에서 잠든 주황색 고양이 수채화, 넓은 구도, 4:3"으로 만들어 비교해 보세요.
  2. 두 번째 그림을 "나머지는 모두 그대로 두고 의자만 초록색으로 바꿔 줘"라고 고쳐 보세요. 실수로 바뀐 부분이 있으면 짚어 주세요.
  3. 결과를 확대해서 글자, 손, 그림자, 원근에서 실수 하나를 찾아보세요.

학생 활동

  1. 주제, 배경, 화풍, 구도, 색, 크기가 들어간 이미지 프롬프트를 쓰고 그림을 만들어 보세요.
  2. 딱 한 가지만 바꾸는 수정을 하고, 다른 부분도 바뀌었는지 적어 보세요.

완료 기준

프롬프트, 수정 요청, 그리고 결과에서 찾은 실수 하나를 보여 줄 수 있으면 돼요.

학생이 막힐 때

  • 그림이 프롬프트의 일부를 무시할 때: 가장 중요한 내용을 맨 앞에 쓰고 서로 부딪히는 말은 지우세요.
  • 그림 속 글자 철자가 틀릴 때: 글자 수를 줄여 달라고 하거나, 나중에 일반 편집 프로그램으로 글자를 넣으세요.

함께 생각할 질문

  • 수정 요청에는 왜 그대로 둘 것도 말해야 할까요?
  • 만든 그림을 쓰면 안 되는 때는 언제일까요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 12 · 초급 · AI 도구 쓰기

쉘과 기본 명령: AI 도구가 실행되는 곳

목표

기본 명령(pwd, ls, cd, mkdir, cat, cp, mv, rm, clear, exit)을 쓰고, 프로젝트 폴더에서 AI 도구를 시작하고 끝내며, 어떤 명령이 위험한지 알 수 있어요.

Codex, Claude Code, Antigravity 와 대부분의 개발 도구는 터미널에서 실행돼요. 터미널은 쉘이라는 프로그램에 명령을 입력하는 창이에요. 기본 낱말은 이래요. pwd(지금 어디에 있지), ls(여기에 뭐가 있지), cd(저기로 가기, cd .. 는 한 단계 위로 돌아가기), mkdir(폴더 만들기), cat(파일 보기), cp(복사하기), mv(옮기거나 이름 바꾸기), rm(지우기), clear(화면 깨끗하게 하기), exit(세션 닫기). AI 도구도 같은 방법으로 프로젝트 폴더 안에서 시작해요. claude, codex, agy 라고 입력하면 돼요. SONUB 에는 브라우저 연습 터미널이 있는 쉘 강좌가 따로 있어요. 이 챕터는 그 강좌의 첫 단원들로 안내해요.

조금 더 알아보기

AI 도구 안에서 슬래시로 시작하는 명령은 도구 자체를 다뤄요. /init 은 프로젝트 지시 파일을 쓰고, /help 는 명령 목록을 보여 주고, /clear 는 새 대화를 시작하고, /exit 는 도구에서 나가요. 쉘 강좌 11단원에서는 AI 코딩 도구를 설치하고 --version 으로 확인하는 방법을 보여 줘요. 설치 명령은 바뀌니 공식 페이지와 비교하세요. 아직 실행 중인 명령을 멈추려면 Ctrl+C 를 누르세요. AI 에이전트가 명령을 제안하면 허락하기 전에 읽어 보세요. rm -rf 는 휴지통도 거치지 않고 파일을 영영 지워 버려요.

쉘 명령어 강좌에서 연습하기

이 챕터의 진도는 그 강좌에 기록돼요.

터미널에 입력할 명령
pwd                 # where am I?
ls                  # what is here?
mkdir ai-course     # make a folder
cd ai-course        # go into it (cd .. goes back up)
cat notes.txt       # show a file
cp notes.txt copy.txt
mv copy.txt old.txt # move or rename
rm old.txt          # delete for good (no recycle bin)
clear               # clean the screen

claude              # start an AI agent in this folder (or: codex, agy)
/init               # inside the agent: write the project instruction file
/help               # list the agent's commands
/exit               # leave the agent

이 명령은 이 페이지가 아니라 내 컴퓨터나 서버의 터미널에서 실행해요. 실행하기 전에 한 줄씩 읽어 보세요.

내 말로 설명해 보기

ai-course 라는 폴더에 들어가서, 안에 무엇이 있는지 보고, 지금 위치를 확인하려면 어떤 명령 세 개를 쓰나요?

설명과 비교하기

들어갈 때는 cd ai-course, 안에 있는 것을 볼 때는 ls, 지금 위치를 출력할 때는 pwd 를 써요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

AI 도구에 터미널이 왜 중요한지(5분) → pwd, ls, cd, mkdir 를 실시간으로 둘러보기(10분) → 학생이 SONUB 쉘에서 1, 2단원 하기(25분) → 11단원의 설치 확인(10분).

화면으로 보여 주기

  1. SONUB 쉘 강좌를 열고 연습 터미널에서 pwd, ls, mkdir ai-course, cd ai-course 를 실행해 보세요.
  2. 일부러 틀린 명령을 입력하고, 오류 메시지를 함께 소리 내어 읽어 보세요.
  3. 11단원을 보여 주세요. Claude Code 와 Codex 의 설치 명령, 그리고 --version 으로 설치를 확인하는 방법이에요.

학생 활동

  1. 쉘 1단원(터미널 만나기)과 2단원(파일과 폴더)을 끝내세요.
  2. 내 컴퓨터에서 터미널을 열고 명령줄로 ai-course 폴더를 만드세요.

완료 기준

1, 2단원을 끝내고 도움 없이 ai-course 폴더로 들어갈 수 있으면 돼요.

학생이 막힐 때

  • Windows 는 화면이 달라요: 쉘 강좌의 설명대로 PowerShell 이나 WSL 을 쓰거나, SONUB 터미널에서 계속 연습하세요.
  • 설치 직후 "command not found"가 나올 때: 터미널을 닫았다가 다시 열고, 11단원의 PATH 부분을 확인하세요.

함께 생각할 질문

  • pwd, ls, cd 는 각각 무엇을 알려 주거나 바꾸나요?
  • AI 에이전트가 명령을 실행하게 하기 전에 왜 그 명령을 읽어야 할까요?
출처와 더 읽을거리
챕터 목록
챕터 13 · 중급 · 개발 기초

Git 과 GitHub: 버전을 저장하고 함께 일하기

목표

Git 으로 모든 변경을 저장해서 AI 가 고친 내용을 검토하고 되돌릴 수 있고, 로 프로젝트를 공유하고 풀 리퀘스트를 열어 검토할 수 있어요.

Git 은 커밋이라는 프로젝트 스냅숏을 기록해서, 무엇이 바뀌었는지 보고 예전으로 돌아갈 수 있게 해 줘요. 그래서 AI 코딩 에이전트의 안전망이 돼요. 에이전트에게 일을 맡기기 전에 커밋하고, 끝나면 git 로 바뀐 내용을 검토해서 남기거나 되돌리세요. GitHub 는 Git 프로젝트를 온라인에 보관하는 웹사이트예요. 그곳에서 를 만들고, 커밋을 푸시하고, 풀 리퀘스트를 열어요. 풀 리퀘스트는 변경 묶음을 합치자고 제안하는 것으로, 다른 사람이 읽고, 의견을 달고, 승인할 수 있어요. SONUB 의 Git 강좌는 명령을 한 단계씩 가르쳐 주고, 이 챕터는 GitHub 쪽을 더해요.

조금 더 알아보기

GitHub 에서는 이슈로 할 일을 설명하고, 에서 메인 코드를 건드리지 않고 작업하고, 풀 리퀘스트로 검토해요. 개인적인 작업이 담긴 저장소는 비공개로 두고, .env 파일이나 키는 절대 커밋하지 마세요. 한 번 푸시했다면 이미 새어 나갔다고 보고 키를 바꾸세요. Codex 와 Claude Code 도 풀 리퀘스트를 열 수 있지만, 합치기 전에 사람이 diff 를 읽어야 해요.

내 말로 설명해 보기

AI 에이전트가 파일 다섯 개를 고쳤는데 무언가 고장 났어요. 바뀐 내용을 보고 되돌리는 데 어떤 Git 명령이 도움이 될까요?

설명과 비교하기

git status 와 git diff 로 무엇이 바뀌었는지 봐요. 아직 커밋하지 않은 변경은 git restore <file> 로 되돌리고, 이미 커밋했다면 git revert 로 그 커밋을 되돌려요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

AI 와 함께할 때 버전 관리가 왜 중요한지(5분) → 화면에서 커밋, diff, 되돌리기(10분) → GitHub: 저장소 만들기, 푸시, 풀 리퀘스트 열고 검토하기(15분) → 학생 연습(20분).

화면으로 보여 주기

  1. 프로젝트 폴더에서 git init, git add, git commit -m "start" 를 실행하고, 한 줄을 바꾼 뒤 git diff 로 정확히 무엇이 바뀌었는지 보여 주세요.
  2. GitHub 에 저장소를 만들고, 프로젝트를 푸시한 다음 브랜치에서 풀 리퀘스트를 열어 보세요.
  3. 바뀐 줄 하나에 검토 의견을 남기고, 승인하거나 수정을 요청해 보세요.

학생 활동

  1. Git 강좌의 1–5단계를 듣고(또는 이미 안다는 것을 보여 주고), ai-course 폴더에서 커밋을 세 번 하세요.
  2. 폴더를 새 GitHub 저장소에 푸시하고, 파일 하나만 바꾸는 풀 리퀘스트를 하나 여세요.

완료 기준

학생의 GitHub 저장소에 커밋이 세 개 이상 있고, 설명이 달린 풀 리퀘스트가 하나 있으면 돼요.

학생이 막힐 때

  • 인증 문제로 푸시가 거절될 때: GitHub CLI(gh auth login)나 개인 액세스 토큰으로 로그인하세요. 토큰은 절대 채팅에 입력하지 마세요.
  • 실수로 비밀 값을 커밋했을 때: 바로 그 키를 폐기하고 새 키로 바꾼 뒤 코드에서 지우세요. 파일만 지우는 것으로는 부족해요.

함께 생각할 질문

  • AI 에이전트가 프로젝트를 고치게 하기 전에 왜 커밋해야 할까요?
  • 풀 리퀘스트로 다른 사람은 무엇을 할 수 있나요?
출처와 더 읽을거리
챕터 목록
챕터 14 · 중급 · 개발 기초

Python 과 NumPy: 모델을 만드는 도구

목표

작은 Python 프로그램을 쓰고 실행하며, 이 강좌의 모든 모델을 이루는 NumPy 배열을 쓸 수 있어요.

Python 은 짧게 쓸 수 있고 좋은 가 많아서 AI 에서 가장 많이 쓰는 언어예요. SONUB 의 Python 강좌는 출력, 변수, 리스트, 조건, 반복, 함수를 브라우저에서 자동 채점과 함께 가르쳐요. 먼저 그 강좌를 끝내거나, 그 개념들을 알고 있는지 확인하세요. 하지만 모델은 많은 숫자를 한꺼번에 다루기 때문에 NumPy 를 써요. NumPy 배열에는 숫자가 격자 모양으로 담기고, a @ b 같은 한 줄로 행렬 전체를 곱할 수 있어요. 이것이 바로 신경망이 하는 일이에요.

조금 더 알아보기

이 강좌의 나머지를 떠받치는 NumPy 개념은 세 가지예요. shape(행과 열이 몇 개인지), 브로드캐스팅(연산이 배열 전체로 자동으로 늘어나 적용되는 것), 벡터화 계산(Python 반복문을 쓰지 않고 배열 전체를 한 번에 계산하는 것)이에요. 이 강좌의 코드는 모두 브라우저에서 실행돼요. 내 컴퓨터에서 하려면 Python 3 를 설치하고, python -m venv .venv 로 가상 환경을 만들고, pip install numpy 로 NumPy 를 설치하세요.

예제 코드 브라우저에서 Python 과 NumPy 로 실행돼요. 코드를 바꾸고 다시 실행해 보세요.

내 말로 설명해 보기

한 배열의 shape 는 (4, 3)이고 다른 배열은 (3, 2)예요. 두 배열을 곱한 결과의 shape 는 무엇이고, 왜 그럴까요?

설명과 비교하기

(4, 2)예요. 행렬 곱은 안쪽 크기(3 과 3)가 같아야 하고, 결과는 바깥쪽 크기인 4 와 2 를 가져요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

Python 기초 확인하기(10분) → 화면에서 NumPy 배열, shape, @ 보기(10분) → 학생이 예제를 실행하고 바꿔 보기(20분) → softmax 함께 설명하기(10분).

화면으로 보여 주기

  1. 예제를 실행하고 shape, 브로드캐스팅 결과, 행렬 곱을 짚어 주세요.
  2. softmax 줄의 점수를 바꿔도 확률의 합은 여전히 1 이라는 것을 보여 주세요.
  3. 같은 덧셈을 Python 반복문과 NumPy 한 줄로 써서 비교해 보세요.

학생 활동

  1. SONUB Python 강좌를 함수 단원까지 끝내거나, 작은 함수를 쓸 수 있다는 것을 강사에게 보여 주세요.
  2. 예제를 바꿔 보세요. 3×3 배열을 만들어 3×1 배열과 곱하고, 실행하기 전에 결과의 shape 를 예측하세요.

완료 기준

행렬 곱의 shape 를 맞게 예측하고, softmax 가 무엇을 돌려주는지 설명할 수 있으면 돼요.

학생이 막힐 때

  • shape 에 관한 ValueError 가 날 때: 두 배열의 .shape 를 출력해 보세요. a @ b 에서는 안쪽 크기가 같아야 해요.
  • 내 컴퓨터에서 "No module named numpy"가 나올 때: 가상 환경을 켜고 pip install numpy 를 실행하세요.

함께 생각할 질문

  • Python 반복문 대신 왜 NumPy 를 쓸까요?
  • softmax 가 돌려주는 숫자들을 모두 더하면 항상 얼마가 될까요?
출처와 더 읽을거리
챕터 목록
챕터 15 · 중급 · 개발 기초

파이썬: 실행·관찰·수정

목표

브라우저에서 변수·조건문·함수를 사용해요.

파이썬은 NumPy·scikit-learn처럼 수치 계산과 머신러닝 도구가 풍부해서 AI 개발에 널리 쓰여요. SONUB은 Pyodide로 브라우저에서 파이썬을 실행해요. 실행 환경과 패키지를 불러오는 데 시간이 걸려요. 인사말 출력은 코드 실행을 확인하는 것이며 AI 모델 학습은 아니에요.

조금 더 알아보기

아래 예제는 사람이 쓴 규칙을 적용해요. 점수나 기준을 바꾸고 실행 전에 출력을 예상해 보세요. 함수의 return은 값을 돌려주고 print는 화면에 표시해요. 기준과 정확히 같은 점수처럼 경계값도 시험하세요. 이 규칙 프로그램에는 데이터를 통한 학습 단계가 없어요.

예제 코드 브라우저에서 Python 과 NumPy 로 실행돼요. 코드를 바꾸고 다시 실행해 보세요.

내 말로 설명해 보기

개발자가 if 조건을 바꾸면 프로그램이 데이터로 학습한 걸까요?

설명과 비교하기

아니요. 규칙 수정은 프로그래밍이에요. 학습에는 데이터에서 모델 동작을 얻는 과정이 필요해요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

예제 실행하기(10분) → 조건 하나를 바꾸고 결과 예측하기(10분) → 학생이 작은 함수 쓰기(20분) → 스스로 확인하기(10분).

화면으로 보여 주기

  1. 챕터의 예제 코드를 실행하고, else 부분이 실행되도록 질문을 바꿔 보세요.
  2. if 조건을 바꾸는 것은 프로그래밍이지, 데이터로 배우는 것이 아니라는 점을 짚어 주세요.

학생 활동

  1. if/elif/else 로 서로 다른 질문 세 개에 답하는 함수를 쓰고, 질문마다 시험해 보세요.

완료 기준

코드를 실행하기 전에 어느 부분이 실행될지 예측할 수 있으면 돼요.

학생이 막힐 때

  • IndentationError: if 와 else 안의 줄을 스페이스 네 칸으로 맞춰 주세요.

함께 생각할 질문

  • 사람이 고치는 프로그램과 스스로 배우는 모델은 무엇이 다를까요?
출처와 더 읽을거리
챕터 목록
챕터 16 · 중급 · 만들고 공개하기

바이브 코딩: AI 와 이야기하며 홈페이지 만들기

목표

AI 코딩 에이전트에게 설명하고, 변경을 하나하나 검토하고, 프로젝트를 Git 에 보관하면서 한 페이지짜리 홈페이지를 만들 수 있어요.

은 원하는 것을 주로 쉬운 말로 설명하고 코드는 AI 가 쓰게 하면서 소프트웨어를 만드는 방법이에요. 나는 방향을 잡고, 시험하고, 결정해요. 작게 시작하세요. 폴더 하나, Git 저장소 하나, 그리고 짧은 설명서가 있으면 돼요. 설명서에는 사이트를 누가 볼지, 어떤 구역이 있을지, 스타일, 규칙(순수 HTML 과 CSS, 휴대폰에서도 작동, 외부 라이브러리 없음)을 적어요. 에이전트에게 첫 버전을 부탁하고, 브라우저에서 index.html 을 연 다음, 한 번에 하나씩 고쳐 나가세요. "머리글을 더 작게 해 줘", "연락처 구역을 더해 줘", "휴대폰에서 레이아웃을 고쳐 줘"처럼요.

조금 더 알아보기

개발자는 여전히 나예요. 변경을 받아들이기 전에 하나하나 읽고, 작동하는 단계마다 Git 에 커밋해서 되돌아갈 수 있게 하고, 실제 휴대폰 너비에서 시험해 보세요. 에이전트가 페이지에 비밀번호나 API 키를 넣지 않게 하세요. 홈페이지는 공개되어 있어서 그 안의 모든 것을 누구나 읽을 수 있어요. 페이지가 잘 작동하면 공개할 준비가 된 거예요. 다음 챕터에서 Cloudflare 로 인터넷에 올려요.

터미널에 입력할 명령
mkdir homepage && cd homepage
git init                       # save points from the first minute
claude                         # or: codex, agy

# then, inside the agent:
# "Make a one-page homepage in index.html for <who it is for>.
#  Sections: <...>. Style: <...>. Plain HTML and CSS, works on a phone,
#  no outside libraries. Show me the plan before you write."

git add index.html
git commit -m "first working homepage"
git restore index.html         # throw away a change you do not like

이 명령은 이 페이지가 아니라 내 컴퓨터나 서버의 터미널에서 실행해요. 실행하기 전에 한 줄씩 읽어 보세요.

내 말로 설명해 보기

바이브 코딩에서 변경마다 되풀이하는 네 단계를 적어 보세요.

설명과 비교하기

변경 하나를 설명하기 → 에이전트가 만들게 하기 → 브라우저에서 확인하기(휴대폰 너비에서도) → 잘 되면 Git 에 커밋하고, 안 되면 되돌아가기. 부탁하기, 확인하기, 저장하기가 들어 있으면 다 맞아요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

함께 설명서 쓰기(10분) → 에이전트가 첫 버전 만들기(10분) → "보고, 부탁하고, 확인하고, 커밋하기"를 세 번(25분) → 페이지 보여 주기(5분).

화면으로 보여 주기

  1. 빈 homepage 폴더에서 git init 을 실행하고, 에이전트를 시작한 다음, 한 페이지 사이트를 위한 여섯 부분 프롬프트를 붙여 넣으세요.
  2. index.html 을 열고, 브라우저를 휴대폰 너비로 줄인 다음, 깨지는 부분을 고쳐 달라고 에이전트에게 부탁하세요.
  3. 커밋한 다음 일부러 나쁜 변경을 부탁하고, git restore 로 마지막 커밋으로 되돌아가세요.

학생 활동

  1. 구역이 세 개 이상 있는 나만의 한 페이지 홈페이지(동아리, 취미, 포트폴리오)를 만드세요.
  2. 작동하는 변경 하나마다 커밋 하나씩, 분명한 메시지로 세 번 이상 커밋하세요.

완료 기준

페이지가 브라우저에서 열리고, 휴대폰 너비에서도 잘 읽히고, 비밀 정보가 없고, 작은 단계들로 된 Git 기록이 있으면 돼요.

학생이 막힐 때

  • 에이전트가 매번 전부 다시 쓸 때: 작은 변경 하나만 부탁하고, 파일과 구역의 이름을 말해 주세요.
  • 휴대폰에서 페이지가 깨져 보일 때: 모바일 우선 레이아웃을 부탁하고 390 px 너비에서 확인하세요.

함께 생각할 질문

  • AI 가 코드를 쓰는데도 왜 작동하는 단계마다 커밋해야 할까요?
  • 공개 홈페이지에는 왜 절대 API 키가 들어가면 안 될까요?
출처와 더 읽을거리
챕터 목록
챕터 17 · 중급 · 만들고 공개하기

웹에 공개하기: 내 홈페이지를 Cloudflare 에 배포하기

목표

Wrangler 나 GitHub 로 정적 홈페이지를 Cloudflare Pages 에 공개하고, 업데이트하고, 공개한 뒤에 무엇이 공개되는지 알 수 있어요.

Cloudflare Pages 는 HTML, CSS, , 이미지로 된 정적 사이트를 Cloudflare 의 전 세계 네트워크에 올려 줘요. 무료 요금제가 있고, your-project.pages.dev 같은 주소가 생겨요. 방법은 두 가지예요. Direct Upload: 를 설치하고, npx wrangler login 을 실행한 다음, index.html 이 있는 폴더에서 npx wrangler pages ./ --project-name=my-homepage 를 실행해요. Git 연동: 프로젝트를 GitHub 에 푸시하고, Cloudflare 대시보드에서 그 저장소를 연결하면, 푸시할 때마다 새 버전이 자동으로 공개돼요. 처음에 하나를 고르세요. Direct Upload 프로젝트는 나중에 Git 연동으로 바꿀 수 없어요.

조금 더 알아보기

공개하는 것은 모두 누구나 볼 수 있으니, 폴더에 키, 개인 메모, .env 파일이 없는지 확인하세요. 배포할 때마다 그 배포만의 미리보기 주소가 생기고, 실제 주소는 가장 최근 배포를 보여 줘요. 그래서 공유하기 전에 시험해 볼 수 있어요. myname.com 같은 나만의 은 나중에 대시보드에서 더할 수 있어요. 코딩 에이전트에게 배포 명령을 실행하게 해도 되지만, 먼저 명령을 읽고, Cloudflare API 토큰은 절대 채팅에 붙여 넣지 마세요.

터미널에 입력할 명령
# Direct Upload — run in the folder that has index.html
npx wrangler login
npx wrangler pages project create my-homepage
npx wrangler pages deploy ./ --project-name=my-homepage

# -> https://my-homepage.pages.dev
# Choose at the start: a Direct Upload project cannot switch to Git integration later.

이 명령은 이 페이지가 아니라 내 컴퓨터나 서버의 터미널에서 실행해요. 실행하기 전에 한 줄씩 읽어 보세요.

내 말로 설명해 보기

내 홈페이지가 내 컴퓨터에서 인터넷으로 가는 과정을 세 단계로 설명해 보세요.

설명과 비교하기

1. Wrangler 로 Cloudflare 에 로그인해요(또는 GitHub 를 연결해요). 2. index.html 이 있는 폴더를 Pages 프로젝트로 올려요. 3. Cloudflare 가 자기 네트워크에서 pages.dev 주소로 보여 주고, 새로 올릴 때마다 실제 버전이 바뀌어요. 로그인, 올리기, 공개 주소가 들어 있으면 다 맞아요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

호스팅이란 무엇이고 정적 사이트는 왜 간단한지(5분) → 함께 Wrangler 로 배포하기(15분) → 페이지를 바꾸고 다시 배포하기(10분) → 두 번째 방법으로 GitHub 연결하기(10분).

화면으로 보여 주기

  1. npx wrangler login 과 npx wrangler pages deploy ./ --project-name=demo-homepage 를 실행한 다음, pages.dev 주소를 열어 보세요.
  2. 한 줄을 바꾸고 다시 배포한 다음, 대시보드에서 새 배포와 그 미리보기 주소를 보여 주세요.
  3. .env 를 빼 주는 .gitignore 를 보여 주고, 정적 사이트에는 왜 비밀이 들어가면 안 되는지 설명해 주세요.

학생 활동

  1. 바이브 코딩으로 만든 홈페이지를 공개하고 pages.dev 주소를 공유하세요.
  2. 하나를 고친 다음 다시 공개하고, 바뀐 내용이 실제로 반영됐는지 확인하세요.

완료 기준

홈페이지가 pages.dev 주소에서 열리고, 업데이트를 한 번 공개했고, 무엇이 공개되는지 설명할 수 있으면 돼요.

학생이 막힐 때

  • "npx: command not found"가 나올 때: 먼저 Node.js(LTS)를 설치하고, 새 터미널을 여세요.
  • 페이지에 404 가 나올 때: 상위 폴더가 아니라 index.html 이 들어 있는 폴더를 배포하세요.

함께 생각할 질문

  • Direct Upload 와 Git 연동은 어떻게 다를까요?
  • 정적 사이트는 왜 무료로 올려도 안전하지만 비밀을 두기에는 안전하지 않을까요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 18 · 중급 · 만들고 공개하기

Google Play: 내 앱을 Android 휴대폰에 올리기

목표

Android 앱을 Google Play 에 출시하는 단계(개발자 계정, 앱 번들, 스토어 등록 정보, 테스트, 심사)와 새 개인 계정의 테스트 규칙을 알 수 있어요.

Google Play 에 출시하려면 세 가지가 필요해요. Play Console 개발자 계정(한 번 내는 등록비와 본인 확인), 업로드 키로 서명한 Android App Bundle(.aab)로 만든 앱, 그리고 스토어 등록 정보예요. 등록 정보에는 이름, 설명, 스크린숏, 아이콘, 개인정보처리방침 주소, 그리고 콘텐츠와 데이터 보안에 관한 답변이 들어가요. AI 에이전트로 앱을 만든다면, 예를 들어 Flutter 로 만든다면, 출시용 를 만들어 달라고 하고, 서명 키 파일과 그 비밀번호는 Git 과 모든 채팅에서 빼 두세요.

조금 더 알아보기

출시는 트랙을 거쳐요. 내부 테스트, 비공개 테스트, 공개 테스트, 프로덕션이에요. 새 개인 개발자 계정은 프로덕션 출시를 신청하기 전에, 먼저 테스터 12명 이상이 14일 연속으로 참여를 유지하는 비공개 테스트를 해야 해요. 그러니 테스터를 일찍 계획하세요. 모든 출시는 Google 이 심사하고, 업데이트할 때마다 버전 코드를 더 높여야 해요. 규칙과 화면은 바뀌니, 이 챕터와 함께 공식 Play Console 도움말을 따라가세요.

터미널에 입력할 명령
# Flutter: build a signed Android App Bundle for Google Play
flutter build appbundle
# -> build/app/outputs/bundle/release/app-release.aab

# Keep the upload key and its passwords out of Git:
#   android/key.properties
#   *.jks

이 명령은 이 페이지가 아니라 내 컴퓨터나 서버의 터미널에서 실행해요. 실행하기 전에 한 줄씩 읽어 보세요.

내 말로 설명해 보기

이것들을 순서대로 놓아 보세요: 프로덕션, 비공개 테스트, 출시용 번들, 스토어 등록 정보.

설명과 비교하기

출시용 번들 → 스토어 등록 정보 → 비공개 테스트(새 개인 계정은 테스터 12명이 14일 동안) → 프로덕션. 번들과 등록 정보는 어느 쪽을 먼저 준비해도 되지만, 테스트는 언제나 프로덕션보다 먼저예요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

앱에서 스토어까지 큰 그림(10분) → 함께 출시용 번들 만들기(15분) → Play Console 등록 정보 둘러보기(15분) → 테스터 12명 비공개 테스트 계획하기(10분).

화면으로 보여 주기

  1. 출시용 빌드 명령(Flutter 라면 flutter build appbundle)과 .aab 파일이 생기는 곳을 보여 주세요.
  2. Play Console 을 둘러보세요. 앱 만들기, 스토어 등록 정보, 데이터 보안 양식, 테스트 트랙이에요.
  3. 업로드 키를 어디에 보관하는지, 그리고 왜 절대 커밋하거나 공유하면 안 되는지 보여 주세요.

학생 활동

  1. 내 앱의 스토어 등록 정보를 써 보세요. 이름, 짧은 설명과 자세한 설명, 찍을 스크린숏 목록이에요.
  2. 테스터 계획을 세우세요. 12명, 어떻게 초대할지, 14일 동안 어떻게 테스트에 남아 있게 할지 적어요.

완료 기준

출시용 번들부터 프로덕션까지의 단계를 말하고, 트랙과 비공개 테스트 규칙을 설명할 수 있으며, 등록 정보 초안과 테스터 계획이 있으면 돼요.

학생이 막힐 때

  • 개발자 계정이 없거나 나이가 안 될 때: 등록 정보와 테스터 계획으로 연습하세요. 계정은 부모님이나 학교가 가질 수 있어요.
  • 버전 때문에 업로드가 거절될 때: 버전 코드를 올리세요(Flutter 는 pubspec.yaml 에서 + 뒤의 숫자).

함께 생각할 질문

  • 새 개인 계정은 왜 프로덕션 전에 비공개 테스트를 해야 할까요?
  • 업로드 키를 잃어버리면 어떻게 되고, 어떻게 지켜야 할까요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 19 · 중급 · 만들고 공개하기

App Store: 내 앱을 iPhone 에 올리기

목표

iPhone 앱을 출시하는 단계(Apple Developer Program, 서명, App Store Connect, TestFlight, 앱 심사)와 가장 흔한 거절 이유를 알 수 있어요.

App Store 에 출시하려면 Xcode 가 있는 Mac, Apple Developer Program 회원 자격(해마다 내는 회비), 그리고 App Store Connect 에 내 앱의 기록이 필요해요. 이 기록에는 번들 ID, 이름, 스크린숏, 개인정보처리방침 주소, 앱이 모으는 데이터에 대한 개인정보 내용이 들어가요. Xcode 에서(또는 flutter build ipa 같은 빌드 도구로) 앱을 아카이브하고 업로드해요. 자동 서명을 켜 두면 서명 와 프로필은 Xcode 가 알아서 처리해 줘요.

조금 더 알아보기

업로드한 빌드는 모두 먼저 TestFlight 로 보낼 수 있어서, 일반 사용자보다 테스터가 먼저 설치해 볼 수 있어요. 출시를 위해 제출하면 Apple 의 앱 심사가 앱을 가이드라인에 비추어 확인해요. 흔한 거절 이유는 이래요. 앱이 멈추거나 임시 내용이 들어 있을 때, 개인정보 내용이 빠졌을 때, 로그인이 있는데 심사자용 테스트 계정이 없을 때, 다른 회사 로그인이 있는데 Sign in with Apple 처럼 그에 맞먹는 개인정보 보호형 선택지가 없을 때, 앱이 웹사이트를 앱으로 감싸기만 했을 뿐 할 수 있는 일이 거의 없을 때(최소 기능 규칙, 가이드라인 4.2)예요. 거절 메시지를 읽고, 바로 그것을 고쳐서 다시 제출하세요.

터미널에 입력할 명령
# Flutter on a Mac with Xcode: build the iOS archive for App Store Connect
flutter build ipa
# -> build/ios/archive/Runner.xcarchive  (open it in Xcode)
# -> Xcode: Distribute App -> App Store Connect -> TestFlight first
# A website only wrapped in an app can be rejected (App Review Guidelines 4.2 — minimum functionality)

이 명령은 이 페이지가 아니라 내 컴퓨터나 서버의 터미널에서 실행해요. 실행하기 전에 한 줄씩 읽어 보세요.

내 말로 설명해 보기

"앱이 시작할 때 멈췄다"는 이유로 앱이 거절됐어요. 어떻게 하나요?

설명과 비교하기

같은 iOS 버전의 실제 iPhone 이나 TestFlight 에서 똑같이 일어나게 해 보고, 멈추는 문제를 고치고, 빌드 번호를 올리고, 새 빌드를 업로드한 다음, App Store Connect 에서 무엇을 고쳤는지 답장해요. 고치기, 다시 업로드하기, 답장하기가 핵심 단계예요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

Apple 의 길: 계정 → 빌드 → TestFlight → 심사(10분) → 함께 아카이브하고 업로드하기(15분) → App Store Connect 등록 정보(15분) → 거절 이유와 답하는 법(10분).

화면으로 보여 주기

  1. Xcode 에서 Product → Archive 를 고른 다음, Distribute App → App Store Connect 를 고르세요.
  2. App Store Connect 에서 TestFlight 탭을 보여 주고, 내부 테스터를 더한 다음, 휴대폰에 빌드를 설치하세요.
  3. 실제 같은 거절 메시지를 함께 읽고, 고칠 점과 답장을 써 보세요.

학생 활동

  1. 등록 정보 초안을 채워 보세요. 이름, 부제, 설명, 키워드, 개인정보처리방침 주소, 심사자용 데모 계정이에요.
  2. 흔한 거절 이유 다섯 가지에 비추어 내 앱을 확인하고, 고칠 점을 적어 보세요.

완료 기준

아카이브, 업로드, TestFlight, 심사를 순서대로 설명할 수 있고, 체크리스트에 흔한 거절 이유가 들어 있으면 돼요.

학생이 막힐 때

  • Mac 이나 회원 자격이 없을 때: 등록 정보와 체크리스트로 연습하고, 앱은 Android 나 웹에서 시험하세요.
  • 서명 오류로 업로드가 실패할 때: Xcode 에서 자동 서명을 켜고 내 팀을 고르세요.

함께 생각할 질문

  • 심사를 위해 제출하기 전에 왜 TestFlight 로 시험해야 할까요?
  • 앱에 로그인이 있으면 Apple 은 왜 데모 계정을 달라고 할까요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 20 · 고급 · AI 에이전트

에이전트와 서브 에이전트: AI 가 한 단계씩 일하는 방법

목표

에이전트의 반복(생각하기, 행동하기, 관찰하기, 되풀이하기), 에이전트가 가진 도구와 권한, 그리고 메인 에이전트가 언제 에게 일을 넘기는지 설명할 수 있어요.

에이전트는 반복하며 일하는 언어 모델이에요. 목표를 읽고, 다음 단계를 정하고, 도구를 쓰고(파일 읽기, 명령 실행, 웹 검색), 결과를 보고 다시 정해요. 일이 끝나거나 내 도움이 필요할 때까지 이것을 되풀이해요. 에이전트의 힘은 도구에서 나오고, 한계는 권한에서 나와요. 권한은 묻지 않고 무엇을 읽고, 바꾸고, 실행해도 되는지예요. Claude Code, Codex, Antigravity CLI 는 모두 이런 에이전트예요. 모델, 설정, 명령은 다르지만 기본 반복은 같아요.

조금 더 알아보기

서브 에이전트는 메인 에이전트가 일의 한 부분을 맡기려고 시작하는 도우미예요. 서브 에이전트는 자기만의 새 컨텍스트 창을 가져서, 파일을 많이 읽거나 넓게 검색한 뒤 결론만 보고할 수 있어요. 그래서 메인 대화가 짧게 유지돼요. 서로 관계없는 부분이라면 서브 에이전트 여러 개가 동시에 일할 수도 있어요. Claude Code 에서 서브 에이전트는 이름, 설명, 허용된 도구, 지시가 담긴 Markdown 파일이고, .claude/agents/(프로젝트용)나 ~/.claude/agents/(나 전용)에 있어요. 서브 에이전트에게는 좁은 일과 꼭 필요한 도구만 주고, 그 보고도 내가 확인해야 할 초안이라는 것을 기억하세요.

내 말로 설명해 보기

내 프로젝트에 파일이 300개 있고, 로그인 코드가 어디 있는지 알고 싶어요. 왜 서브 에이전트를 쓰는 게 좋을까요?

설명과 비교하기

파일을 많이 읽으면 컨텍스트 창이 가득 차요. 서브 에이전트는 자기만의 새 컨텍스트에서 검색하고 "로그인 코드는 이 세 파일에 있어요"만 돌려줄 수 있어서, 메인 대화가 짧고 집중된 채로 유지돼요. 읽기 전용 서브 에이전트는 아무것도 바꿀 수 없어서 안전하기도 해요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

학생 한 명이 "에이전트"가 되어 에이전트 반복을 연기해 보기(10분) → 실제 에이전트의 도구 호출 지켜보기(10분) → 서브 에이전트 파일 쓰기(20분) → 언제 쓰지 말아야 할지 이야기하기(10분).

화면으로 보여 주기

  1. 코딩 에이전트에게 작은 일을 주고, 계획, 도구 호출, 결과, 다음 결정의 각 단계를 짚어 주세요.
  2. 에이전트에게 프로젝트 전체에서 무언가 하나를 찾아 달라고 하고, 에이전트가 그 검색을 읽기 전용 서브 에이전트에게 넘기는 모습을 보여 주세요.
  3. .claude/agents/ 에 있는 서브 에이전트 파일을 열고 이름, 설명, 도구, 지시를 읽어 보세요.

학생 활동

  1. 내 일(예를 들어 "내 홈페이지의 깨진 링크 고치기")에 대한 에이전트 반복을, 쓰게 될 도구를 모두 넣어 그려 보세요.
  2. 읽기 전용 검토 서브 에이전트를 써 보세요. 언제 쓰는지에 대한 설명, 읽기로만 제한한 도구, 세 줄짜리 체크리스트가 들어가요.

완료 기준

반복, 도구와 권한의 역할, 서브 에이전트가 왜 자기만의 컨텍스트를 가지는지 설명할 수 있고, 작동하는 서브 에이전트 파일이 있으면 돼요.

학생이 막힐 때

  • 서브 에이전트가 한 번도 쓰이지 않을 때: 언제 써야 하는지를 요청에 나오는 말로 설명에 정확하게 적으세요.
  • 에이전트가 한꺼번에 너무 많이 할 때: 먼저 계획을 달라고 하고, 한 번에 한 단계씩 승인하세요.

함께 생각할 질문

  • 챗봇의 답과 에이전트의 반복은 어떻게 다를까요?
  • 서브 에이전트에게는 왜 메인 에이전트보다 적은 도구를 줄까요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 21 · 고급 · AI 에이전트

Codex: OpenAI 의 코딩 에이전트

목표

Codex 에게 파일, 기대하는 동작, 확인 방법이 분명한 코딩 일을 맡기고, 변경을 남기기 전에 검토할 수 있어요.

Codex 는 OpenAI 의 코딩 에이전트예요. 터미널(Codex CLI), , ChatGPT 앱에서 작동하고, 내 프로젝트를 읽고, 파일을 고치고, 명령을 실행해서 자기 작업을 시험해요. 프로젝트 맨 위 폴더에 있는 AGENTS.md 파일의 지시를 따르기 때문에, 예를 들어 테스트를 실행하는 명령 같은 규칙을 한 번만 적어 두면 돼요. Codex 는 위험한 동작을 하기 전에 허락을 구하고, 스스로 어디까지 해도 되는지는 읽기만 하기부터 작업 폴더 고치기까지 내가 정해요.

조금 더 알아보기

좋은 코딩 요청은 구체적이에요. 무엇을, 어느 파일에서 바꾸는지, 바꾼 뒤 어떻게 동작해야 하는지, 어떻게 확인하는지(테스트, 명령, 의 예)를 말해요. 큰 일이라면 먼저 계획을 달라고 하세요. Codex 가 일을 끝내면 diff 를 읽고, 테스트를 직접 실행하고, 내가 이해한 것만 커밋하세요. codex exec 는 대화 화면 없이 일을 실행해서 스크립트 안에서 쓰기 좋아요.

내 말로 설명해 보기

"내 코드 좀 좋게 만들어 줘"를 Codex 가 실행하고 확인할 수 있는 요청으로 다시 써 보세요.

설명과 비교하기

예를 들면 "word_count.py 에서 count_words 가 문장 부호와 대문자를 무시하게 해 줘. 함수 이름은 그대로 둬. 'Hello, hello!' 를 고유한 단어 하나로 세는 테스트를 더해 줘. python -m pytest 를 실행하고 결과를 보여 줘." 파일, 동작, 확인 방법을 모두 밝히고 있어요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

코딩 에이전트가 하는 일(5분) → 분명한 요청으로 실시간 작업하기(15분) → 학생이 Codex 에게 작은 일 맡기기(20분) → diff 함께 검토하기(10분).

화면으로 보여 주기

  1. ai-course 폴더에 규칙 하나를 담은 AGENTS.md 를 써 보세요. 예를 들어 "변경할 때마다 python -m pytest 를 실행할 것." 같은 규칙이에요.
  2. Codex 에게 테스트가 딸린 작은 스크립트를 부탁하고, 단계마다 승인하며 테스트가 실행되는 모습을 보여 주세요.
  3. git diff 를 열고 커밋하기 전에 바뀐 줄을 하나하나 함께 살펴보세요.

학생 활동

  1. 파일, 동작, 확인 방법을 밝힌 일을 Codex 에게 맡기세요. 예를 들어 글의 단어 수를 세는 함수와 그 테스트예요.
  2. diff 를 검토하고 테스트를 직접 실행한 다음, 변경 내용을 설명하는 메시지로 커밋하세요.

완료 기준

학생의 커밋에 작동하는 코드와 테스트가 들어 있고, 바뀐 줄을 하나하나 설명할 수 있으면 돼요.

학생이 막힐 때

  • Codex 가 부탁한 것보다 많이 바꿀 때: 멈추게 하고 git restore 로 되돌린 뒤, 정확한 파일 이름을 밝혀 다시 요청하세요.
  • 로그인이나 요금제 문제가 있을 때: ChatGPT 계정으로 로그인하세요. 내 요금제에 Codex 가 없다면 시연을 보며 따라가고, 강사의 diff 를 검토하는 연습을 하세요.

함께 생각할 질문

  • 좋은 코딩 요청에는 항상 무엇이 들어가야 할까요?
  • 테스트를 통과했는데도 왜 diff 를 읽어야 할까요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 22 · 고급 · AI 에이전트

Claude Code 1: 프로젝트를 준비하고 오래 가는 지시 주기

목표

프로젝트에서 Claude Code 를 시작하고, CLAUDE.md 에 오래 가는 지시를 적고, 권한으로 무엇을 해도 되는지 정할 수 있어요.

Claude Code 는 Anthropic 의 코딩 에이전트예요. 터미널에서 실행되고, 코드 편집기, Claude 데스크톱 앱, 웹에서도 쓸 수 있어요. 프로젝트 폴더에서 claude 라고 입력하면 시작돼요. 코드를 읽고, 코드에 대한 질문에 답하고, 파일을 고치고, 명령을 실행해요. 프로젝트 맨 위 폴더의 CLAUDE.md 파일은 세션을 시작할 때마다 읽혀요. 여기에 프로젝트의 목적, 빌드와 테스트 명령, 내 규칙을 적으세요. /init 명령을 쓰면 프로젝트를 읽고 CLAUDE.md 초안을 대신 써 줘요.

조금 더 알아보기

Claude Code 는 파일을 고치거나 명령을 실행하기 전에 물어보고, 나는 그 동작을 한 번만, 이번 세션 동안, 또는 항상 허락할지 정해요. 권한 규칙은 .claude/settings.json 에 있고, 계획 모드에서는 Claude Code 가 아무것도 바꾸지 않고 읽고 계획만 제안해요. 처음에는 엄격하게 시작해서 믿을 수 있는 것만 풀어 주고, 이해하지 못한 명령은 절대 허락하지 마세요.

내 말로 설명해 보기

작은 Python 숙제 프로젝트의 CLAUDE.md 에 넣을 세 줄을 써 보세요.

설명과 비교하기

예를 들면 "목적: Python 수업 숙제 문제. 테스트: 변경할 때마다 python -m pytest 를 실행할 것. 규칙: 함수는 짧게 쓰고 함수마다 주석으로 설명할 것." 목적, 테스트 명령, 규칙이 있으면 맞아요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

설치 확인과 첫 실행(10분) → /init 으로 CLAUDE.md 만들기(10분) → 권한과 계획 모드(10분) → 학생이 자기 프로젝트 준비하기(20분).

화면으로 보여 주기

  1. ai-course 폴더에서 claude 를 시작하고 "이 프로젝트에는 무엇이 있어?"라고 물어보세요.
  2. /init 을 실행한 다음, 만들어진 CLAUDE.md 를 고쳐서 테스트에 관한 규칙 하나를 더하세요.
  3. 계획 모드로 바꾸고 변경을 부탁한 뒤, 계획을 승인하기 전까지는 아무것도 고쳐지지 않는다는 것을 보여 주세요.

학생 활동

  1. ai-course 폴더에서 Claude Code 를 시작하고, 목적, 테스트 명령, 규칙 두 개를 담은 CLAUDE.md 를 쓰세요.
  2. 계획 모드에서 Claude Code 에게 변경을 부탁하고, 승인하지 말고 계획만 읽어 보세요.

완료 기준

학생의 프로젝트에 테스트 명령과 규칙이 담긴 CLAUDE.md 가 있고, 계획 모드가 무엇을 하는지 설명할 수 있으면 돼요.

학생이 막힐 때

  • "claude: command not found"가 나올 때: 쉘 11단원의 설치 확인을 다시 하고 터미널을 다시 여세요.
  • 권한을 너무 자주 물을 때: 테스트 실행처럼 안전한 명령만 "항상" 허락하고, 파일 삭제는 절대 허락하지 마세요.

함께 생각할 질문

  • CLAUDE.md 에는 무엇을 적어야 하고, 왜 세션마다 읽힐까요?
  • 계획 모드는 언제 쓰면 좋을까요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 23 · 고급 · AI 에이전트

Claude Code 2: 계획하고, 바꾸고, 테스트하고, 검토하기

목표

Claude Code 로 일 한 바퀴를 끝까지 돌릴 수 있어요. 목표를 설명하고, 계획을 검토하고, 코드를 바꾸고 테스트하게 한 뒤, 결과를 검토해서 남기거나 되돌려요.

코딩 에이전트와 잘 일하는 방법은 한 바퀴를 도는 순서를 따르는 거예요. 목표와 확인 방법을 설명하세요. 파일이 바뀌기 전에 계획을 읽고 고치세요. 에이전트가 코드를 고치고 테스트를 실행하게 하세요. diff 를 직접 읽으세요. 커밋해서 변경을 남기거나 되돌리세요. 거대한 요청 하나보다 작은 바퀴 여러 번이 나아요. 한 바퀴씩 확인하기 쉽기 때문이에요.

조금 더 알아보기

에이전트가 스스로 확인할 방법을 주세요. 테스트, 꼭 성공해야 하는 명령, 올바른 출력의 예 같은 것이에요. 세션이 엉뚱한 방향으로 가면 Esc 를 눌러 멈추고 무엇이 틀렸는지 말하거나, Git 으로 되돌리고 새로 요청하세요. 세션이 길어지면 헷갈리는 맥락이 쌓이니 /clear 로 깨끗하게 다시 시작하세요. 자주 반복하는 일은 단계를 로 저장하세요(Agent Skills 챕터를 보세요).

내 말로 설명해 보기

다음을 순서대로 놓아 보세요. diff 읽기, 목표와 확인 방법 설명하기, 커밋하기, 계획 승인하기, 테스트 실행하기.

설명과 비교하기

목표와 확인 방법 설명하기 → 계획 승인하기 → (에이전트가 코드를 바꾸고) 테스트 실행하기 → diff 읽기 → 커밋하기.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

칠판에서 다섯 단계 한 바퀴 보기(5분) → 작은 기능으로 실시간 한 바퀴 돌기(15분) → 학생이 자기 프로젝트에서 두 바퀴 돌기(20분) → 에이전트가 틀린 것 하나씩 나누기(10분).

화면으로 보여 주기

  1. "글에서 가장 많이 나온 단어를 돌려주는 함수를 테스트와 함께 더해 줘. 먼저 계획을 보여 줘."라고 부탁하고, 계획에서 한 가지를 고쳐 보세요.
  2. 코드를 고치고 테스트를 실행하게 두세요. 테스트가 실패하면 에이전트가 오류를 읽고 코드를 고치는 모습을 보여 주세요.
  3. git diff 를 검토하고 커밋하세요. 그다음 일부러 잘못된 변경을 하고 git restore 로 되돌려 보세요.

학생 활동

  1. 내 프로젝트에서 한 바퀴를 끝까지 돌아 보세요. 확인 방법이 있는 목표, 계획, 변경, 테스트, diff, 커밋이에요.
  2. 첫 바퀴의 결과를 개선하는 두 번째 바퀴를 돌고, 계획에서 무엇을 고쳤는지 한 문장으로 적어 보세요.

완료 기준

학생의 Git 기록에 한 바퀴씩 돌아 만든 커밋이 두 개 있고, 각각 테스트를 통과했으면 돼요.

학생이 막힐 때

  • 에이전트는 테스트를 통과했다는데 실제로는 실패할 때: 테스트 명령을 직접 실행하고, 요약이 아니라 출력을 믿으세요.
  • 대화가 엉킬 때: 지금까지의 작업을 커밋하거나 되돌리고, /clear 를 쓴 뒤 짧고 정확한 요청으로 다시 시작하세요.

함께 생각할 질문

  • 큰 요청 하나보다 작은 바퀴 여러 번이 왜 나을까요?
  • 에이전트가 엉뚱한 방향으로 가면 어떻게 하나요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 24 · 고급 · AI 에이전트

Antigravity CLI(agy): 내 터미널 속 Google 의 에이전트

목표

agy 로 Google 의 Antigravity CLI 를 시작하고, 일을 맡기고, Claude Code 와 Codex 와 비교하고, 여러 에이전트가 서로를 확인하게 할 수 있어요.

Antigravity CLI 는 터미널에서 쓰는 Google 의 코딩 에이전트예요. 공식 페이지의 설치 스크립트를 실행한 다음 agy 명령으로 시작해요. Google 은 예전 Gemini CLI 사용자를 위한 이전 안내서도 내놓았어요. Google 의 Gemini 모델을 쓰고, 다른 에이전트와 똑같이 작동해요. 프로젝트 폴더에서 실행하고, 일을 설명하고, 계획과 명령을 승인하면, 에이전트가 파일을 읽고 고쳐요. 처음 실행하면 브라우저가 열려서 Google 계정으로 로그인할 수 있어요. 일의 여러 부분을 도우미 에이전트 여러 개에게 한꺼번에 보낼 수도 있어요.

조금 더 알아보기

모델마다 잘하는 것과 놓치는 것이 달라서, 에이전트 세 가지를 알아 두면 쓸모가 있어요. 좋은 습관은 이에요. 한 에이전트에게 변경을 맡기고 다른 에이전트에게 검토를 맡기거나, 여러 에이전트에게 같은 문제를 따로 분석하게 해서 비교하세요. 의견이 갈리는 곳은 내가 직접 파일을 열어 보고 결정하세요. 모든 에이전트가 같은 지시를 따르도록, 많은 에이전트가 읽는 AGENTS.md 에 같은 프로젝트 규칙을 두세요.

내 말로 설명해 보기

두 에이전트가 버그의 원인에 대해 의견이 달라요. 누가 맞는지 어떻게 정하나요?

설명과 비교하기

각자 내놓은 증거, 즉 파일과 줄, 오류 메시지를 보고 직접 확인해요. 코드를 실행하고, 그 줄을 읽고, 작은 테스트를 써 봐요. 에이전트 하나만 말했더라도 실제 동작과 맞는 답이 이겨요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

세 에이전트 나란히 보기: Claude Code, Codex, agy(10분) → agy 설치하고 로그인하기(10분) → 같은 작은 일을 두 에이전트에게 맡기기(20분) → 비교하고 결정하기(10분).

화면으로 보여 주기

  1. 연습 프로젝트에서 agy 를 실행하고 프로젝트 구조를 설명해 달라고 해 보세요.
  2. 같은 버그를 agy 와 Claude Code 또는 Codex 에게 주고, 두 계획을 비교해 보세요.
  3. 한 에이전트에게 다른 에이전트의 변경을 검토해 달라고 하고, 둘 중 어떻게 결정하는지 보여 주세요.

학생 활동

  1. 내 프로젝트 규칙을 담은 AGENTS.md 를 쓰고, 두 에이전트가 그것을 따르는지 확인하세요.
  2. 두 에이전트에게 같은 일을 하나 맡기고 짧은 표를 쓰세요. 각자 무엇을 했는지, 무엇이 더 나았는지, 무엇이 틀렸는지 적어요.

완료 기준

프로젝트에서 agy 를 실행해 봤고, 같은 일로 두 에이전트를 비교했고, 교차 검증이 왜 실수를 잡아내는지 설명할 수 있으면 돼요.

학생이 막힐 때

  • agy 가 시작되지 않거나 로그인이 안 될 때: 공식 설치 페이지를 확인하고, 브라우저에서 Google 계정으로 로그인하세요.
  • 에이전트들이 다른 답을 낼 때: 그게 바로 핵심이에요. 에이전트들이 가리키는 파일을 열고, 다수결이 아니라 증거로 결정하세요.

함께 생각할 질문

  • 서로 다른 AI 에이전트 둘은 왜 하나보다 실수를 더 많이 찾을 수 있을까요?
  • 여러 에이전트를 쓸 때는 왜 규칙을 AGENTS.md 에 둘까요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 25 · 고급 · AI 에이전트

Agent Skills: AI 에이전트에게 반복하는 일 가르치기

목표

AI 에이전트가 반복하는 일을 매번 같은 방법으로 하도록 SKILL.md 파일을 읽고 쓰며, 언제 쓰이는지 시험할 수 있어요.

에이전트 스킬은 SKILL.md 파일이 든 폴더로, AI 에이전트에게 한 종류의 일을 하는 방법을 가르쳐요. 단계, 규칙, 확인 방법이 들어 있고, 원하면 스크립트와 참고 파일도 넣을 수 있어요. Claude Code, Codex 같은 에이전트는 공개된 Agent Skills 형식을 지원해요. SKILL.md 맨 위에는 이름과 설명이 있어요. 에이전트는 처음에 이것만 읽고, 요청이 설명과 맞을 때 전체 지시를 불러와요. 그래서 스킬이 많아도 대화가 가득 차지 않아요.

조금 더 알아보기

스킬이 언제 쓰일지는 설명이 정하니, 사람들이 실제로 하는 말로 쓰고 무엇에는 쓰지 않는지도 밝히세요. 지시는 짧고 구체적으로 쓰고, 긴 세부 내용은 따로 참고 파일로 옮기고, 써야 하는 요청과 쓰지 말아야 하는 요청으로 스킬을 시험하세요. 스킬은 스크립트를 실행할 수 있으니 믿을 수 있는 곳의 스킬만 설치하고, 먼저 읽어 보세요. SONUB 도 여러 스킬로 만들어졌어요. 그중 하나는 이 사이트에서 보는 용어의 초보자용 팝업을 써요.

내 말로 설명해 보기

회의 메모를 할 일 목록으로 바꾸는 스킬의 설명을 써 보세요.

설명과 비교하기

예를 들면 "회의 메모를 담당자와 마감일이 있는 번호 붙은 할 일 목록으로 바꿔요. 사용자가 회의에서 나온 할 일이나 할 일 목록을 달라고 할 때 써요. 회의록 전체를 쓰는 데는 쓰지 않아요." 무엇을 하는지, 언제 쓰는지, 무엇에는 쓰지 않는지를 말하고 있어요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

스킬이 무엇이고 어디에 있는지(10분) → 실제 스킬을 함께 읽기(10분) → 학생이 작은 스킬 쓰기(20분) → 언제 쓰이는지 시험하기(10분).

화면으로 보여 주기

  1. 예제 SKILL.md 를 열고 이름, 설명, 단계를 짚어 주세요.
  2. 스킬을 .claude/skills/weekly-report/ 에 넣고 "주간 보고서 써 줘"라고 부탁해 보세요. 그다음 관계없는 것을 물어서 스킬이 쓰이지 않는 것을 보여 주세요.
  3. 설명을 막연하게 바꾸고, 스킬이 믿을 수 없게 되는 모습을 보여 주세요.

학생 활동

  1. 내가 반복하는 일(요약, 체크리스트, 보고서)을 위한 SKILL.md 를 분명한 설명과 세 단계에서 다섯 단계로 써 보세요.
  2. 스킬을 써야 하는 요청 두 개와 쓰지 말아야 하는 요청 하나로 시험하고 결과를 적어 보세요.

완료 기준

스킬에 이름, 언제 쓰는지 밝힌 설명, 번호 붙은 단계, 확인 방법이 있고, 시험에서 올바르게 쓰이면 돼요.

학생이 막힐 때

  • 스킬이 전혀 쓰이지 않을 때: 사람들이 실제로 하는 말을 설명에 넣으세요.
  • 엉뚱한 요청에 쓰일 때: 무엇에는 쓰지 않는지를 설명에 더하세요.

함께 생각할 질문

  • 에이전트는 왜 처음에 이름과 설명만 읽을까요?
  • 인터넷에서 스킬을 설치하기 전에 왜 먼저 읽어야 할까요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 26 · 고급 · AI 에이전트

Claude Cowork: 여러 단계의 일 맡기기

목표

여러 파일과 앱에 걸친 일에 에이전트 도구를 쓰고, 분명한 한계를 정하고, 진행 상황을 따라가며, 끝난 결과를 확인할 수 있어요.

Claude Cowork 는 Claude Code 와 같은 에이전트 기술을 쓰지만 터미널이 필요 없어요. Claude 데스크톱 앱에서 "이 영수증 40장을 월별로 스프레드시트에 정리해 줘"처럼 일을 설명하고 필요한 폴더에 접근할 수 있게 해 주면, 단계를 계획하고 하나씩 해내면서 진행 상황을 보여 줘요. 사무와 공부에 맞게 만들어졌어요. 파일 정리, 메모로 문서 초안 쓰기, 정보를 모아 표 만들기 같은 일이에요. Cowork 는 Claude 유료 요금제에서 쓸 수 있어요.

조금 더 알아보기

에이전트가 할 수 있는 일이 많을수록 내 지시가 더 중요해져요. 필요한 폴더만 열어 주고, 하면 안 되는 일(삭제, 보내기, 구매)을 말하고, 확실하지 않으면 멈추고 물어보라고 하고, 결과를 원본과 비교해 확인하세요. 소프트웨어 팀에서 배울 만한 습관이 교차 검증이에요. 같은 질문을 둘 이상의 AI 도구에 묻고, 답을 비교하고, 다수결이 아니라 근거로 결정하는 거예요. SONUB 개발자들도 이렇게 일해요. 질문 하나를 여러 AI 모델에 보내고, 모든 주장을 원본 파일에서 다시 확인해요.

내 말로 설명해 보기

에이전트 도구에게 줄 좋은 작업 지시서에 꼭 들어가야 할 네 가지를 적어 보세요.

설명과 비교하기

목표, 입력(어떤 파일이나 폴더인지), 기대하는 결과물, 그리고 한계(하면 안 되는 일, 언제 멈추고 물어봐야 하는지)예요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

에이전트 도구란 무엇인지(5분) → 한계를 정한 실시간 작업(15분) → 학생이 작업 지시서 설계하기(20분) → AI 두 곳의 답 교차 검증하기(10분).

화면으로 보여 주기

  1. Cowork 에 메모가 든 예제 폴더를 주고 한 쪽짜리 요약 문서를 부탁하세요. 어디에서 허락을 구하는지 짚어 주세요.
  2. 한계를 정한 작업 지시서를 보여 주세요. 어느 폴더인지, 어떤 결과물인지, 하면 안 되는 일, 언제 물어봐야 하는지가 들어 있어요.
  3. 같은 사실 질문을 AI 도구 두 개에 묻고, 답을 비교한 뒤 출처를 확인해 보세요.

학생 활동

  1. 실제로 해야 하는 일로 작업 지시서를 써 보세요. 목표, 입력 폴더, 기대하는 결과물, 하면 안 되는 일 세 가지가 들어가요.
  2. 쓸 수 있다면 Cowork 에서 실행하고 결과물 중 세 항목을 원본과 비교하세요. 쓸 수 없다면 AI 도구 두 개에 같은 질문을 하고 비교하세요.

완료 기준

지시서에 목표, 입력, 결과물, 한계가 들어 있고, 학생이 직접 확인한 항목을 하나 이상 말할 수 있으면 돼요.

학생이 막힐 때

  • 유료 요금제가 없을 때: 작업 지시서를 쓰고 교차 검증 활동은 무료 도구로 하세요. 계획하는 능력은 똑같아요.
  • 에이전트가 엉뚱한 파일을 건드렸을 때: 원본 대신 폴더 사본을 주고 접근 범위를 좁히세요.

함께 생각할 질문

  • 처음에는 왜 에이전트가 내 파일의 사본으로 일하게 해야 할까요?
  • AI 도구들의 답이 서로 다를 때 왜 다수결이 아니라 근거로 결정해야 할까요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 27 · 고급 · 계속 일하는 에이전트

Goal 과 Ralph Loop: 정말 끝날 때까지 에이전트가 계속 일하게 하기

목표

끝나는 기준이 분명한 목표를 정하고, 목표를 이룰 때까지 에이전트를 반복해서 실행하고, 확인, 한도, 예산으로 안전하게 멈출 수 있어요.

보통 에이전트는 한 번 답하고 멈춰요. 목표(goal)는 요청 하나를 긴 작업으로 바꿔요. 목표와 끝나는 기준을 말해 주면, 에이전트는 단계마다 진행 상황을 확인하며 계속 일해요. Codex 에서는 /goal 명령이에요. /goal 뒤에 결과를 적으면 목표가 정해지고, /goal 만 입력하면 목표를 보여 주고, /goal pause, resume, clear 로 다뤄요. 목표의 상태는 진행 중, 일시 정지, 완료, 예산 한도 도달 중 하나이고, 테스트 통과 같은 증거가 뒷받침할 때만 완료로 표시할 수 있어요. 는 같은 생각을 간단한 요령으로 만든 거예요. 에이전트가 끝내려고 할 때 Stop 훅이 붙잡아서 같은 프롬프트를 다시 넣어 줘요. 에이전트는 파일과 Git 기록에서 자기가 앞서 한 일을 보고, 한 바퀴 한 바퀴 그것을 더 낫게 만들어요.

조금 더 알아보기

루프는 끝나는 기준만큼만 좋아요. "더 좋게 만들어 줘"는 끝나지 않지만, "tests/ 의 모든 테스트가 통과하고 페이지가 오류 없이 열린다"는 확인할 수 있어요. 언제나 한도를 정하세요. 최대 바퀴 수, 사실일 때만 에이전트가 말할 수 있는 완료 문구, 또는 토큰 예산이에요. 그러지 않으면 루프가 밤새 돌면서 쓸데없이 돈을 쓸 수 있어요. 루프는 새 Git 브랜치에서 시작하고, 프로젝트 규칙은 CLAUDE.md 나 AGENTS.md 에 두고, 결과는 직접 확인하세요. 에이전트가 말하는 "다 했어요"는 주장일 뿐 증거가 아니에요.

터미널에 입력할 명령
# Codex — one long task with a finish line you can check
/goal All tests in tests/ pass and the homepage loads without errors
/goal               # show the goal and its status
/goal pause         # also: /goal resume, /goal clear

# Claude Code — Ralph Loop plugin: the same prompt again and again, with limits
/ralph-loop "Fix the failing tests in tests/. Say DONE only when all pass." --completion-promise "DONE" --max-iterations 5

이 명령은 이 페이지가 아니라 내 컴퓨터나 서버의 터미널에서 실행해요. 실행하기 전에 한 줄씩 읽어 보세요.

내 말로 설명해 보기

"홈페이지를 좋게 만들어 줘"를 루프를 위한 목표로 다시 써 보세요.

설명과 비교하기

예를 들면 이래요. "홈페이지가 HTML 검사기를 통과하고, 콘솔 오류가 없고, 390 px 너비에서 잘 읽히고, 모든 링크가 작동한다. 최대 8바퀴 뒤에는 멈춘다." 확인할 수 있는 조건과 한도가 있어요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

큰 일에는 왜 답 한 번으로 부족한지(5분) → 끝나는 기준이 있는 목표 쓰기(10분) → 한도를 정해 짧은 루프 돌리기(20분) → 루프가 한 일을 Git 에서 검토하기(15분).

화면으로 보여 주기

  1. Codex 에서 잴 수 있는 목표와 함께 /goal 을 입력하고, /goal 로 상태를 본 다음, 일시 정지해 보세요.
  2. Claude Code 에서 완료 문구와 최대 5바퀴로 Ralph Loop 를 시작하고, 바퀴 수를 세는 상태 파일을 보여 주세요.
  3. 루프가 끝난 뒤 git log 를 보여 주고, 끝나는 기준에 비추어 작업을 확인하세요.

학생 활동

  1. 막연한 요청 세 개("내 사이트 좋게 해 줘", "버그 고쳐 줘", "테스트 써 줘")를 확인할 수 있는 끝나는 기준이 있는 목표로 다시 써 보세요.
  2. 연습용 브랜치에서 최대 5바퀴짜리 루프를 한 번 돌리고, 바퀴마다 무엇이 바뀌었는지 적어 보세요.

완료 기준

목표에 확인할 수 있는 끝나는 기준과 한도가 있고, 루프가 스스로 멈췄고, 학생이 결과를 확인했으면 돼요.

학생이 막힐 때

  • 루프가 멈추지 않을 때: 루프를 취소하고, 최대 바퀴 수와 시험해 볼 수 있는 끝나는 기준을 더하세요.
  • 바퀴마다 앞 바퀴에서 한 일을 되돌릴 때: 목표가 분명하지 않은 거예요. 끝나는 기준을 테스트나 체크리스트로 쓰세요.

함께 생각할 질문

  • 루프에는 왜 끝나는 기준과 한도가 둘 다 필요할까요?
  • 에이전트가 다 했다고 해도 왜 작업을 직접 확인해야 할까요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 28 · 고급 · 계속 일하는 에이전트

VPS 와 tmux: 에이전트가 하루 24시간 일하게 하기

목표

작은 ()를 빌려 로 접속하고, 접속을 끊어도 계속 일하도록 안에서 에이전트를 실행하고, 서버와 키를 안전하게 지킬 수 있어요.

VPS 는 데이터 센터에서 빌리는 작은 컴퓨터예요. 내 노트북이 잠들어도 계속 켜져 있어요. 비밀번호 대신 SSH 키를 써서 ssh user@address 로 접속하고, 도구(Git, Node.js, Python, 에이전트)를 설치하고, 프로젝트를 복제해요. SSH 세션에서 에이전트를 바로 시작하면 연결이 끊길 때 에이전트도 멈춰요. tmux 가 이 문제를 해결해요. tmux new -s agent 로 세션을 열고, 그 안에서 에이전트를 시작하고, Ctrl+b 를 누른 다음 d 를 눌러 세션에서 빠져나와요. 나중에 tmux attach -t agent 를 입력하면 같은 화면으로 돌아와요. tmux ls 는 세션 목록을 보여 줘요.

조금 더 알아보기

밤새 일하는 에이전트에게는 안전장치가 필요해요. 끝나는 기준과 한도가 있는 분명한 목표를 주고, 브랜치에서 실행하고, 커밋하게 해서 아침에 작업을 검토할 수 있게 하세요. API 키는 저장소가 아니라 환경 변수에 두고, AI 제공 회사에서 지출 한도를 정하세요. 서버도 지키세요. SSH 키로만 접속하고, 방화벽을 켜고, 정기적으로 업데이트하세요. tmux attach 로 들어가거나 Git 기록을 읽어서 세션을 확인하고, Ctrl+C 나 tmux kill-session -t agent 로 멈추세요.

터미널에 입력할 명령
ssh user@address               # log in with an SSH key, not a password
tmux new -s agent              # open a session called "agent"
claude                         # start the agent with a goal and a limit
# press Ctrl+b, then d         -> detach; the agent keeps working
exit                           # log out — the session stays on the server

ssh user@address
tmux ls                        # list sessions
tmux attach -t agent           # back to the same screen
tmux kill-session -t agent     # stop it for good

이 명령은 이 페이지가 아니라 내 컴퓨터나 서버의 터미널에서 실행해요. 실행하기 전에 한 줄씩 읽어 보세요.

내 말로 설명해 보기

agent 라는 tmux 세션을 시작하고, 계속 돌게 둔 채 빠져나왔다가, 나중에 다시 돌아오는 명령을 써 보세요.

설명과 비교하기

tmux new -s agent 를 실행하고, 프로그램을 시작하고, Ctrl+b 를 누른 다음 d 를 눌러 빠져나와요. 나중에 다시 로그인해서 tmux attach -t agent 를 실행해요. 이름을 잊어버렸다면 tmux ls 가 세션 목록을 보여 줘요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

왜 서버일까: 언제나 켜져 있고 언제나 온라인(5분) → 키로 SSH 접속하기(10분) → tmux new, 빠져나오기, 다시 붙기(15분) → 한도를 정한 에이전트 루프를 시작하고 나중에 확인하기(20분).

화면으로 보여 주기

  1. ssh 로 접속해서 tmux new -s agent 를 실행하고, 오래 걸리는 명령을 시작하고, Ctrl+b d 를 누르고, 로그아웃했다가 다시 로그인해서 tmux attach -t agent 를 실행해 보세요.
  2. tmux 안에서 연습용 브랜치에 목표와 바퀴 한도를 준 에이전트를 시작하세요.
  3. API 키를 두는 곳(환경 변수)과 AI 제공 회사의 지출 한도 페이지를 보여 주세요.

학생 활동

  1. 내 컴퓨터나 VPS 에서 tmux 를 연습하세요. 세션 만들기, 빠져나오기, 세션 목록 보기, 다시 붙기, 세션 끝내기예요.
  2. 밤샘 실행 계획을 써 보세요. 목표와 끝나는 기준, 한도, 브랜치, 어떻게 확인할지, 어떻게 멈출지 적어요.

완료 기준

tmux 로 접속을 끊은 뒤에도 프로그램이 계속 돌게 할 수 있고, 한도와 검토 단계가 있는 안전한 밤샘 실행 계획이 있으면 돼요.

학생이 막힐 때

  • 다시 붙을 때 "no sessions"가 나올 때: 세션이 끝났거나 서버가 다시 시작된 거예요. tmux ls 로 확인하고 새 세션을 시작하세요.
  • SSH 가 비밀번호를 묻거나 접속을 거부할 때: 서버에 내 공개 키를 더하고, 그 키에 맞는 사용자로 접속하세요.

함께 생각할 질문

  • SSH 연결이 끊기면 왜 프로그램이 멈추고, tmux 는 어떻게 그것을 막을까요?
  • 밤새 일하는 에이전트에게 꼭 있어야 할 한도 세 가지는 무엇일까요?
출처와 더 읽을거리
챕터 목록
챕터 29 · 마스터 · 나만의 LLM 만들기

숫자·예측·활성화 함수

목표

작은 함수를 만들고 출력의 의미를 설명해요.

평균·최댓값·기준값 분류기부터 시작해요. max는 가장 큰 값, argmax는 그 값의 위치를 반환해요. 단일 정답 분류에서는 그 위치로 최고 점수 범주를 고를 수 있어요. 점수라고 모두 잘 보정된 확률은 아니에요. 판정 기준을 바꾸면 양성으로 분류되는 예가 달라질 수 있어요.

조금 더 알아보기

뉴런은 입력을 z = w·x + b로 합치고 를 적용할 수 있어요. sigmoid는 유한한 실수를 0과 1 사이로 보내는 한 가지 함수이며 모든 뉴런의 정의는 아니에요. 다른 신경망은 ReLU·GELU도 써요. sigmoid 구현은 부품을 만드는 것이지 학습된 신경망을 완성하는 것이 아니에요. 이어지는 미션에서 데이터로 학습한 모델을 다루며, 예제 통과만으로 일반화를 증명할 수는 없어요.

내 말로 설명해 보기

[0.2, 0.7, 0.1]에서 위치를 0부터 셀 때 max와 argmax의 결과는 무엇일까요?

설명과 비교하기

max = 0.7, argmax = 1이에요. 값과 위치는 서로 다른 출력이에요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

평균, max, argmax(10분) → 기준값과 활성화(10분) → 학생이 AI 실습실 미션 풀기(20분) → 스스로 확인하기(10분).

화면으로 보여 주기

  1. [0.2, 0.7, 0.1] 에서 max, argmax, 그리고 argmax 가 고르는 분류를 보여 주세요.
  2. 판정 기준값을 0.5 에서 0.3 으로 옮기고, 어떤 예시의 분류가 바뀌는지 보여 주세요.

학생 활동

  1. AI 실습실 코드 모드에서 평균, 최댓값, 기준값 미션을 끝내 보세요.

완료 기준

max 와 argmax 의 차이, 그리고 점수가 저절로 확률이 되는 것은 아닌 이유를 설명할 수 있으면 돼요.

학생이 막힐 때

  • argmax 답이 하나씩 어긋날 때: Python 은 자리를 0 부터 센다는 것을 다시 알려 주세요.

함께 생각할 질문

  • 의사는 왜 경고용 검사의 기준값을 더 낮게 정할 수도 있을까요?
출처와 더 읽을거리
챕터 목록
챕터 30 · 마스터 · 나만의 LLM 만들기

작은 모델 학습과 평가

목표

학습과 평가를 분리하고 점수가 의미하는 한계를 설명해요.

scikit-learn으로 ·분류 모델을 학습해요. 붓꽃 데이터는 꽃받침 길이·너비와 꽃잎 길이·너비, 네 특징을 가져요. 먼저 데이터를 나누고 학습용으로 fit한 뒤 남겨둔 예제로 평가하세요. 학습 점수가 높아도 새 데이터 성능은 나쁠 수 있으며 이를 이라고 해요. 전처리도 에만 맞춰 평가 정보가 학습으로 새지 않게 하세요.

조금 더 알아보기

이웃 수 k와 트리 깊이는 학습 밖에서 선택하는 이고, 회귀 계수는 학습된 파라미터가 될 수 있어요. 설정은 검증 데이터나 교차검증으로 고르고 테스트 데이터는 에 남겨두세요. 테스트 점수를 보며 계속 조정하면 평가가 낙관적으로 치우쳐요. 데이터 분할·기준 모델·점수·오류 사례를 기록하세요. 작은 붓꽃 실험은 첫 프로젝트이며 모든 집단과 문제에 대한 성능 증명은 아니에요.

내 말로 설명해 보기

학습한 데이터에서 100%를 맞힌 모델은 다음에 무엇을 확인해야 할까요?

설명과 비교하기

적절한 미학습 데이터에서 평가하고 오류·데이터 누수를 확인해요. 학습 정확도만으로는 부족해요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

칠판에서 학습용과 시험용 데이터 나누기(10분) → 모델을 학습시키고 평가하기(15분) → 학생이 학습 점수와 시험 점수 비교하기(15분) → 스스로 확인하기(10분).

화면으로 보여 주기

  1. 작은 표를 학습용 줄과 시험용 줄로 나누고, 앞부분으로 학습한 뒤 뒷부분으로 점수를 매겨 보세요.
  2. 학습 데이터에서는 100% 를 맞히지만 시험 데이터에서는 더 못하는 모델을 보여 주고, 이것을 과적합이라고 불러 주세요.

학생 활동

  1. 회귀 미션과 분류 미션을 끝내고 학습 점수와 시험 점수를 적어 보세요.

완료 기준

학습 데이터의 점수만으로는 부족한 이유를 설명할 수 있으면 돼요.

학생이 막힐 때

  • 데이터 누수: 크기 조정 같은 전처리는 학습용 데이터로만 맞춰야 해요.

함께 생각할 질문

  • 내 모델이 학습 데이터에서 100% 를 맞혔어요. 다음에는 무엇을 확인해야 할까요?
출처와 더 읽을거리
챕터 목록
챕터 31 · 마스터 · 나만의 LLM 만들기

LLM 만들기 1: 글자, 세기, 첫 생성기

목표

글자 토크나이저로 글을 숫자로 바꾸고, 어떤 글자 뒤에 어떤 글자가 오는지 세고, 그 횟수로 새 글을 만들 수 있어요.

모든 언어 모델은 글을 숫자로 바꾸는 데서 시작해요. 가장 간단한 토크나이저는 글자마다 ID 를 하나씩 줘요. 가장 간단한 모델인 바이그램 모델은 각 글자 뒤에 다른 글자가 몇 번 오는지 세고, 그 횟수를 확률로 바꿔요. 글을 만들 때는 그 확률에 따라 다음 글자를 고르고, 덧붙이고, 이것을 되풀이해요. 아래 코드를 실행해 보세요. ID, "h" 뒤에 올 가능성이 가장 높은 글자들, 만들어 낸 글, 그리고 손실을 출력해요.

조금 더 알아보기

손실은 실제 다음 글자를 보고 모델이 얼마나 놀랐는지를 재요. 그 확률에 로그를 취하고 마이너스를 붙인 값의 평균이에요. 완벽한 모델이라면 손실이 0 이에요. 실제 LLM 은 여러 글자로 된 토큰을 쓰고 훨씬 긴 문맥을 보지만, 도는 순서는 같아요. 글 → ID → 다음 토큰의 확률 → 하나 고르기 → 되풀이.

예제 코드 브라우저에서 Python 과 NumPy 로 실행돼요. 코드를 바꾸고 다시 실행해 보세요.

내 말로 설명해 보기

표에 따르면 "t" 뒤에는 "h"가 0.7, "e"가 0.3 의 확률로 와요. 모델이 "t" 다음 글자를 만들 때 어떤 일이 일어날까요?

설명과 비교하기

그 확률에 따라 무작위로, 10 번 중 7 번쯤은 "h"를, 3 번쯤은 "e"를 골라요. 그리고 고른 글자에서 이어서 계속 만들어요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

칠판에서 글을 숫자로 바꾸기(10분) → 코드를 실행하고 출력 읽기(10분) → 학생이 글과 시작 글자 바꾸기(20분) → 손실 이야기하기(10분).

화면으로 보여 주기

  1. 코드를 실행하고 출력된 줄을 하나씩 설명해 주세요. 어휘, encode 와 decode, "h" 뒤의 확률, 만들어 낸 글, 손실이에요.
  2. 학습할 글을 다른 문체의 몇 문장으로 바꾸고 다시 실행해서, 만들어지는 글이 어떻게 달라지는지 보여 주세요.
  3. probs 줄을 짚고 모든 행의 합이 1 이라는 것을 보여 주세요.

학생 활동

  1. 글을 내가 쓴 세 문장으로 바꾸고, 원하는 글자에서 시작해 40 글자를 만들어 보세요.
  2. 내 글에서 "e" 뒤에 가장 자주 오는 글자를 찾고, 손으로 세어서 확인해 보세요.

완료 기준

내 글로 코드를 실행하고, 확률 표의 한 행이 무슨 뜻인지 설명할 수 있으면 돼요.

학생이 막힐 때

  • 글을 만들 때 KeyError 가 날 때: 시작 글자가 글 안에 없는 거예요. 글에 나오는 글자를 고르세요.
  • 출력이 엉터리처럼 보일 때: 당연한 결과예요. 바이그램 모델은 바로 앞 글자 하나만 보거든요.

함께 생각할 질문

  • 모델은 왜 글을 숫자로 바꿔야 할까요?
  • 손실이 0 이라면 무슨 뜻일까요?
출처와 더 읽을거리
챕터 목록
챕터 32 · 마스터 · 나만의 LLM 만들기

LLM 만들기 2: 스스로 배우는 신경망

목표

세기를 작은 신경망으로 바꿔요. 이 신경망은 으로 임베딩과 가중치를 배우고, 앞의 세 글자를 문맥으로 봐요.

세기 표는 크기가 폭발하지 않고는 더 앞을 볼 수 없지만, 신경망은 볼 수 있어요. 글자마다 학습되는 벡터, 즉 임베딩이 있어요. 모델은 마지막 세 글자의 벡터를 이어 붙여 은닉층에 통과시키고, 다음에 올 수 있는 모든 글자에 대한 점수를 내요. softmax 가 그 점수를 확률로 바꿔요. 학습은 예측을 실제 다음 글자와 비교해 손실을 계산하고, 모든 가중치를 손실이 줄어드는 방향으로 조금씩 옮기는 거예요. 그 한 걸음이 경사 하강법이고, 역전파가 그 방향을 계산해요.

조금 더 알아보기

단계가 지날수록 손실이 줄어드는 것을 보세요. 신경망이 배우고 있다는 뜻이에요. 이제 더 많은 문맥을 보기 때문에 만들어 낸 글이 진짜 단어 모양을 갖춰요. temperature 는 생성이 얼마나 모험적일지를 정해요. 1 보다 낮으면 더 안전한 글자를 고르고, 1 보다 높으면 더 과감해져요. 큰 LLM 은 가중치가 수십억 개이고 로 엄청난 양의 글을 학습하지만, 학습 한 단계 한 단계는 이것과 똑같은 생각이에요.

예제 코드 브라우저에서 Python 과 NumPy 로 실행돼요. 코드를 바꾸고 다시 실행해 보세요.

내 말로 설명해 보기

temperature 를 0.8 에서 0.2 로 낮추면 만들어지는 글은 어떻게 되고, 왜 그럴까요?

설명과 비교하기

더 반복적이고 안전한 글이 돼요. 점수를 작은 temperature 로 나누면 가장 가능성 높은 글자의 확률이 다른 글자보다 훨씬 커지기 때문이에요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

칠판에서 임베딩과 은닉층 보기(10분) → 코드를 실행하고 손실 지켜보기(10분) → 학생이 temperature 와 글 바꾸기(20분) → 학습 한 단계 설명하기(10분).

화면으로 보여 주기

  1. 코드를 실행하고 50 단계마다 손실이 줄어드는 것을 짚어 주세요.
  2. generate() 의 temperature 를 0.3 으로, 그다음 1.5 로 바꿔서 글을 비교해 보세요.
  3. lr 을 5.0 으로 바꾸고 다시 실행해서, 한 걸음이 너무 크면 학습이 불안정해진다는 것을 보여 주세요.

학생 활동

  1. 학습할 글을 내 문장으로 바꾸고 다시 학습시킨 뒤, 마지막 손실을 적어 보세요.
  2. temperature 두 가지를 시험하고 차이를 한 문장으로 설명해 보세요.

완료 기준

손실이 줄어드는 것을 보여 주고, 임베딩과 학습 한 단계가 무엇인지 설명할 수 있으면 돼요.

학생이 막힐 때

  • 손실이 nan 이 될 때: 학습률이 너무 높아요. lr 을 0.5 이하로 낮추세요.
  • 내 글로 생성이 안 될 때: 시작 문자열은 글에 나오는 세 글자여야 해요.

함께 생각할 질문

  • 역전파는 무엇을 계산하나요?
  • 문맥이 길수록 왜 글이 진짜 단어처럼 보일까요?
출처와 더 읽을거리
챕터 목록
챕터 33 · 마스터 · 나만의 LLM 만들기

LLM 만들기 3: 트랜스포머의 심장, 어텐션

목표

셀프 어텐션을 더해서 모든 위치가 앞의 글자들을 돌아보고 어느 글자가 중요한지 정하게 한 뒤, 학습시키고 들여다볼 수 있어요.

오늘날 LLM 의 바탕 구조인 트랜스포머는 어텐션 위에 세워져 있어요. 모델은 위치마다 쿼리(나는 무엇을 찾고 있지?)를 만들고, 앞의 모든 위치는 키(나는 무엇을 담고 있지?)와 값(나는 무엇을 넘겨주지?)을 내놓아요. 쿼리와 키를 비교하면 합이 1 인 어텐션 가중치가 나오고, 출력은 그 가중치로 값들을 섞은 거예요. 인과 마스크는 어떤 위치가 자기 뒤에 오는 글자를 보지 못하게 막아서 모델이 답을 훔쳐보지 못하게 해요. 위치 임베딩은 각 글자가 어디에 있는지 모델에게 알려 줘요.

조금 더 알아보기

이 코드는 문맥이 여덟 글자인 어텐션 헤드 하나를 NumPy 만으로 학습시키고, 마지막 글자의 어텐션 가중치를 출력해요. 그래서 그 글자가 앞의 어느 글자에 기대는지 볼 수 있어요. 진짜 트랜스포머는 헤드가 여러 개인 층을 여러 겹 쌓고, 피드포워드 층과 정규화를 더하고, Adam 같은 옵티마이저로 훨씬 많은 글을 학습해요. 나머지 전부, 즉 토큰, 임베딩, softmax, 손실, 경사 하강법, 샘플링은 이제 여러분이 직접 만들어 봤어요.

예제 코드 브라우저에서 Python 과 NumPy 로 실행돼요. 코드를 바꾸고 다시 실행해 보세요.

내 말로 설명해 보기

쿼리, 키, 값이 하는 일을 각각 한 문장으로 말해 보세요.

설명과 비교하기

쿼리는 지금 위치가 무엇을 찾는지 나타내요. 키는 앞의 각 위치가 무엇을 담고 있는지 나타내서 쿼리와 맞춰 볼 수 있게 해요. 값은 그렇게 맞는 정도에 비례해서 넘겨지는 정보예요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

일상의 예로 보는 쿼리, 키, 값(10분) → 코드를 실행하고 손실과 어텐션 가중치 읽기(10분) → 학생 실험(20분) → 실제 LLM 과 연결하기(10분).

화면으로 보여 주기

  1. 문장으로 어텐션을 설명해 주세요. "the dog ran because it was scared(개가 겁을 먹어서 달아났다)"에서 "it"은 "dog"에 주목해요.
  2. 코드를 실행하고 마지막 글자의 어텐션 가중치를 읽어 보세요. 앞의 어느 위치가 가장 큰 가중치를 받나요?
  3. 마스크를 없애고(0 을 곱해서) 모델이 답을 볼 수 있기 때문에 손실이 수상할 만큼 낮게 떨어지는 것을 보여 주세요.

학생 활동

  1. 내 글로 학습시키고, 원하는 시작 문자열로 글을 만들어 보세요.
  2. X[10:11] 같은 다른 예의 어텐션 가중치를 출력하고, 마지막 글자가 어디에 주목하는지 설명해 보세요.

완료 기준

모델을 학습시켜 손실이 줄어드는 것을 보여 주고, 쿼리, 키, 값, 인과 마스크를 내 말로 설명할 수 있으면 돼요.

학생이 막힐 때

  • T 를 바꾼 뒤 shape 오류가 날 때: 마스크와 창이 모두 T 에 따라 정해지니 T 는 한 곳에서만 바꾸세요.
  • 오래된 기기에서 학습이 느릴 때: 단계 수를 200 으로 줄이세요. 그래도 손실은 줄어들어요.

함께 생각할 질문

  • 모델에는 왜 인과 마스크가 필요할까요?
  • 한 위치의 어텐션 가중치를 모두 더하면 얼마가 될까요?
출처와 더 읽을거리
챕터 목록
챕터 34 · 마스터 · 나만의 LLM 만들기

내 컴퓨터에서 GPT 만들기: 작은 GPT-2

목표

Python 과 PyTorch 로 GPT-2 와 같은 설계의 작은 GPT 를 내 컴퓨터에서 학습시키고, 손실이 줄어드는 것을 지켜보고, 내 모델로 글을 만들 수 있어요.

GPT-2 는 트랜스포머 블록을 쌓은 거예요. 토큰 임베딩과 위치 임베딩이 있고, 그다음 셀프 어텐션과 작은 신경망으로 된 층들이 있고, 마지막 층은 다음에 올 수 있는 모든 토큰에 점수를 매겨요. 가장 작은 GPT-2 도 파라미터가 약 1억 2,400만 개이고, 큰 GPU 로 며칠 동안 수십억 개의 토큰을 학습했어요. 노트북에는 너무 커요. 하지만 같은 설계를 작게 만들면 노트북에서도 정말 학습시킬 수 있어요. 층 4개, 어텐션 헤드 4개, 숫자 128개짜리 임베딩(파라미터 약 80만 개)이면 셰익스피어 같은 작은 글로 CPU 에서 약 3분 만에 배워요. Andrej Karpathy 의 오픈 소스 nanoGPT 는 이것을 위한 대표적인 짧은 코드예요. 데이터를 준비하고, 학습 스크립트를 실행하고, 글을 샘플링해요. 지금은 만든 사람이 nanoGPT 를 오래된 것으로 표시하고 더 새로운 풀스택 프로젝트인 nanochat 을 안내하지만, 몇백 줄로 GPT-2 방식 모델을 보기에는 nanoGPT 가 여전히 가장 알기 쉬워요.

조금 더 알아보기

학습은 한 단계를 되풀이해요. 글 한 묶음(배치)을 가져와서, 각각의 다음 토큰을 예측하고, 오차(손실)를 재고, 손실이 작아지도록 모든 파라미터를 조금씩 옮겨요. 숫자 두 개를 지켜보세요. 학습 손실, 그리고 모델이 본 적 없는 글에 대한 검증 손실이에요. 학습 손실만 줄어든다면 모델이 외우고 있는 거예요. 학습이 끝나면 모든 파라미터가 담긴 체크포인트 파일이 생겨요. Mac 에서는 mps 장치를, NVIDIA 그래픽 카드에서는 cuda 를 쓰고, 그 밖에는 더 작은 모델로 cpu 를 쓰세요. 이 챕터 앞의 브라우저 챕터들에서는 같은 부품을 NumPy 로 손수 만들었어요. 여기서는 그 부품들을 실제 크기로 써요.

터미널에 입력할 명령
git clone https://github.com/karpathy/nanoGPT
cd nanoGPT
pip install torch numpy transformers datasets tiktoken wandb tqdm

python data/shakespeare_char/prepare.py      # text -> characters -> numbers

# a small GPT on the CPU (about 3 minutes); on a Mac use --device=mps
python train.py config/train_shakespeare_char.py --device=cpu --compile=False \
    --eval_iters=20 --log_interval=1 --block_size=64 --batch_size=12 \
    --n_layer=4 --n_head=4 --n_embd=128 --max_iters=2000 \
    --lr_decay_iters=2000 --dropout=0.0

python sample.py --out_dir=out-shakespeare-char --device=cpu

이 명령은 이 페이지가 아니라 내 컴퓨터나 서버의 터미널에서 실행해요. 실행하기 전에 한 줄씩 읽어 보세요.

내 말로 설명해 보기

GPT 의 주요 부분 세 가지와 각각 하는 일을 말해 보세요.

설명과 비교하기

임베딩은 토큰과 위치를 벡터로 바꿔요. 트랜스포머 블록(셀프 어텐션과 작은 신경망)은 토큰들 사이에 정보를 섞어요. 출력 층은 마지막 벡터를 다음에 올 수 있는 모든 토큰의 점수로 바꿔요. 그다음 샘플링이 다음 토큰을 골라요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

브라우저 챕터 세 개에서 GPT-2 로: 같은 블록을 더 크게(10분) → Python 과 PyTorch 준비하기(10분) → 데이터 준비하고 학습 시작하기(15분) → 글을 샘플링하고 손실 곡선 읽기(15분).

화면으로 보여 주기

  1. GPT-2 블록 그림을 보여 주고, 각 부분을 LLM 만들기 챕터와 짝지어 주세요. 임베딩, 어텐션, 다음 토큰 점수예요.
  2. nanoGPT 의 셰익스피어 글자 단위 학습을 작은 CPU 설정으로(약 3분) 실행하고, 출력되는 학습 손실과 검증 손실을 보여 주세요.
  3. 초기 체크포인트와 마지막 체크포인트로 각각 글을 만들어 비교해 보세요.

학생 활동

  1. 작은 모델을 내 컴퓨터(또는 무료 클라우드 노트북)에서 학습시키고, 처음과 끝의 손실 값을 적어 두세요.
  2. 설정 하나(층 수, 임베딩 크기, 학습 단계 수)를 바꾸고, 손실과 글이 어떻게 달라졌는지 적어 보세요.

완료 기준

모델을 학습시켰고, 체크포인트가 있고, 손실이 줄어드는 것을 보여 줄 수 있고, 학습 손실과 검증 손실의 차이를 설명할 수 있으면 돼요.

학생이 막힐 때

  • 메모리가 부족할 때: 배치 크기, 블록 크기, 층 수를 줄이세요.
  • CPU 에서 학습이 아주 느릴 때: 모델을 더 작게 만들거나, GPU 가 있는 무료 클라우드 노트북을 쓰세요.

함께 생각할 질문

  • 같은 GPT-2 설계가 왜 훨씬 작은 크기에서도 작동할까요?
  • 학습 손실은 계속 줄어드는데 검증 손실이 올라가면 무슨 뜻일까요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 35 · 마스터 · 내 모델을 어디서나 실행하기

러너: 모델에 생명을 불어넣는 프로그램

목표

가 하는 일(가중치 불러오기, 토큰으로 나누기, 모델을 한 단계씩 실행하기, 샘플링, )을 설명하고, llama.cpp 나 Ollama 로 모델을 실행할 수 있어요.

학습한 모델은 숫자가 담긴 파일일 뿐이에요. 러너는 그 파일을 쓰는 프로그램이에요. 가중치를 에 불러오고, 모델의 토크나이저로 내 글을 토큰으로 바꾸고, 모델을 실행해 다음 토큰의 점수를 얻고, temperature 같은 설정으로 토큰 하나를 샘플링하고, 그것을 글에 덧붙이고, 되풀이해요. 새 토큰은 나오는 대로 화면에 하나씩 보여 줘요(스트리밍). 앞에서 한 계산을 ()에 남겨 두어 새 토큰을 빨리 만들고, 모델이 학습할 때 쓴 채팅 템플릿도 적용해요. ChatGPT, Ollama, llama.cpp 는 모두 모델을 감싼 러너예요.

조금 더 알아보기

러너마다 실행되는 곳과 읽는 파일 형식이 달라요. PyTorch 는 내 학습 체크포인트를 바로 실행하고, llama.cpp 와 Ollama 는 보통 컴퓨터와 휴대폰에서 파일을 실행해요. 브라우저와 휴대폰은 ONNX 나 Apple 과 Google 의 자체 을 쓸 수도 있어요. 많은 러너가 로컬 API 를 제공해서, 내 앱이 클라우드 API 와 이야기하는 것과 똑같이 내 컴퓨터의 모델과 이야기할 수 있어요. 키도 필요 없고 데이터가 컴퓨터 밖으로 나가지도 않아요. 내 nanoGPT 체크포인트는 변환 단계를 거치면 이런 엔진에서 실행할 수 있어요. 그 변환은 다음 챕터에서 해요.

터미널에 입력할 명령
# a runner on your computer: download a small open model and chat
ollama run llama3.2:1b

# the same runner as a local API — no key, nothing leaves the machine
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2:1b",
  "prompt": "Explain a token in one sentence."
}'

이 명령은 이 페이지가 아니라 내 컴퓨터나 서버의 터미널에서 실행해요. 실행하기 전에 한 줄씩 읽어 보세요.

내 말로 설명해 보기

러너가 새 토큰을 하나씩 만들 때마다 되풀이하는 단계를 적어 보세요.

설명과 비교하기

지금까지의 글을 (토큰으로) 가져와서, 모델을 실행해 다음에 올 수 있는 모든 토큰의 점수를 얻고, 점수를 확률로 바꾸고, (temperature 같은 설정을 써서) 토큰 하나를 샘플링하고, 그것을 덧붙여 보여 준 다음, 멈춤 토큰이나 길이 한도까지 되풀이해요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

가중치는 숫자일 뿐: 무엇이 빠졌을까?(5분) → 러너의 반복을 한 단계씩(15분) → Ollama 나 llama.cpp 로 작은 오픈 모델 실행하기(20분) → 로컬 API 부르기(10분).

화면으로 보여 주기

  1. 칠판에 러너의 반복을 쓰세요. 토큰으로 나누기 → 모델 → 점수 → 샘플링 → 덧붙이기 → 되풀이. 그리고 샘플링 챕터와 연결해 주세요.
  2. 작은 오픈 모델을 내 컴퓨터에서 실행하고(예를 들어 파라미터 10억 개짜리 모델로 ollama run), 토큰이 하나씩 흘러나오는 것을 보여 주세요.
  3. curl 로 로컬 API 를 부르고, 같은 답이 JSON 으로 돌아오는 것을 보여 주세요.

학생 활동

  1. 러너의 반복을 내 말로 번호를 붙인 단계로 쓰고, temperature 가 쓰이는 곳을 표시해 보세요.
  2. 내 컴퓨터에서 작은 오픈 모델을 실행하고, 1초에 토큰을 몇 개 만드는지 재어 보세요.

완료 기준

러너 반복의 각 단계를 설명할 수 있고, 로컬 모델을 실행해 봤고, 러너가 로컬 API 를 제공할 수 있다는 것을 알면 돼요.

학생이 막힐 때

  • 모델이 너무 느리거나 메모리에 들어가지 않을 때: 더 작은 모델이나 더 강하게 양자화한 파일을 고르세요.
  • 답이 이상해 보일 때: 채팅 템플릿이나 토크나이저가 모델과 맞지 않는 거예요. 모델과 함께 온 파일을 쓰세요.

함께 생각할 질문

  • 가중치 파일만으로는 왜 모델과 대화할 수 없을까요?
  • 클라우드 API 대신 내 컴퓨터에서 모델을 실행하면 어떤 점이 좋을까요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 36 · 마스터 · 내 모델을 어디서나 실행하기

휴대폰 속 내 LLM: 변환하고, 줄이고, 넣기

목표

모델을 휴대폰에 맞는 형식으로 변환하고, 로 줄이고, 러너와 함께 앱에 넣어서, 내 휴대폰에서 인터넷 없이 쓸 수 있어요.

휴대폰은 메모리가 적어서 모델이 작고 압축되어 있어야 해요. 양자화는 각 파라미터를 더 적은 비트로 저장하는 거예요. 예를 들어 16 비트 대신 4 비트로 저장하면, 품질은 조금만 떨어지면서 파일은 약 4분의 1 크기가 돼요. 보통 이렇게 해요. llama.cpp 의 변환 도구로 모델을 GGUF 로 바꾸고, 양자화하고(Q4_K_M 을 흔히 골라요), 먼저 내 컴퓨터에서 시험해요. 내가 만든 nanoGPT 도 이렇게 내보낼 수 있지만, 셰익스피어로 학습한 아주 작은 모델은 셰익스피어 같은 글만 써요. 쓸모 있는 도우미를 원한다면 파라미터가 약 10억~30억 개인 작은 오픈 모델에서 시작하세요.

조금 더 알아보기

휴대폰에서 쓰는 방법은 두 가지예요. 빠른 방법은 PocketPal AI 처럼 러너가 이미 들어 있는 앱에 GGUF 파일을 복사해서 인터넷 없이 대화하는 거예요. 만드는 사람의 방법은 내 앱에 러너를 넣는 거예요. 예를 들어 Native 앱에는 llama.rn 을, Flutter 앱에는 llama.cpp 바인딩을 넣고, 모델 파일을 앱과 함께 내보내거나 내려받게 한 다음, 내 코드에서 불러요. 모든 것이 휴대폰 안에 있어서 인터넷 없이도 작동하고 데이터도 지켜지지만, 클라우드보다 느리고 배터리를 쓰니 프롬프트는 짧게, 모델은 작게 하세요. 또 다른 방법은 러너를 내 컴퓨터에 두고 같은 Wi-Fi 에서 휴대폰으로 그 로컬 API 를 부르는 거예요. 더 쉽지만 그 컴퓨터 가까이에서만 작동해요. 앱에 모델을 넣는 것(임베드)과 임베딩 챕터에 나온 벡터인 임베딩을 헷갈리지 마세요. 휴대폰 속 작은 임베딩 모델로 내 메모를 검색할 수도 있어요.

터미널에 입력할 명령
# your own nanoGPT: train it with the GPT-2 tokenizer (data/shakespeare, not shakespeare_char)
# and save the weights as a Hugging Face GPT-2 folder (./my-model) — then it converts like any model

# llama.cpp: model folder -> GGUF (16-bit) -> 4-bit Q4_K_M
python convert_hf_to_gguf.py ./my-model --outfile my-model-f16.gguf
./llama-quantize my-model-f16.gguf my-model-Q4_K_M.gguf Q4_K_M
ls -lh my-model-*.gguf         # about four times smaller

# quick way: copy my-model-Q4_K_M.gguf into an offline chat app (e.g. PocketPal AI)
# builder's way: embed a runner in your app (llama.rn, a llama.cpp binding) and load the file

이 명령은 이 페이지가 아니라 내 컴퓨터나 서버의 터미널에서 실행해요. 실행하기 전에 한 줄씩 읽어 보세요.

내 말로 설명해 보기

내 컴퓨터에서 학습한 모델이 휴대폰 속 대화가 되기까지의 과정을 네 단계로 설명해 보세요.

설명과 비교하기

1. 모델을 GGUF 같은 휴대폰에 맞는 형식으로 변환해요. 2. 메모리에 들어가도록 양자화해요(예를 들어 4비트로). 3. 러너가 들어 있는 앱에 넣어요. 이미 있는 오프라인 채팅 앱이나 러너를 넣은 내 앱이에요. 4. 휴대폰에서 불러와 인터넷 없이 대화해요. 단계 사이사이에 컴퓨터에서 시험해 보는 것도 좋아요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

휴대폰에는 왜 작은 모델이 필요한지(5분) → 컴퓨터에서 변환하고 양자화하기(15분) → 휴대폰 앱에서 실행하기(15분) → 앱이 러너를 넣는 방법(15분).

화면으로 보여 주기

  1. 같은 모델의 16비트 파일과 4비트 파일 크기를 보여 주고, 둘 다 컴퓨터에서 시험해 보세요.
  2. 작게 양자화한 GGUF 모델을 휴대폰의 오프라인 채팅 앱에 불러오고, 비행기 모드를 켠 다음 대화해 보세요.
  3. 모델 파일을 불러오고 앱에 넣은 러너에서 토큰을 흘려보내는 앱 코드 몇 줄을 보여 주세요.

학생 활동

  1. 작은 오픈 모델을 하나 고르고, 양자화한 GGUF 파일을 찾아서, 내 휴대폰 메모리에 들어갈지 어림해 보세요.
  2. 그 모델을 휴대폰에서 인터넷 없이 실행하고, 속도(1초에 만드는 토큰 수)와 잘하는 것 하나, 못하는 것 하나를 적어 보세요.

완료 기준

변환, 양자화, 앱에 러너 넣기를 설명할 수 있고, 휴대폰에서 인터넷 없이 모델을 실행해 봤으면 돼요(휴대폰이 없다면 컴퓨터에서).

학생이 막힐 때

  • 모델을 불러올 때 앱이 멈출 때: 모델이 휴대폰 메모리에 비해 너무 큰 거예요. 더 작은 모델을 쓰거나 더 강하게 양자화하세요.
  • 휴대폰이 없을 때: 같은 GGUF 파일을 컴퓨터에서 llama.cpp 로 실행하세요. 단계는 똑같아요.

함께 생각할 질문

  • 4비트 양자화로 얻는 것과 잃는 것은 무엇일까요?
  • 기기 안에서 도는 모델은 왜 개인정보 보호에 좋을까요?
출처와 더 읽을거리

제품 정보는 2026-10-15 에 확인했어요. AI 도구는 빨리 바뀌니 공식 페이지와 비교해 보세요.

챕터 목록
챕터 37 · 마스터 · 마무리 프로젝트

마무리 프로젝트: AI 로 무언가 만들고 내 작업 보여 주기

목표

이 강좌의 도구로 작은 프로젝트를 계획하고 만들고 발표해요. 작동한다는 것을 보여 주는 Git 기록과 확인 결과도 함께요.

작고 쓸모 있는 프로젝트를 고르세요. 예를 들어 우리 반을 위한 퀴즈 생성기, 파일을 정리해 주는 스크립트, 취미를 소개하는 웹 페이지, 좋아하는 글로 학습시킨 나만의 작은 언어 모델 같은 것이에요. 한 쪽짜리 계획을 쓰세요. 목표, 사용자, 작동하는지 확인하는 방법이 들어가요. 코딩 에이전트와 작은 바퀴를 여러 번 돌며 만들고, 단계가 하나 작동할 때마다 커밋하고, AGENTS.md, CLAUDE.md 나 스킬로 에이전트가 내 규칙을 지키게 하세요. 마지막으로 GitHub 에 무엇을 만들었고 어떻게 써 볼 수 있는지 설명하는 풀 리퀘스트를 여세요.

조금 더 알아보기

발표는 코드만큼 중요해요. 계획, AI 가 무언가를 틀렸던 순간과 내가 그것을 알아챈 방법, 내가 실행한 테스트나 확인, 다음에 하고 싶은 일을 보여 주세요. 정직하게 밝히세요. 어느 부분을 내가 썼고, 어느 부분을 AI 가 썼고, 그것을 어떻게 확인했는지 말해요.

내 말로 설명해 보기

마지막 풀 리퀘스트의 설명에는 어떤 네 가지가 들어가야 할까요?

설명과 비교하기

프로젝트가 무엇을 하는지, 어떻게 실행하거나 써 볼 수 있는지, 어떻게 확인했는지(테스트나 예시), 그리고 어느 부분을 AI 의 도움으로 만들었는지예요.

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

이 챕터를 이해한 것으로 표시할까요?

아직 취소할 수 없으니, 정말 이해했을 때만 표시해 주세요.

이해한 것으로 표시했어요

스스로 표시하는 칸이에요. 여기서 채점하지는 않아요.

수업 진행 안내

이 챕터를 수업에서 진행하는 방법이에요. 학생도 읽어도 돼요.

수업 흐름

프로젝트 아이디어와 범위 정하기(15분) → 한 번 이상의 수업에 걸쳐 학생이 계획하고 만들기 → Git 기록과 시연을 곁들인 발표(한 사람당 약 10분).

화면으로 보여 주기

  1. 목표, 사용자, 확인 방법, 중간 목표 세 개가 담긴 예시 계획을 보여 주세요.
  2. 완성된 예시 저장소를 보여 주세요. 커밋들, CLAUDE.md 나 AGENTS.md, 설명이 분명한 풀 리퀘스트가 있어요.
  3. AI 의 실수 하나와 그것을 어떻게 잡아냈는지가 들어간 짧은 예시 발표를 해 주세요.

학생 활동

  1. 한 쪽짜리 계획을 쓰고, 만들기 시작하기 전에 강사의 승인을 받으세요.
  2. 커밋을 세 번 이상 하며 만들고, 설명과 써 보는 방법이 담긴 풀 리퀘스트를 여세요.

완료 기준

풀 리퀘스트가 있고, 프로젝트가 설명대로 작동하고, AI 의 실수 하나와 확인 하나를 설명할 수 있으면 돼요.

학생이 막힐 때

  • 프로젝트가 너무 클 때: 처음부터 끝까지 작동하는 기능 하나로 줄인 다음 더해 나가세요.
  • 코드는 작동하는데 학생이 설명하지 못할 때: 에이전트에게 한 줄씩 설명해 달라고 한 다음, 한 부분을 직접 다시 써 보세요.

함께 생각할 질문

  • 어떤 확인이 내 프로젝트가 작동한다는 가장 큰 믿음을 줬나요?
  • 어느 부분을 내가 했고, 어느 부분을 AI 가 했나요?

가이드라인

인공지능

AI 자격증

공부

바이브코딩

게임 개발

연습

튜터

채팅

게시판

만들기

소통

더보기

용어 사전

모르는 말을 골라 보세요. 쉬운 설명과 관련 용어를 볼 수 있어요.

찾는 용어가 아직 없어요.

용어를 고르면 설명이 보여요.