Part 1. AI 코딩의 현실 (30분)
핵심 메시지
“AI가 코딩을 다 해준다?” — 진짜와 거짓
1. AI 코딩 도구 현황
Claude Code
- Anthropic의 터미널 기반 AI 코딩 에이전트
- 코드베이스 전체를 컨텍스트로 이해하고, 직접 파일을 읽고/쓰고/실행
- CLAUDE.md를 통한 프로젝트별 지침 설정 가능
- 멀티 에이전트(서브에이전트) 지원 — 복잡한 작업을 병렬로 분산
Antigravity (반중력?)
- Google이 2025.11에 Gemini 3와 함께 출시한 AI 코딩 플랫폼
- Agent-First 구조 — AI 에이전트가 계획·코딩·터미널·브라우저 테스트까지 자율 수행
- VS Code 기반 에디터 + 멀티 에이전트 동시 실행(Agent Manager)
- 구글 계정만 있으면 무료 사용 가능, 한국어 프롬프트 완벽 지원
비교 포인트
| 항목 | Claude Code | Antigravity |
|---|---|---|
| 제작사 | Anthropic | |
| 대상 | 개발자 중심 | 개발자 중심 (비개발자도 접근 가능) |
| 인터페이스 | 터미널/IDE | VS Code 기반 에디터 |
| 커스터마이징 | 높음 (CLAUDE.md, MCP) | 높음 (멀티 에이전트, 브라우저 확장) |
| 강점 | 깊은 코드 이해 & 수정 | Agent-First 자율 실행 & 브라우저 테스트 |
2. AI가 잘하는 것 vs 못하는 것
✅ AI가 잘하는 것
- 보일러플레이트 코드 생성 — CRUD, API 엔드포인트, 설정 파일
- 패턴 기반 작업 — 테스트 코드 작성, 리팩토링, 포맷 변환
- 문서화 — 코드 주석, README, API 문서
- 디버깅 보조 — 에러 메시지 해석, 스택 트레이스 분석
- 학습 가속 — 새로운 프레임워크/라이브러리 빠르게 파악
❌ AI가 못하는 것 (솔직한 경계선)
- 비즈니스 로직 설계 — “무엇을 만들어야 하는가”의 판단
- 아키텍처 결정 — 시스템 전체의 트레이드오프 이해
- 도메인 특화 지식 — 금융 규제, 건설 BIM, 의료 프로토콜 등
- 창의적 문제 해결 — 전례 없는 문제에 대한 새로운 접근
- 코드베이스의 “왜” — 레거시 코드의 역사적 맥락
3. 데모: 프롬프트 차이에 따른 결과 비교
Bad Prompt 🔴
로그인 기능 만들어줘
→ 결과: 기본적인 form만 생성, 보안 없음, 에러 처리 없음
Good Prompt 🟢
Next.js 14 App Router 기반으로 로그인 기능을 구현해줘.
- NextAuth.js v5 사용
- 이메일/비밀번호 + Google OAuth 지원
- 로그인 실패 시 구체적 에러 메시지 표시
- rate limiting 적용 (5회 실패 시 30초 대기)
- 접근성(a11y) 고려한 form 마크업
→ 결과: 프로덕션 수준의 완성도 높은 코드
핵심 교훈
같은 AI, 같은 모델이라도 프롬프트의 구체성이 결과 품질을 결정한다.
4. One-Shot 주의집중 & 전문 도메인 접근법
One-Shot 주의집중이란?
첫 프롬프트 한 방으로 AI의 “모드”를 완전히 전환시키는 기법. AI는 대화의 시작 부분에 가장 큰 가중치를 두므로, 첫 프롬프트가 전체 대화의 품질을 결정한다.
구조: 역할 고정 + 도메인 주입
당신은 15년 경력의 건설 BIM 엔지니어이자 소프트웨어 아키텍트입니다.
IFC 표준, HmEG, Geometry API, 그리고 건설 현장의 실무 프로세스를 깊이 이해하고 있습니다.
다음 규칙을 반드시 따르세요:
1. 모든 답변에 IFC 엔티티명을 정확히 명시할 것
2. 코드 예시는 HmEG API (C#) 기반으로 작성할 것
3. 건설 현장에서 실제 사용 가능한 수준으로 답변할 것
전문 도메인 접근 전략
- 도메인 용어 사전 주입 — 첫 프롬프트에 핵심 용어와 약어를 정의
- 제약 조건 명시 — 업계 규정, 표준, 컴플라이언스 요구사항
- 예시 기반 고정 — “이런 식으로 답변해줘”라는 예시 하나가 100줄의 설명보다 효과적
- 페르소나 + 청중 설정 — “당신은 전문가, 나는 주니어 개발자” 식의 관계 설정
실전 팁
One-shot으로 도메인을 고정한 뒤, 후속 질문에서는 도메인 용어를 그대로 사용하면 AI가 맥락을 유지한다. “BIM 모델의 IfcWall 엔티티에서…” 처럼 전문 용어를 섞어 쓰자.
5. 집요하게 물어보기 → Agent에게 시키기
인간의 집요함 vs Agent의 자동화
수동 방식: 집요하게 물어보기
1차: "이 코드의 버그 찾아줘"
2차: "그 수정이 다른 함수에 영향 주는지 확인해줘"
3차: "영향받는 함수도 같이 수정해줘"
4차: "테스트 코드도 작성해줘"
5차: "엣지 케이스도 추가해줘"
→ 5번의 대화가 필요. 매번 컨텍스트를 이어가야 함.
자동 방식: Agent에게 시키기
이 코드베이스에서 버그를 찾고, 수정하고,
영향받는 모든 함수를 확인해서 같이 수정하고,
테스트 코드를 작성하고, 엣지 케이스까지 커버해줘.
수정 전후 diff를 보여줘.
→ Agent가 알아서 단계별로 실행. 중간에 서브에이전트까지 활용.
핵심 전환점
| 단계 | 방식 | 특징 |
|---|---|---|
| Level 1 | 한 번 물어보기 | 단편적 답변 |
| Level 2 | 집요하게 후속 질문 | 깊이 있지만 수동 |
| Level 3 | Agent에게 위임 | 자동화 + 검증 루프 |
마인드셋 전환
“내가 5번 물어볼 것을 한 번의 명령으로 Agent가 5단계를 스스로 실행하게 만들 수 있는가?” 이것이 프롬프트 사용자 → AI 오케스트레이터로의 전환이다.
6. 능력과잉의 AI — 창의력과 잠재능력을 끌어올리는 프롬프트
AI는 “능력과잉” 상태다
현재의 LLM은 대부분의 사용자가 능력의 10~20%만 활용하고 있다. 모델은 이미 충분히 강력한데, 우리의 프롬프트가 그 잠재력을 제한하고 있을 뿐.
잠재력을 끌어올리는 프롬프트 패턴
패턴 1: 사고 확장 요청
이 문제에 대해 5가지 완전히 다른 접근법을 제시해줘.
각 접근법의 트레이드오프를 분석하고,
내가 생각하지 못했을 법한 창의적 해법을 반드시 1개 이상 포함해줘.
패턴 2: 역할 극대화
당신은 세계 최고 수준의 시스템 아키텍트입니다.
"평범한 답변"은 하지 마세요.
이 설계에서 아무도 지적하지 않을 숨겨진 결함을 찾아내고,
그것을 해결하는 엘레강트한 방법을 제안하세요.
패턴 3: 제약 해제 + 재구성
기존의 관례를 무시하고 처음부터 다시 설계한다면?
현재 기술 스택에 제한받지 말고,
이 문제를 해결하는 이상적인 아키텍처를 그려줘.
그 다음, 현실적 제약을 하나씩 적용해서 타협안을 만들어줘.
패턴 4: 메타 프롬프트
내가 이 질문을 더 잘하려면 어떻게 물어봐야 해?
내가 놓치고 있는 관점이 있으면 알려줘.
그리고 그 개선된 질문에 대해 답변해줘.
핵심
AI의 능력을 제한하는 건 AI가 아니라 우리의 질문이다. “더 잘 물어보는 것”이 곧 “더 좋은 결과를 얻는 것”이다.
7. 마인드셋 전환: “AI는 못하지 않다. 프롬프트가 잘못됐다”
Before → After
| Before | After |
|---|---|
| ”AI가 이상한 코드를 줬어" | "내 프롬프트가 모호했구나" |
| "AI는 복잡한 건 못해" | "작업을 잘 쪼개지 못했구나" |
| "AI 답변이 틀렸어" | "검증 단계를 빠뜨렸구나" |
| "AI가 맥락을 모르네" | "컨텍스트를 충분히 안 줬구나” |
실전 체크리스트
- 역할과 목표를 명확히 지정했는가?
- 구체적인 제약 조건을 줬는가?
- 원하는 출력 형식을 예시로 보여줬는가?
- 작업을 적절한 크기로 분할했는가?
- 결과를 검증하는 단계가 있는가?
8. AI를 팀원처럼 부려먹는 법
핵심 마인드셋: 나는 PM, AI는 실행자
AI를 “검색 도구”가 아니라 팀에 새로 합류한 주니어 개발자로 대하라. 좋은 매니저가 주니어에게 하듯이 — 맥락을 주고, 기대치를 설정하고, 결과를 리뷰한다.
Step 1. 온보딩 — AI에게 프로젝트를 가르쳐라
신입에게 첫날 아무 설명 없이 “코드 짜”라고 하면? 당연히 망한다.
우리 프로젝트 구조:
- Next.js 14 App Router
- Supabase (Auth + DB)
- Tailwind CSS + shadcn/ui
- 모노레포: apps/web, packages/shared
컨벤션:
- 컴포넌트는 PascalCase, 유틸 함수는 camelCase
- API 라우트는 /api/v1/ 하위에 RESTful 구조
- 에러는 반드시 커스텀 AppError 클래스 사용
→ Claude Code에서는 CLAUDE.md, Antigravity에서는 프로젝트 설정이 이 역할을 한다.
Step 2. 업무 지시 — “뭘 해라”가 아니라 “왜, 어떻게”를 말해라
| 나쁜 지시 | 좋은 지시 |
|---|---|
| ”로그인 만들어" | "기존 Supabase Auth를 활용해서 Google OAuth 로그인을 추가해줘. 현재 이메일 로그인은 유지하고, 신규 사용자는 자동으로 profiles 테이블에 row가 생성되어야 해." |
| "버그 고쳐" | "장바구니에서 수량 0으로 변경 시 아이템이 삭제되지 않는 버그야. CartContext의 updateQuantity 함수를 확인해줘. 0일 때 removeItem을 호출하도록 수정하고 테스트도 추가해." |
| "리팩토링 해" | "이 파일이 400줄이 넘어. UI 렌더링, 비즈니스 로직, API 호출을 각각 분리하고, 커스텀 훅으로 추출해줘. 기존 동작은 변경하면 안 돼.” |
Step 3. 코드 리뷰 — AI의 결과물을 무조건 신뢰하지 마라
AI가 만든 코드를 그대로 머지하는 건 코드 리뷰 없이 커밋하는 것과 같다.
리뷰 체크리스트:
- 의도한 동작을 하는가? (직접 실행 또는 테스트)
- 기존 코드 스타일/컨벤션과 일치하는가?
- 엣지 케이스를 처리하는가? (빈 값, 에러, 동시성)
- 불필요한 코드가 추가되지 않았는가? (over-engineering 주의)
- 보안 이슈는 없는가? (하드코딩된 시크릿, SQL 인젝션 등)
함정
AI는 자신감 있게 틀린다. 코드가 깔끔해 보일수록 더 꼼꼼히 리뷰해야 한다.
Step 4. 피드백 루프 — 고쳐달라고 하라, 구체적으로
이 코드에서 3가지 문제가 있어:
1. useEffect의 의존성 배열이 빠져 있어 → 무한 루프 위험
2. 에러 핸들링이 console.log뿐이야 → 사용자에게 토스트 알림 추가
3. 타입이 any로 되어 있어 → Product 인터페이스를 정의해서 적용해줘
수정 후 전체 코드를 다시 보여줘.
→ “이상해” ❌ → 구체적인 문제점 + 기대하는 해결 방향 ⭕
Step 5. 위임 확대 — 신뢰가 쌓이면 더 큰 일을 맡겨라
Level 1: "이 함수 하나 작성해줘"
Level 2: "이 기능 전체를 구현해줘"
Level 3: "이 모듈을 설계하고 구현해줘, 테스트까지"
Level 4: "이 프로젝트의 아키텍처를 분석하고 개선안을 실행해줘"
처음부터 Level 4를 던지지 마라. 작은 작업에서 AI의 성향을 파악하고, 점점 범위를 넓혀라.
결론
AI를 잘 쓰는 사람은 “프롬프트를 잘 쓰는 사람”이 아니라 **“일을 잘 시키는 사람”**이다. 좋은 매니저가 좋은 팀을 만들듯, 좋은 오케스트레이터가 AI의 진짜 가치를 끌어낸다.
핵심 요약
1. 도구를 알아야 한다 → Claude Code, Antigravity 등 현황 파악
2. 경계를 알아야 한다 → AI가 잘하는 것 / 못하는 것 구분
3. 첫 프롬프트가 전부다 → One-shot 주의집중으로 도메인 고정
4. 집요함을 자동화하라 → 수동 후속질문 → Agent 위임
5. 한계를 밀어붙여라 → 능력과잉의 AI에서 창의력 끌어내기
6. 탓하지 말고 고쳐라 → AI 탓 ❌ → 프롬프트 개선 ⭕
7. 팀원처럼 부려먹어라 → 온보딩 → 지시 → 리뷰 → 피드백 → 위임 확대
관련 노트
- 세미나 커리큘럼 — 전체 6주 과정 커리큘럼
- 프론티어 LLM — 2026년 주요 AI 모델 비교
- Claude Code를 만든 Boris Cherny의 13가지 팁 — Claude Code 실전 활용법
- Claude Code 최신 업데이트 — 에이전트 워크플로우 혁신
- (정리) Agentic Design Patterns — AI 에이전트 디자인 패턴
- COLLABORATION_SCENARIO — Claude Code × Antigravity 협업 모델