Stanford University Fall 2025

CS146S: The Modern Software Developer

손으로 코드를 작성하지 마세요 — 모든 것은 AI로 해야 합니다. AI 시대의 소프트웨어 개발자가 되기 위한 Stanford의 화제의 수업.

Course Website: themodernsoftware.dev

왜 이 수업이 중요한가

2025년 가을, Stanford 대학에서 전례 없는 수업이 시작되었습니다.CS146S: The Modern Software Developer. 이 수업의 핵심 규칙은 단 하나입니다: "손으로 코드를 작성하지 마세요. 모든 것은 AI로 해야 합니다."

Mihail Eric 교수는 Stanford CS를 졸업한 지 15년 만에 모교로 돌아와 이 수업을 만들었습니다. 10개월간의 개발 끝에 탄생한 이 커리큘럼은 AI가 소프트웨어 개발의 모든 단계를 어떻게 변화시키고 있는지를 다루는 최초의 포괄적인 대학 과정입니다.

"코딩 에이전트가 코드를 작성하는 방식을 바꾸고 있습니다. 이제 우리는 더 이상 한 줄 한 줄 코드를 타이핑하는 것이 아니라, AI와 대화하며 소프트웨어를 만들어갑니다."

— Mihail Eric, Stanford CS146S 교수

수업 대기자 명단에 200명 이상이 등록했고, 수업이 시작되자마자 "올해 가장 유용한 CS 수업"이라는 평가가 쏟아졌습니다. Cursor, Claude Code, Warp 같은 도구들이 개발자의 일상을 바꾸고 있는 지금, 이 수업은 단순한 도구 사용법이 아닌 새로운 개발 패러다임을 가르칩니다.

이 페이지는 CS146S의 핵심 내용을 정리한 것입니다. 공식 강의 자료와 과제는 모두 무료로 공개되어 있어, 누구나 따라가며 학습할 수 있습니다. AI 시대의 소프트웨어 개발자로 거듭나고 싶다면, 이 수업의 철학과 방법론을 깊이 이해하는 것이 출발점이 될 것입니다.

핵심 철학: Human-Agent Engineering

CS146S가 강조하는 가장 중요한 개념은 "Human-Agent Engineering"입니다. 이것은 "Vibe Coding"과는 근본적으로 다릅니다. Vibe Coding은 AI에게 대충 지시하고 결과물을 그대로 사용하는 방식입니다. 재미있고 빠르지만, 아직 프로덕션 수준의 소프트웨어를 만들 수는 없습니다.

Vibe Coding vs Human-Agent Engineering

Vibe Coding

  • AI에게 대충 지시
  • 결과물 그대로 사용
  • 에러 나면 AI에게 다시 요청
  • 코드 이해 없이 복붙
  • 프로덕션에 적합하지 않음

Human-Agent Engineering

  • 명확한 컨텍스트와 구조 제공
  • AI를 인턴처럼 관리
  • 결과물 검증 및 테스트
  • 코드 완전히 이해
  • 프로덕션 품질 달성

LLM은 당신만큼만 좋습니다

"AI가 내 코드베이스에서는 작동하지 않아요"라고 말하는 개발자들이 있습니다. 하지만 이 말은 곧 "처음 들어온 인간 개발자도 내 코드베이스에서 혼란스러워할 것이다"라는 뜻입니다.AI의 성능은 당신이 제공하는 컨텍스트의 품질에 비례합니다.

잘 구조화된 코드, 명확한 네이밍, 적절한 문서화가 있다면 AI는 놀라운 성능을 발휘합니다. 반대로 스파게티 코드와 불명확한 의존성이 있다면, AI도 인간만큼이나 고통받습니다.

새로운 노력 배분

AI 시대의 개발자는 코딩보다 계획과 테스트에 더 많은 시간을 씁니다.

40%
20%
40%
Planning (계획)
Coding (코딩)
Testing (테스트)

과거에는 코딩이 전체 작업의 60-70%를 차지했습니다. 하지만 AI가 코드 생성을 담당하면서, 개발자의 역할은 무엇을 만들지 계획하고, 만들어진 것이 제대로 작동하는지 검증하는 것으로 이동했습니다. 검증(Verification)이 실행(Execution)을 대체하고 있습니다.

10주 커리큘럼: 전반부 (Week 1-5)

CS146S는 AI 소프트웨어 개발의 전체 생명주기를 다룹니다. 각 주차마다 강의 슬라이드, 읽기 자료, 실습 과제가 제공됩니다. 과제는 GitHub 저장소에서 확인할 수 있습니다.

Week 1: 코딩 LLM의 이해

Introduction to Coding LLMs and AI Development

LLM은 텍스트를 토큰 단위로 처리합니다. "tokenization"이라는 단어는 3개의 토큰으로 분리될 수 있습니다. 이 때문에 단어를 거꾸로 철자하는 것처럼 인간에게 쉬운 작업이 LLM에게는 어려울 수 있습니다.

이 주에 배우는 6가지 프롬프팅 기법(K-shot, CoT, Tool Calling, Self-Consistency, RAG, Reflexion)은 이후 모든 주차의 기반이 됩니다.

📝 과제: 6가지 프롬프팅 기법 구현

Ollama + Mistral-Nemo(12B) / Llama 3.1(8B) 사용. 각 기법당 10점, 총 60점. 모든 TODO 마커를 해결하고 테스트를 통과해야 합니다.
📚 필수 읽기: Wei et al. "Chain-of-Thought Prompting", Lewis et al. "Retrieval-Augmented Generation", Shinn et al. "Reflexion"

Week 2: 코딩 에이전트의 해부학

The Anatomy of Coding Agents

Cursor, Claude Code 같은 도구들은 어떻게 작동할까요? 이 주에는직접 간단한 코딩 에이전트를 구축합니다. 에이전트는 도구를 사용하고, 컨텍스트를 관리하며, 멀티스텝 작업을 수행할 수 있습니다.

핵심 개념은 Context Engineering입니다. "나쁜 컨텍스트는 싸지만 유독합니다." 10만 줄의 로그는 계산 비용이 거의 들지 않지만, 귀중한 추론 컨텍스트를 파괴합니다.

📚 필수 읽기: Anthropic의 Claude Code 아키텍처 문서, "Context Engineering for Coding Agents" 가이드

Week 3: AI IDE의 세계

The AI IDE

Cursor는 VS Code 기반의 AI IDE로, 코드 자동 완성, 채팅, 인라인 편집 기능을 제공합니다. Windsurf는 Codeium이 만든 대안으로, "Cascade" 에이전트가 특징입니다.

이 주에는 최적의 AI-First 개발 환경을 구성합니다. 자신의 기술 스택과 코딩 스타일에 맞는 커스텀 프롬프팅 패턴, .cursorrules 파일 설정, 프로젝트별 컨텍스트 관리 방법을 배웁니다.

📝 과제: AI IDE 환경 구성

Cursor 또는 Windsurf를 설정하고, 프로젝트별 커스텀 rules 파일을 작성하여 제출합니다.

Week 4: 코딩 에이전트 패턴

Coding Agent Patterns

프로덕션 피처를 2배 빠르게 배포하는 워크플로우:Research → Plan → Implement → Test → Review. 각 단계에서 AI를 어떻게 활용하는지 배웁니다.

특히 중요한 것은 AI 에러를 잡아내는 리뷰 및 CI 프로세스입니다. 할루시네이션, "slop"(저품질 출력), 보안 취약점을 프로덕션 전에 식별하는 방법을 다룹니다.

📚 필수 읽기: "The State of AI Coding 2025", MCP (Model Context Protocol) 문서

Week 5: 현대적 터미널

The Modern Terminal

Warp는 Rust로 작성된 AI 기반 터미널입니다. 자연어로 명령어를 설명하면 AI가 적절한 명령어를 제안합니다. 복잡한 파이프라인, 정규식, 시스템 관리 명령어를 기억할 필요가 없습니다.

이 주의 Guest Speaker는 Zach Lloyd (Warp CEO)입니다. Warp를 만들게 된 배경과 AI 터미널의 미래에 대해 이야기합니다.

📝 과제: Warp 활용 실습

Warp를 설치하고 AI 기능을 활용하여 복잡한 시스템 관리 작업을 수행합니다.

Week 1 Deep Dive: 6가지 프롬프팅 기법

첫 번째 주 과제에서 학생들은 6가지 핵심 프롬프팅 기법을 직접 구현합니다. 각 기법당 10점, 총 60점 만점입니다. Ollama를 설치하고 Mistral-Nemo(12B)와 Llama 3.1(8B) 모델을 사용하여 실습합니다.

1. K-shot Prompting (Few-shot Learning)

예시를 통해 모델에게 원하는 출력 형식을 가르칩니다. K개의 입력-출력 예시를 제공하면, 모델은 패턴을 학습하여 새로운 입력에 같은 형식으로 응답합니다. K가 클수록 정확도가 올라가지만, 컨텍스트 윈도우 제한이 있습니다.

# 예시: 감정 분석
"긍정적인 리뷰" → "긍정"
"최악의 서비스였다" → "부정"
"그냥 그랬어요" → ?

2. Chain-of-Thought (CoT) Prompting

단계별 추론을 유도하는 기법입니다. "Let's think step by step"을 추가하는 것만으로도 복잡한 문제 해결 능력이 크게 향상됩니다. 특히 수학 문제, 논리 추론, 코드 디버깅에 효과적입니다.

📚 참고: Wei et al. (2022) "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models" - 100B+ 파라미터 모델에서 성능 향상이 두드러집니다.

3. Tool Calling (Function Calling)

LLM이 외부 함수를 호출할 수 있게 하는 기법입니다. 모델은 함수를 직접 실행하지 않고, 어떤 함수를 어떤 파라미터로 호출해야 하는지 JSON 형태로 출력합니다. AI 에이전트의 핵심 기술입니다.

{
  "function": "search_web",
  "parameters": {
    "query": "Stanford CS146S syllabus"
  }
}

4. Self-Consistency Prompting

같은 질문에 대해 여러 번 추론하게 한 뒤, 가장 일관된 답을 선택합니다. 다수결 투표 방식으로 작동하며, CoT와 함께 사용하면 정확도가 더욱 높아집니다. 계산 비용이 증가하지만, 중요한 결정에 유용합니다.

5. RAG (Retrieval-Augmented Generation)

외부 지식 베이스에서 관련 문서를 검색하여 프롬프트에 포함시킵니다. LLM의 학습 데이터에 없는 최신 정보나 도메인 특화 지식을 활용할 수 있습니다. 코드 파일은 함수/클래스 단위로 청킹하는 것이 효과적입니다.

📚 구현 프레임워크: LangChain, LlamaIndex - 약 40줄의 코드로 기본 RAG 파이프라인 구축 가능

6. Reflexion

모델이 자신의 출력을 평가하고 개선하는 자기 반성 기법입니다. Actor(행동), Evaluator(평가), Self-Reflection(반성) 세 컴포넌트로 구성됩니다. HumanEval, MBPP 등 코드 생성 벤치마크에서 SOTA를 달성했습니다.

📚 참고: Shinn et al. (2023) "Reflexion: Language Agents with Verbal Reinforcement Learning"

10주 커리큘럼: 후반부 (Week 6-10)

후반부에서는 테스팅, 보안, UI 자동화, 그리고 배포 후 관리까지 다룹니다. 코드를 작성하는 것은 시작일 뿐이며, 프로덕션에서 안정적으로 운영하는 것이 진정한 도전입니다.

Week 6: AI 테스팅과 보안

AI Testing and Security

SAST(Static Application Security Testing)의 원리를 배우고, Semgrep을 사용하여 코드의 보안 취약점을 자동으로 스캔합니다. AI가 생성한 코드도 보안 검증이 필수입니다.

에이전트 아키텍처는 새로운 공격 표면을 만듭니다. Prompt Injection으로 "의도가 하이재킹되고, 메모리가 오염되고, 계획 체인이 강제될 수 있습니다." 이런 위협을 이해하고 방어하는 방법을 배웁니다.

📝 과제: Semgrep으로 취약점 스캔 및 수정

week6/ 디렉토리의 FastAPI 백엔드와 JavaScript 프론트엔드를 스캔하고, 최소 3개의 보안 이슈를 문서화하여 수정합니다. 각 수정에 대해 파일 위치, 위험 설명, 코드 변경 내용을 기록합니다.
📚 필수 읽기: OWASP Top 10 for Agentic Applications, "Prompt Injection and Security Risks of Agentic Coding Tools"

Week 7: 현대적 소프트웨어 지원

Modern Software Support

소프트웨어를 출시한 후에는 사용자 지원이 필요합니다. AI를 활용한문서화 자동화지원 챗봇 구축을 배웁니다.

AGENTS.md 같은 AI 설정 파일을 프로젝트에 포함하면, AI 코딩 에이전트에게 명확한 지침을 제공할 수 있습니다. 이제 개발자는 인간뿐 아니라 기계를 위한 문서도 작성해야 합니다.

📚 필수 읽기: GitHub의 AGENTS.md 표준 제안, "Writing Documentation for AI Agents"

Week 8: 자동 UI/앱 빌딩

Automated UI and App Building

v0 (Vercel)는 자연어 설명만으로 React 컴포넌트를 생성합니다. Bolt는 전체 앱 스캐폴딩을 자동화합니다. 이런 도구들로 빠른 프로토타이핑이 가능합니다.

하지만 생성된 코드를 그대로 사용하면 안 됩니다. Human-Agent Engineering 원칙에 따라, 생성된 코드를 검증하고 필요한 부분을 수정해야 합니다. 특히 접근성, 성능, 보안 측면의 검토가 필요합니다.

📝 과제: AI로 UI 프로토타입 제작

v0 또는 Bolt를 사용하여 지정된 요구사항의 UI를 생성하고, 코드를 검토/수정하여 프로덕션 품질로 개선합니다.

Week 9: 배포 후 에이전트 활용

Agents Post-Deployment

코드가 프로덕션에 배포된 후에도 AI의 역할은 계속됩니다.에러 로그 분석, 성능 병목 식별, 자동 버그 수정 제안까지 AI가 도울 수 있습니다.

MASAI 같은 멀티에이전트 시스템은 계획(Planner), 탐색(Navigator), 코드 편집(Code Editor), 실행(Executor) 전문 에이전트를 사용하여 복잡한 이슈를 해결합니다. SWE-Bench에서 28.3%의 해결률을 달성했습니다.

📚 필수 읽기: "MASAI: Modular Architecture for Software Engineering AI", HyperAgent 논문

Week 10: AI 소프트웨어 엔지니어링의 미래

What's Next for AI Software Engineering

Devin (Cognition Labs)은 세계 최초의 완전 자율 AI 소프트웨어 엔지니어입니다. 코드 작성뿐 아니라 계획, 디버깅, 개발 환경 구동, 앱 배포까지 자율적으로 수행합니다.

이 주의 Guest Speaker들: Russell Kaplan (Cognition),Martin Casado (a16z). AI 소프트웨어 엔지니어링의 미래와 개발자의 역할 변화에 대해 논의합니다.

📝 최종 프로젝트 발표

팀별로 AI 도구를 활용하여 개발한 프로젝트를 발표합니다. 전체 개발 과정에서 AI를 어떻게 활용했는지, 무엇을 배웠는지를 공유합니다.

핵심 인사이트 & 참고 자료

Context Engineering의 핵심 원칙

Grep → Read 패턴

전체 파일을 읽고 컨텍스트 내에서 검색하지 마세요. 대신 Grep으로 위치를 찾고, Read로 필요한 부분만 추출하세요. Claude Code의 Read 도구는 offset과 limit 파라미터를 지원하여, 전체 파일을 로드하지 않고도 관련 섹션만 가져올 수 있습니다.

서브에이전트 아키텍처

복잡한 작업을 처리할 때, 메인 에이전트가 모든 것을 하게 하지 마세요. 전문화된 서브에이전트를 사용하면 91%의 노이즈 대신 76%의 유용한 신호를 담은 8배 더 깨끗한 컨텍스트를 얻을 수 있습니다.

필수 참고 논문

Chain-of-Thought Prompting Elicits Reasoning in LLMs

Wei et al., 2022 | Google Research

Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks

Lewis et al., 2020 | Facebook AI Research

Reflexion: Language Agents with Verbal Reinforcement Learning

Shinn et al., 2023 | arXiv:2303.11366

Structured Chain-of-Thought Prompting for Code Generation

Li et al., 2023 | ACM TOSEM

MASAI: Modular Architecture for Software Engineering AI

SWE-Bench Lite에서 28.3% 해결률 달성

공식 학습 자료

  • themodernsoftware.dev공식 코스 웹사이트 - 강의 슬라이드, 노트, 주차별 읽기 자료
  • GitHub: modern-software-dev-assignments공식 과제 저장소 - Python 3.12, Conda, Poetry 환경
  • The State of AI Coding 2025AI 코딩 현황 리포트 - 업계 트렌드와 도구 분석
  • Prompting Guide프롬프팅 기법 종합 가이드 - CoT, RAG, Reflexion 등