Andrew Ng의 두 DeepLearning.AI 강좌를 끝낸 회고. 같은 부모 클래스에서 나온 두 자식 인스턴스 — 보완 관계지 같은 도구가 아니다.
들어가며
최근 DeepLearning.AI의 두 강좌를 차례로 끝냈다.
- Build with Andrew (1시간, vibe coding 입문)
- Claude Code: A Highly Agentic Coding Assistant (10 레슨, agentic coding workflow)
표면적으로 둘 다 “AI로 코딩 가속” 카테고리에 묶이지만 실제 학습 경험은 완전히 달랐다. 한쪽은 자연어 prompt 하나로 HTML 파일 하나 만드는 일회성 prototype 도구, 다른 한쪽은 CLI 도구로 codebase와 지속적으로 협업하는 agentic 작업 환경. 그러면서도 핵심 메시지는 같다 — 구체적 명세 + 명확한 계획 = 좋은 결과.
이 글은 두 강좌의 차이를 객체지향 관점으로 정리하고, 실제 업무에 어떻게 보완적으로 적용할 수 있는지 회고한 기록.
한 줄 요약
두 강좌는 같은 부모 클래스(AI-assisted development)에서 상속받는 다른 자식 인스턴스. 대상도 다르고 추상화 단계도 다르고 결과물도 다르지만, 핵심 메시지(“구체적 명세 + 명확한 계획”)는 isomorphic.
핵심 비교 표
| 항목 | Build with Andrew | Claude Code |
|---|---|---|
| 목적 | 비코더 vibe coding 입문 | 개발자 agentic coding workflow |
| 대상 | 코딩 경험 무관 | 이미 코딩하는 사람 |
| 도구 | ChatGPT/Gemini/web 챗봇 | CLI 도구 (claude 명령어) |
| 분량 | 1시간 (짧음) | 10 레슨, 각 ~10분 깊이 있음 |
| 결과물 | 단일 HTML 파일 (다운로드) | 기존 코드베이스 변경 (in-place) |
| 인터랙션 | prompt 한 번 던지고 결과 받기 | 지속적 협업 (plan → execute → verify 루프) |
| 메모리 | 세션 단위, 컨텍스트 누적뿐 | CLAUDE.md 프로젝트 메모리 + 로컬 저장 + --resume |
| 확장성 | 챗봇 자체 기능만 | MCP 서버 (Playwright, Figma 등 무한 확장) |
| 검증 방식 | 다운로드 → 브라우저 수동 확인 | 자동 테스트, MCP로 스크린샷 자동 검증 |
| 메타포 (Lesson 2) | Mad Libs 빈칸 채우기 | 도서관 책장 훑기 (agentic search) |
| 권장 시퀀스 | Goal → Inputs → Output → Layout → Style | Plan → Explain → Design → Implement → Verify |
본질적 차이 — 세 가지
1. 추상화 단계가 다름
Build with Andrew는 자연어 → 결과물의 1단계 추상화. prompt 하나 던지면 HTML 파일 하나 나온다.
Claude Code는 자연어 → 도구 호출 → 코드베이스 작업의 multi-step agentic 추상화. CLI 도구가 harness(말 안장 비유) 역할을 한다. 모델한테 도구를 쥐어주고, 모델이 자기 판단으로 도구 호출 + 계획 + 실행을 한다.
2. 사용자 위치가 다름
- Build with Andrew: “AI 도구로 만들기 시작“하는 사람용. Ng가 강좌 마지막에 던지는 정체성 부여 메시지 — “you’re a builder now”.
- Claude Code: “이미 코딩하는데 AI agentic 도구로 가속“하려는 사람용. 처음부터 “agentic system = Model + Tools + Environment” 이론을 제시한다.
3. 결과물의 lifecycle이 다름
- Build with Andrew = one-shot prototype. HTML 파일 하나 만들고 끝. 발전시키려면 새 prompt 던지기.
- Claude Code = 지속적 협업. CLAUDE.md에 프로젝트 규약 박아두고 매 세션마다 자동 로드. codebase가 살아있는 동안 같이 진화.
Claude Code 강좌 핵심 6가지 패턴
1. 구체적인 컨텍스트 제공 — 1등 레버
“Claude Code는 당신이 주는 컨텍스트만큼 좋다”
@로 파일/폴더 정확히 지정 (Lesson 5): 자동 탐색도 되지만 정확한 경로가 효율 압도적CLAUDE.md= 프로젝트 메모리: 매 세션 자동 로드. 실행법/품질 게이트/규약을 박아둠- 3 메모리 스코프:
- Project (
CLAUDE.md, git 관리, 팀 공유) - Local (
CLAUDE.local.md, gitignored, 개인 설정) - User (
~/.claude/CLAUDE.md, 머신 전체 글로벌)
- Project (
#단축키로 메모리에 즉시 규칙 추가/init: 기존 코드베이스 분석해서 CLAUDE.md 자동 생성. 남이 만든 코드베이스 받았을 때 진가 발휘.
2. 목표 명확화 — Plan mode가 핵심
- Plan mode (
Shift+Tab두 번): 코드 작성 전에 먼저 계획. 큰 변경에는 필수 - Plan → Execute → Verify 루프가 강좌 전체를 관통하는 마스터 패턴
- 복잡한 작업은 마크다운 파일에 요구사항 정리해서 prompt로 (Lesson 6 예시):
- Current behavior / Desired behavior / Example / Requirements / Notes 섹션
3. Engineer 이전에 Explainer — 강좌가 가장 강조한 메시지
Lesson 2 비디오의 정확한 표현: “code 작성 이전에 discover, explain, design이 강력한 기능”.
코드베이스 받자마자 “구현해줘” 던지지 말고, 먼저 아키텍처 설명 → 데이터 흐름 추적 → 핵심 파일 정리부터. 그 다음 구현으로 넘어간다.
“engineer 도구” 측면만 보면 강좌가 가르치는 가치의 절반을 놓치는 것.
4. Agentic Search vs Indexing
- 다른 도구(Cursor, GitHub Copilot)는 코드베이스를 임베딩으로 인덱싱한다.
- Claude Code는 agentic search — 필요한 것만 그때그때 찾는다.
- 비유: 도서관 책장 직접 훑기.
- 장점 세 가지:
- 보안: 코드가 서버로 통째로 안 나감
- 로컬 유지: 사내 코드베이스에 안전하게 적용 가능
- 토큰 효율: 필요한 부분만 컨텍스트에 올림
5. 컨텍스트 통제 — /clear, /compact, Esc Esc
긴 작업하면 컨텍스트 윈도우가 오염된다. 강좌가 일관되게 짚은 습관:
/clear: 새 기능으로 넘어갈 때 완전 리셋 (오히려 품질이 올라간다)/compact: 요약만 유지하고 리셋Esc: 진행 중 이상한 방향 즉시 끊기Esc Esc(더블): 이전 시점으로 rewind (단순 중단이 아니라 되돌리기)
6. 강좌 후반 — 병렬 작업 + GitHub 통합
| 도구 | 목적 |
|---|---|
| Extended Thinking (“think hard”, “ultrathink”) | 한 prompt 안에서 더 깊은 추론 |
| Subagents (Lesson 6) | 한 세션 안에서 옵션 병렬 탐색 (“리팩토링 두 접근법 비교”) |
Custom Commands (.claude/commands/*.md) | 반복 prompt를 슬래시 명령으로 자산화 |
| Git Worktrees (Lesson 7) | 별도 세션이 격리된 코드베이스 복사본에서 병렬 작업 |
| GitHub App (Lesson 8) | PR 자동 코드리뷰 + @claude 태그로 이슈 자동 수정 |
| Hooks (Lesson 8) | 도구 실행 전/후 셸 명령 주입 (테스트 자동, 린터, 도구 차단) |
| Test 먼저 작성 (Lesson 6) | 버그 발견 시 “에러 복붙” 대신 “테스트 먼저 → 실패 위치 확인 → 수정” |
Build with Andrew와의 공통 부모 클래스 메시지
두 강좌의 핵심 메시지가 isomorphic한 두 축:
공통 부모 메시지 (AI-assisted development)
│
├── Specificity = 결과 통제의 1차 변수
│ ├── Build with Andrew: 음식 트럭 비유 (Lesson 2/4)
│ │ "give me a sandwich" → 임의
│ │ "vegetarian sandwich with hummus and cheese..." → 예측 가능
│ └── Claude Code: @로 파일 지정 + CLAUDE.md 박기 (Lesson 5)
│ 자동 탐색보다 명시적 컨텍스트가 효율 압도적
│
└── 명세/계획 먼저, 구현은 나중
├── Build with Andrew: 5 building blocks (Goal/Inputs/Function/Layout/Style)
│ Lesson 2가 정확히 이 5 슬롯을 prompt 구조로 제시
└── Claude Code: Plan → Execute → Verify 루프
Lesson 5의 plan mode 도입이 강좌 마스터 패턴
도구는 달라도 “구체적 명세 + 명확한 계획 = 좋은 결과”라는 패턴은 동일. 이게 vibe coding의 진짜 본질이다.
객체지향 다이어그램
AIAssistedDevelopment (부모 클래스)
│
├── BuildWithAndrew (입문 인스턴스)
│ ├── Interface: web chatbot
│ ├── Output: single HTML
│ ├── Lifecycle: one-shot
│ ├── 5 building blocks 패턴
│ └── Mad Libs 메타포
│
└── ClaudeCode (advanced 인스턴스)
├── Interface: CLI harness
├── Output: codebase modification
├── Lifecycle: persistent collaboration
├── Memory: CLAUDE.md + local conversation
├── Tools: read/edit/grep/bash/subagent + MCP
├── Plan → Execute → Verify 패턴
└── Agentic search 메타포 (도서관 책장 훑기)
업무 적용 측면 — Phase 1-5 진화 계획
| 도구 | 적용 |
|---|---|
| Build with Andrew | 단일 도구 prototype (예: Quotation Draft Generator). 빠른 일회성 도구. |
| Claude Code | 기존 시스템 변경, refactoring, 자동화 스크립트. CLAUDE.md에 회사 규약/스타일 박아두고 지속 사용. |
Build with Andrew final project로 만든 견적서 초안 생성기를 Claude Code 패턴으로 진화시키는 계획:
- Phase 1 (Build with Andrew): 정적 HTML prototype 완성 ✅
- Phase 2 (Claude Code): 실제 actuator catalog 데이터 통합.
/init→ CLAUDE.md에 도구 규약 박기.@final-project-rotork.html참조하면서 plan mode로 catalog 통합 설계. - Phase 3 (Claude Code): 가격 계산 logic. 서브에이전트로 두 접근법(정적 JSON vs API) 병렬 탐색.
- Phase 4 (Claude Code): PDF 출력 + 이메일 자동. Custom commands
.claude/commands/add-quotation-feature.md로 재사용 가능한 prompt 패턴 자산화. - Phase 5 (Claude Code): ERP 연동. Git worktrees로 ERP 통합 + UI 개선 병렬 작업.
두 강좌 다 끝낸 가치: prototype 단계는 Build with Andrew 패턴으로, 진화 단계는 Claude Code 패턴으로. 한 도메인을 두 도구로 다른 호라이즌에서 본다.
학습 순서 권장
Build with Andrew → Claude Code 순서가 자연스럽다:
- 먼저 vibe coding 큰 그림 + 5 building blocks 익히기 (Build with Andrew, 1시간)
- 그 다음 agentic workflow의 정교한 도구들 익히기 (Claude Code, 약 2주)
두 강좌의 합성을 실제 업무 도구로 진화시키는 것이 다음 단계.
마무리
두 강좌 다 끝낸 입장에서 보면 “어느 게 더 좋은 강좌”라는 질문 자체가 틀렸다. 둘 다 같은 부모 클래스에서 나왔지만 polymorphism으로 다른 인터페이스 — prototype 단계와 진화 단계에 각각 최적화된 도구.
vibe coding이라는 패러다임 변화의 본질은 도구가 아니라 “구체적 명세 + 명확한 계획”이라는 사고법이다. 도구는 그 사고법을 더 효율적으로 표현하는 인터페이스일 뿐. 같은 사고법을 두 도구에서 다른 grain으로 만지면서 익히는 게 진짜 학습이었다.



Leave a Reply