마이크로소프트가 만든 무료 입문 커리큘럼. LLM·프롬프트·RAG·함수 호출·에이전트·파인튜닝까지 코드와 함께 손에 잡히게 배운다.
왜 이 커리큘럼이 표준이 됐는가.
2023년부터 ChatGPT 열풍 이후 "GPT를 써서 앱을 만들고 싶은데 어디서부터 시작해야 할지 모르겠다"는 개발자가 폭증했다. 책은 출간 시점부터 낡고, 유튜브는 코드를 따라 치기 불편하고, 부트캠프는 비싸다. 마이크로소프트 클라우드 어드보킷 팀이 만든 이 레포는 — 개념 + 영상 + 실습 코드를 한 세트로 묶은 21개 레슨이다.
각 레슨은 두 종류로 나뉜다 — Learn(개념 설명, 예: "LLM이 뭔가?")과 Build(직접 코드 작성, 예: "RAG로 검색앱 만들기"). 같은 코드를 Python과 TypeScript 두 언어로 동시에 제공하기 때문에 백엔드 개발자든 웹 프론트엔드 개발자든 익숙한 언어로 따라갈 수 있다.
JSON을 반환하게 하는 기능. 외부 API·DB·계산기를 LLM이 부릴 수 있게 만든다. 요즘 말하는 "AI 에이전트"의 가장 기본적인 구현체.한 문장으로 줄이면.
단순 튜토리얼이 아니라 표준 커리큘럼이다. ★ 108k, 누적 트렌딩 78회. ai-agents-for-beginners, mcp-for-beginners 같은 자매 시리즈가 같은 포맷으로 계속 확장 중.
"입문서가 다 그렇지" 식으로 무시할 수 있는 책이 아니다 — Codespaces 원클릭 실행, Azure/OpenAI/GitHub Models 3가지 백엔드 동시 지원, AGENTS.md 같은 최신 표준 채택 등 교재이면서 동시에 모범 사례 모음집이다.
시대적 배경 + 경쟁 자료 대비 차별점.
TrendShift의 "역대 GitHub 트렌딩에 가장 자주 오른 레포지토리" 순위에서 3위, 누적 78번 트렌딩에 노출됐다. 별 개수만 108,000개 + 포크 57,700개. 그야말로 "AI를 처음 배운다면 일단 여기"가 된 레포다.
매주 업데이트되고, 최신 모델(Mistral, Meta Llama 등)이 신규 레슨으로 추가되며, GitHub Actions가 한국어 포함 50개 언어로 자동 번역해 준다. 한국어 페이지가 따로 있어서 영어 부담 없이 학습 가능하다는 점이 글로벌 채택의 결정적 무기.
| 비교 대상 | 한계 | 이 커리큘럼의 차이 |
|---|---|---|
| 유튜브 강의 | 코드 따라치기 불편 | fork → Codespaces 원클릭 실습 |
| 유료 부트캠프 | 수십~수백만 원 | 완전 무료 + MIT 라이선스 |
| 다른 OSS 튜토리얼 | 한 언어·한 API만 지원 | Python·TS 동시 + Azure/OpenAI/GitHub Models 3가지 |
| 책 | 출간 시점부터 낡음 | 매주 업데이트, 신규 모델 레슨 계속 추가 |
| 혼자 README 읽기 | 한국어 자료 부족 | 50개 언어 자동 번역 (한국어 포함) |
풀스택 웹개발(TypeScript)과 AI/LLM 양쪽에 관심 있는 사람에게 특히 적합하다. 6번(텍스트 앱), 7번(채팅 앱), 15번(RAG) 레슨이 TypeScript로 실제 Node 앱을 빌드한다 — 한 자료로 두 분야를 동시에 가르치는 보기 드문 케이스.
커리큘럼을 돌리는 기술 기반 전체 지도.
레포의 파일 구성은 Jupyter Notebook(.ipynb)이 가장 많고, 이후 레슨은 Python(.py)과 TypeScript(.ts/.js)로 진행된다. 같은 과제를 두 언어로 동시 제공해 백엔드·프론트 개발자 모두 익숙한 언어로 따라갈 수 있다.
requirements.txt.env 파일에서 API 키 로드 (12-factor 패턴)package.json| 항목 | 버전 / 조건 |
|---|---|
| Python | 3.10+ (pyproject.toml requires-python = '>=3.10'; 권장 3.12) |
| Node.js | Build 레슨별 별도 npm 프로젝트 (LTS 권장) |
| 라이선스 | MIT — 상업적 이용·수정·재배포 자유 |
| 패키지 크기 | Python requirements ~500MB, 로컬 LLM 추론 시 5~30GB 추가 |
"교재" 레포지만, 학습자가 따라 만드는 앱은 진짜 프로덕션 패턴.
┌─────────────────────────────────────────────────────────────────┐
│ 사용자 (브라우저 / CLI) │
└───────────────────────────┬─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 앱 코드 (Python 또는 TypeScript) │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ 1. .env 에서 API 키 로드 (python-dotenv / dotenv) │ │
│ │ 2. openai 클라이언트 초기화 │ │
│ │ 3. 프롬프트 작성 (system / user 메시지) │ │
│ │ 4. client.chat.completions.create(...) 호출 │ │
│ │ 5. 응답 파싱 → 화면/콘솔로 출력 │ │
│ └───────────────────────────────────────────────────────────┘ │
└───────────────────────────┬─────────────────────────────────────┘
│ HTTPS
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────────┐ ┌────────────────┐
│ OpenAI API │ │ Azure OpenAI │ │ GitHub Models │
│ (api.openai) │ │ (회사 엔드포인트)│ │ (무료, 학습용) │
└──────┬───────┘ └────────┬─────────┘ └────────┬───────┘
└──────────┬────────┴─────────────────────┘
▼
┌────────────────────────────┐
│ GPT-4o / GPT-3.5 / o1 │
│ text-embedding-3-large │
│ DALL-E 3, ... │
└────────────────────────────┘
같은 레슨 안에 aoai-app.py(Azure OpenAI), oai-app.py(OpenAI 직접), githubmodels-app.py(GitHub Models)가 나란히 있다. 비즈니스 로직은 동일하고 클라이언트 설정만 다르다는 것을 자연스럽게 익히게 한다.
API 키·엔드포인트·모델 이름은 절대 하드코딩하지 않는다. 모두 .env에서 python-dotenv 또는 dotenv로 읽는다. 실무 회사 코드에서도 그대로 통하는 패턴.
# .env.copy 예시 OPENAI_API_KEY=sk-xxx AZURE_OPENAI_API_KEY=... AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/ AZURE_OPENAI_DEPLOYMENT=gpt-4o AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT=text-embedding-3-large AZURE_OPENAI_API_VERSION=2024-02-01 HUGGING_FACE_API_KEY=...
※ GitHub Models 사용 시 GITHUB_TOKEN을 별도로 설정 (레포 .env.copy 미포함 — GitHub 설정에서 발급한 PAT를 환경변수로 직접 지정).
처음 6개 레슨은 Jupyter 노트북(.ipynb)으로 셀 단위 실험을 권장. 7번 레슨부터는 실제 .py / .ts 파일로 옮겨가서 "프로덕션에 가까운 코드" 작성법을 배운다.
음악으로 치면 — 처음엔 피아노 앞에 앉아 한 음씩 눌러보고(노트북), 익숙해지면 악보를 보고 곡 전체를 친다(스크립트). 코드를 처음 만지는 단계에서 IDE의 복잡함부터 마주치지 않게 하는 배려.
15번 레슨의 핵심. "LLM이 모르는 정보를 답변에 끼워 넣기".
[질문] → [임베딩으로 변환] → [벡터 DB에서 유사 문서 검색]
│
▼
[검색된 문서 + 원래 질문]
│
▼
[LLM 호출] → [답변]
11번 레슨. LLM이 "직접 답변" 대신 "이 함수를 이런 인자로 불러줘"를 JSON으로 반환하게 만드는 패턴. 외부 API, DB, 계산기 등 어떤 도구든 LLM이 부를 수 있다 — 요즘 말하는 "에이전트"의 가장 기본적인 구현체.
17번 레슨. 여러 LLM이 협력해 작업을 처리하는 패턴. 한 에이전트가 계획을 세우고, 다른 에이전트가 실행하고, 또 다른 에이전트가 검증한다. 최근의 OpenHands·Claude Code·LangGraph가 다 이 패턴 위에 있다.
"21개 레슨짜리 입문서"라는 이름 때문에 가볍게 보고 넘어가기 쉽다. 그러나 13번(보안), 14번(LLMOps), 17번(멀티 에이전트), 18번(파인튜닝)은 실무에서 가장 자주 무너지는 영역이다. 입문서에 깔린 내용이라고 무시하면 회사 LLM 앱 운영 중에 그대로 사고로 돌아온다.
각 레슨의 "Build" 코드를 자기 회사 코드와 비교해보자 — .env 분리, Provider Abstraction, 출처 인용, 평가 지표 같은 것들이 실무 표준이 됐는데도 빠진 곳이 많다. 입문서를 모범사례 체크리스트로 쓰는 게 가장 효율적인 활용법.
21개 레슨 폴더 + 메타 디렉토리.
generative-ai-for-beginners/ ├── .devcontainer/ # Codespaces용 개발환경 정의 │ └── devcontainer.json # universal:2.13 이미지 + pip install 자동화 ├── .github/ # GitHub Actions (번역, 검증) ├── .vscode/ # VS Code 설정 (확장 추천 등) │ ├── 00-course-setup/ # 시작 안내 (.env 설정법 등) ├── 01-introduction-to-genai/ # Learn: 생성형 AI/LLM이란 ├── 02-exploring-and-comparing-different-llms/ # Learn: 모델 선택법 ├── 03-using-generative-ai-responsibly/ # Learn: 책임 있는 AI ├── 04-prompt-engineering-fundamentals/ # Learn: 프롬프트 기초 ├── 05-advanced-prompts/ # Learn: 고급 프롬프트 │ ├── 06-text-generation-apps/ # Build: 텍스트 생성앱 │ ├── python/ # aoai-app.py, oai-app.py, githubmodels-app.py │ ├── typescript/ # recipe-app/ 등 Node 프로젝트 │ └── README.md ├── 07-building-chat-applications/ # Build: 챗봇 ├── 08-building-search-applications/ # Build: 임베딩 검색 ├── 09-building-image-applications/ # Build: 이미지 (DALL-E) ├── 10-building-low-code-ai-applications/ # Build: 로우코드 ├── 11-integrating-with-function-calling/ # Build: 함수 호출 ├── 12-designing-ux-for-ai-applications/ # Learn: AI UX ├── 13-securing-ai-applications/ # Learn: 보안 ├── 14-the-generative-ai-application-lifecycle/ # Learn: LLMOps ├── 15-rag-and-vector-databases/ # Build: RAG ├── 16-open-source-models/ # Build: Hugging Face ├── 17-ai-agents/ # Build: 멀티 에이전트 ├── 18-fine-tuning/ # Learn: 파인튜닝 ├── 19-slm/ # Learn: 소형 모델(Phi) ├── 20-mistral/ # Learn: Mistral ├── 21-meta/ # Learn: Llama │ ├── docs/ # docsify 문서 페이지 ├── images/ # 영문판 이미지 ├── translated_images/ # 번역판 이미지 ├── translations/ # 50개 언어 README 번역 (한국어 ko/) ├── presentations/ # 발표용 슬라이드 ├── shared/python/ # 레슨 간 공통 Python 유틸 │ ├── .env.copy # 환경변수 템플릿 -> .env 복사 ├── AGENTS.md # AI 코딩 에이전트용 셋업 가이드 ├── requirements.txt # Python 의존성 ├── package.json # 루트 npm (docsify-to-pdf) ├── pyproject.toml # Python 프로젝트 설정 ├── .python-version # 3.12.10 ├── docsifytopdf.js # 문서 -> PDF 변환 ├── index.html # docsify 진입점 └── README.md # 코스 소개
최근 떠오르는 표준. Cursor·Claude Code·GitHub Copilot 같은 AI 코딩 도구가 레포에 진입했을 때 "이 프로젝트는 이렇게 셋업하고 이렇게 테스트한다"를 자동으로 읽어가도록 만든 파일. Claude Code를 쓰는 사람이라면 자기 프로젝트에도 추가해두면 좋다.
로컬에 Python·Node를 설치할 필요 없이, GitHub 페이지에서 . 키만 누르면 클라우드 VS Code가 열리고 의존성이 자동 설치된다. "내 노트북엔 환경 충돌이 있어서…" 같은 핑계가 안 통하는 시대.
한국어로 모든 README를 읽을 수 있다. 단, "machine translation은 수락 안 한다"고 명시되어 있지만 GitHub Actions 자동 번역본도 함께 들어있는 구조. 영어 원본과 같이 보는 것을 추천한다.
어디서 무엇을 가져갈지.
tiktoken으로 입력·출력 비용 사전 계산temperature, top_p 차이 직관 만들기실습: "내 일기를 받아 오늘 한 줄 응원 메시지를 돌려주는 CLI 앱"을 Python 50줄로 작성
scikit-learn의 cosine_similarity)로 검색실습: 내 메모 100개 임베딩 -> "비슷한 메모 찾기" -> RAG로 확장
실습: 날씨 API + 캘린더 API 등록 -> "내일 약속 있는데 우산 챙길까?" 자연어 처리
실습: 회사 위키/PDF 매뉴얼 챗봇 — 출처 페이지를 같이 보여주는 것까지 구현
중요도: 회사 LLM 앱 운영 필수. 입문서지만 따로 시간 들여 깊게 봐야 한다.
transformers 사용법실습: Mistral 7B Instruct 로컬 추론 -> 도메인 데이터 100건으로 LoRA -> before/after 비교
모드별 최소 사양.
| 모드 | 최소 사양 | 비고 |
|---|---|---|
| API 호출만 | 4GB RAM, 4 cores | OS 무관 (Win/Mac/Linux) |
| Python 환경 | Python 3.10+ | requirements.txt ~500MB |
| TS 레슨용 | Node 선택 | 각 Build 레슨에 별도 npm 프로젝트 |
| 오픈소스 7B 로컬 | GPU VRAM 8GB+ | 16GB RAM, 디스크 5~30GB |
| 오픈소스 13B 로컬 | GPU VRAM 16GB+ | 대안 — Codespaces 월 60h 무료 |
| Mac M 시리즈 | 통합 메모리 16GB+ | llama.cpp, ollama로 7B 추론 |
1) GitHub Marketplace Models — 계정만 있으면 GPT-4o·Claude·Llama 무료 호출 (분당 제한 있음). 모든 레슨에 githubmodels-*.py 변형 제공. 2) Codespaces 월 60시간 무료 — 학습용으로 충분. 3) 로컬 추론 필요시 Mac M 시리즈 또는 ollama로 7B Mistral·Phi 가능.
PowerShell에서 먼저 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser. 가상환경 활성화는 .venv\Scripts\activate. 일부 패키지(numpy, scikit-learn 등) 빌드는 Microsoft Visual C++ Build Tools가 필요할 수 있다. 가장 편한 길은 그냥 Codespaces 사용.
난이도별 실습 — Easy -> Hard.
1) 레포를 자기 계정으로 fork 2) . 키로 Codespaces 열기 3) 06-text-generation-apps/python/oai-app.py 실행 4) "오늘 점심 메뉴 추천" 받아보기 5) 응답·토큰 수·비용 확인
배우는 것: 클라우드 개발환경, .env 셋업, 기본 OpenAI 호출. 환경 설치 0초로 AI 코딩 첫 경험.
1) 레슨 07 베이스로 시작 2) 대화 히스토리를 메모리에 유지 3) 시스템 프롬프트로 "한국어 + 무조건 존댓말" 페르소나 4) 토큰 한계 도달 시 오래된 메시지 잘라내기 5) quit 명령으로 종료
배우는 것: messages 배열 관리, 멀티턴 대화 컨텍스트, 토큰 윈도우 관리
1) 자기 마크다운 노트 50~200개 임베딩 2) 로컬 JSON 또는 SQLite에 저장 3) 자연어 질문으로 코사인 유사도 검색 4) 검색된 노트 + 질문을 프롬프트에 넣어 LLM 호출 5) 답 + 출처 노트 링크 반환
배우는 것: 청킹, 임베딩 일괄 처리, 유사도 검색, RAG 프롬프트, 출처 인용. 확장 — pgvector/Qdrant로 마이그레이션.
1) 날씨 API + 캘린더(Google or 로컬 ics) + 메모 작성 함수 등록 2) JSON 스키마로 함수 시그니처 정의 3) "내일 12시 점심 약속 잡고 메뉴는 날씨 보고 추천해줘" 명령 처리 4) LLM이 두 API를 순차 호출 -> 결과 종합 5) 에러 핸들링, 도구별 권한 관리
배우는 것: Function Calling 스키마, 멀티턴 호출 루프, ReAct 패턴
1) Git PR 받기 -> (a) 보안 점검, (b) 성능 점검, (c) 컨벤션 점검 에이전트가 각자 리뷰 2) 4번째 에이전트가 통합 코멘트 생성 3) GitHub PR에 자동 코멘트 4) 비용·지연시간 모니터링 5) LLM-as-judge로 응답 품질 평가
배우는 것: 멀티 에이전트 오케스트레이션(레슨 17), GitHub Actions 통합, LLMOps(레슨 14). 이 정도 만들면 회사 워크플로 실투입 가능.
21개 레슨을 주당 6~8시간으로 6주에 완주.
개발 환경 셋업, LLM 직관 만들기, 프롬프트 엔지니어링 5가지(zero-shot, few-shot, CoT, role, ReAct). 산출물 — 자기 fork + 프롬프트 비교 노트북 1개.
텍스트 생성앱, 챗봇, 임베딩 검색앱, 이미지 생성앱을 Python·TS로 동시 빌드. 산출물 — CLI 챗봇 1개 + 임베딩 검색 데모 1개.
로우코드(Copilot Studio), 함수 호출, AI 앱의 UX 설계. 산출물 — 함수 호출 미니 에이전트 (실습 4번).
보안(프롬프트 인젝션), LLMOps(평가·모니터링), RAG 본격 구현. 산출물 — 내 노트 RAG 검색 시스템 (실습 3번).
Hugging Face, SLM(Phi-3), Mistral, Llama. 로컬 추론 환경. 산출물 — ollama 또는 llama.cpp로 로컬 챗봇 1개.
멀티 에이전트 협업, LoRA/QLoRA 파인튜닝 실습. 산출물 — 멀티 에이전트 코드 리뷰어 (실습 5번) 또는 도메인 파인튜닝 모델.
심화 1 — AI Agents for Beginners (11개 레슨 후속). 심화 2 — MCP for Beginners (Model Context Protocol). 심화 3 — LangChain/LlamaIndex로 RAG 파이프라인 프로덕션화. 심화 4 — 자기 도메인 데이터로 SFT/DPO 파인튜닝 후 Hugging Face Hub 공개.
자주 마주칠 단어들.
tiktoken으로 세기.JSON을 반환. 외부 도구 연결 핵심.공식 · 자매 시리즈 · 관련 도구.
. 키로 Codespaces 열기 -> 06-text-generation-apps/python/oai-app.py를 무지성으로 한 번 돌려본다. 환경 셋업 0초 = AI 코딩 첫 경험.githubmodels-*.py 변형이 있으니 그것만 따라가도 충분하다.