Claude Code 실무 활용

KIST 연구원을 위한 2시간 입문 워크숍

황민호 수석

카카오 AI Studio · Forward Deployed Engineer

2026-04-28

제 소개를 짧게

  • 황민호 — 카카오 AI Studio Forward Deployed Engineer
  • 현장에서 팀들이 Claude Code를 도입할 때 옆에서 페어링
  • 오늘 자리도 "강의"보다 "현장 공유 세션"으로 진행

FDE의 일이라는 게 결국 "이 도구로 실제 일이 풀리느냐"를 함께 검증하는 자리입니다. 오늘도 그 연장입니다.

오늘의 약속 세 가지

  1. 손이 먼저 움직입니다. 강의보다 실습이 깁니다. 약 55분이 직접 타이핑하는 시간입니다.
  2. 예시는 모두 연구자 일과로. 피보나치·Hello World는 없습니다. 논문·CSV·회의록·R 스크립트만 다룹니다.
  3. 내일 써먹을 1개를 손에 쥐고 갑니다. "오늘 강의 들었다"가 아니라 "내 폴더에 산출물 1개가 생겼다"가 목표입니다.

잠깐, 손 한번 들어 주실까요

  • ① PowerShell·터미널을 매일 쓰시는 분
  • ② Git을 매일 쓰시는 분
  • ③ Claude Code를 1주일 이상 써 보신 분

이 세 손드는 비율을 보고 강사가 속도를 조정합니다. 정답이 있는 질문이 아닙니다.

강의 시작 전 환경 점검

  • Windows Terminal 또는 PowerShell이 켜져 있다
  • 작업 폴더는 ASCII 경로다 (예. C:\work\demo)
  • claude --version이 응답한다
  • Anthropic 로그인 또는 사내 키 안내를 받았다

하나라도 비어 있으면 지금 옆자리 짝꿍 또는 강사에게 알려 주세요.

오늘 다루지 않는

  • Claude Code의 모든 기능 망라 — 핵심 5가지에만 집중
  • 복잡한 자동화·CI/CD 통합 — 다른 자리에서
  • "제가 만든 멋진 도구 자랑" — 오늘은 여러분 도구만 만집니다
  • "AI에 시키면 다 됩니다" 같은 과장 — 한계도 같이 다룹니다

두 시간 후 여러분 손에 남는 것

1. 첫 응답

PowerShell에서 claude 실행. 내 폴더 구조를 한국어로 정리받은 화면.

2. CLAUDE.md

내 폴더에 5~10줄짜리 영구 지시 파일. 매번 같은 톤·언어·형식.

3. 시나리오 산출물 1개

논문 요약 / CSV 정리 / 회의록 통합 / 스크립트 디버깅 중 1개.

다 합쳐서 본인 폴더에 파일 3개. 이게 오늘의 결과물입니다.

1분 시연부터 보시죠

백 마디 설명보다 한 번의 화면이 빠릅니다.

시연 논문 1편 → 5줄 요약

지금 화면에서 직접 보여 드립니다.

  1. C:\demo\paper-2026\ 폴더로 이동
  2. claude 실행
  3. "이 폴더에 있는 PDF 한 편을 5줄로 요약해서 summary.md로 저장해"
  4. 30초 안에 결과 확인

방금 본 것은 챗봇이 아닙니다. 폴더를 읽고·도구를 호출하고·파일을 만들었습니다.

챗봇 vs 자동완성 vs Claude Code

비교 축ChatGPT/Claude.aiCopilotClaude Code
위치웹/앱에디터 내터미널·에디터·웹
스코프프롬프트 단위한 줄~함수코드베이스 전체
도구 호출제한적없음Bash·파일·웹·MCP
컨텍스트붙여넣기주변 코드폴더·git·CLAUDE.md 자동
변경 적용수동 복사한 줄 추천직접 편집·실행

출처. docs.anthropic.com/claude-code

같은 엔진, 다섯 가지 입구

  • Terminal CLI — 가장 풀 기능. 오늘은 이 기준
  • VS Code 확장 — 인라인 diff·@-멘션·플랜 검토
  • JetBrains 플러그인 — IntelliJ/PyCharm/WebStorm
  • Desktop 앱 — macOS/Windows 네이티브, 다중 세션
  • Webclaude.ai/code, 로컬 설치 없이

CLAUDE.md·설정·MCP는 다섯 입구 모두에서 공유됩니다.

모델 세 가지 — 한 줄씩만

모델특징언제
Opus 4.7가장 강한 추론·1M 컨텍스트가장 어려운 분석·다중 파일 변경
Sonnet 4.6속도·지능 균형·1M 컨텍스트일상 코딩·문서·리팩토링
Haiku 4.5가장 빠름·200K 컨텍스트대량 분류·요약·간단 변환

세션 중 /model로 전환. CLAUDE.md에 기본값 박아둘 수 있음.

2026-04-16 Opus 4.7 출시. 본 강의 기준 최신.

실습 1. 첫 응답까지 4줄

15분. PowerShell에서 claude 실행, 첫 응답.

실습 1 4줄로 첫 응답까지

PS C:\Users\researcher> chcp 65001
PS C:\Users\researcher> cd C:\work\demo
PS C:\work\demo> claude --version
PS C:\work\demo> claude
> 이 폴더의 구조와 주요 파일을 한국어로 5줄 정리해줘

① UTF-8 코드페이지 → ② ASCII 작업 폴더 → ③ 설치 확인 → ④ 실행 → ⑤ 첫 프롬프트

막히면 이 세 가지부터

증상원인처방
claude --version 미인식 PATH 미반영 새 PowerShell 창 열기. 또는 Git for Windows 설치 확인
로그인 화면이 안 뜸 브라우저 차단·사내 정책 강사·TA에게 손 들기. 사내 키 라우팅 안내
한글이 깨져 출력됨 콘솔 인코딩 chcp 65001 + Windows Terminal 사용

한 가지로 안 풀리면 다음 한 가지. 5분 이상 막히면 무조건 손 들기.

CLAUDE.md — 한 번 적고 반복하지 않기

동료에게 매번 똑같은 부탁을 하지 않는 비결.

CLAUDE.md가 뭐냐

  • 프로젝트 루트나 사용자 홈에 두는 마크다운 파일
  • 매 세션 시작 시 자동 로드. 영구적인 지시·맥락 제공
  • "한국어로 답해 주세요"를 매번 안 쓰는 비결

사용자가 매번 입력하던 시스템 프롬프트를, 파일로 한 번에.

어디에 두느냐 — 4가지

위치용도공유
C:\Program Files\ClaudeCode\CLAUDE.md조직 정책IT 배포
./CLAUDE.md프로젝트 공통git으로 팀 공유
~/.claude/CLAUDE.md개인 환경본인 모든 프로젝트
./CLAUDE.local.md프로젝트 개인 설정본인 (gitignore)

오늘 실습은 ./CLAUDE.md 한 곳만. 나머지는 들어만 두세요.

좋은 CLAUDE.md의 4원칙

  1. 200줄 이내. 길어지면 컨텍스트 비용 ↑, 준수율 ↓
  2. 구체적으로. "코드 정리해" 대신 "들여쓰기 2칸, 함수당 30줄 이내"
  3. @path/to/file로 import. 약어집·전문 용어 한 번에 주입
  4. /init로 자동 생성도 가능. 빈 폴더에서 출발이 막히면

페르소나별 CLAUDE.md 예시

# 신소재 박지현(A) — 논문 정리용
- 모든 답변은 한국어
- 인용은 Vancouver 형식, 출처 없는 인용 금지
- 표는 csv, 그림 캡션은 "Figure N. 제목 (조건, n)" 형식

# 시뮬레이션 이도윤(B) — 분석 폴더용
- Python 3.11 / pandas 2.x 가정
- 데이터 폴더 ./data/** 는 읽기만, 수정 금지
- 분석 결과는 ./analysis/ 아래에만 생성

# 박후 최서연(C) — 글쓰기 폴더용
- 한국어/영어 혼용. 한국어 우선
- 학술 영어로 교정 시 변경 사항을 한국어 코멘트로 요약

# 정책기획 김상훈(D) — 보고서 폴더용
- 보고서 양식. 1페이지 요약 + 본문 + 별첨
- 표는 모두 hwp/word 친화 (가능하면 4행 이내)

시연 CLAUDE.md 적용 전 vs 후

적용 전

User: 이 데이터를 정리해줘
Claude: Here is a summary in English...
- Column A has 3 missing values
- Column B is correlated with C (r=0.87)
...

적용 후

User: 이 데이터를 정리해줘
Claude: 한국어로 요약 드립니다.

| 항목 | 값 |
|------|-----|
| 결측 | A 컬럼 3건 |
| 상관 | B-C r=0.87 |
...

같은 프롬프트, 다른 답변. CLAUDE.md 5줄의 효과.

실습 2 내 CLAUDE.md 5줄

  1. 본인 작업 폴더에 CLAUDE.md 만들기 (메모장·VS Code·claude에게 위임 셋 중 택일)
  2. 핸드아웃의 페르소나 예시 베껴서 5~10줄 작성
  3. /clear 후 동일 프롬프트 두 번 실행 (CLAUDE.md 적용 전·후)
  4. 차이점 한 줄 메모
  5. 짝꿍에게 "내 CLAUDE.md 1줄"을 보여주기

8분 실습 + 1분 짝꿍 점검.

안전망 — 변경 전에 묻기, 위험은 사전 차단

"내 데이터를 AI가 멋대로 바꾸진 않을까"의 답.

가장 자주 듣는 질문

"내가 검증한 인용이나 수치를 AI가 멋대로 바꾸지 않을까. 그 변경을 내가 알아챌 수 있을까."

— 페르소나 A 박지현 (책임연구원)

답은 두 가지 안전망입니다.

  • 플랜 모드 — 변경 전에 계획만 받기
  • 권한 deny — 위험 명령 사전 차단

플랜 모드 — 변경 전에 계획만

  • 진입. 세션 중 Shift+Tab 두 번 (default → acceptEdits → plan)
  • 또는. /plan "이 폴더 정리해줘" 한 줄
  • 동작. Claude가 읽기·탐색만. 변경·실행 없음. 계획을 보여주고 승인 대기
  • 승인 시. auto / acceptEdits / 매 변경 수동 검토 / 재계획 중 선택

"보고서 12페이지를 8페이지로 줄여줘" 같은 큰 변경은 반드시 플랜 모드.

권한 모드 6종 — 일상은 위 두 줄만

모드자동 실행 범위적합한 상황
default읽기만시작·민감 작업
acceptEdits읽기+편집+일반 fs코드 검토하며 반복
plan읽기만 (편집 X)변경 전 계획
auto모두 + 분류기 검사긴 작업 (preview)
dontAsk사전 승인된 도구만잠긴 CI
bypassPermissions거의 모두격리 환경 외 절대 금지

강조. bypassPermissions·--dangerously-skip-permissions는 컨테이너·VM 전용.

위험 명령 사전 차단

// .claude/settings.json
{
  "permissions": {
    "allow": ["Bash(git status)", "Bash(Rscript *)", "Read(./data/**)"],
    "ask":   ["Bash(git push *)"],
    "deny":  ["Bash(Remove-Item *)", "Read(~/.ssh/**)"]
  }
}

평가 순서. deny → ask → allow. deny가 최우선.

시연 보고서 10p → 5p 줄이기

PS C:\work\report> claude
> /plan
> 이 보고서 10페이지를 5페이지로 줄여줘. 데이터 표는 보존.

[Plan 모드 진입]
1. report.md 읽기 — 10페이지 분량 확인
2. 섹션별 비중 분석 — 서론 3p, 결과 4p, 논의 3p
3. 줄이기 전략. 서론 1p, 결과 3p (표 유지), 논의 1p
4. 표 4개 모두 보존
5. 변경 후 어절 수 비교 보고

[승인하시겠습니까?] (y/n/edit/feedback)

실습 3 deny 1줄 + 플랜 모드

  1. 본인 폴더에 .claude/ 폴더 만들기 (없으면)
  2. .claude/settings.json에 deny 1줄 추가
    { "permissions": { "deny": ["Bash(Remove-Item *)"] } }
  3. /plan "이 폴더 정리해줘" 실행
  4. 계획만 출력되는지 확인. 변경 일어나면 무언가 잘못된 것
  5. 짝꿍에게 deny 1줄 + 플랜 출력 보여주기

8분 실습 + 짝꿍 점검 1분.

1부 끝

손에 쥔 것 세 가지

  • 첫 응답 화면 1장
  • CLAUDE.md 5~10줄
  • settings.json deny 1줄 + 플랜 출력

7분 쉬고, 본인 일을 가져옵니다.

휴식 7분

다음은 본인 일을 가져옵니다.

화장실 · 커피 · 짝꿍 잡담 · 강사에게 트러블 도움 요청

2부. 본인 일을 가져옵니다

25분. 4갈래 분기 중 1개를 끝까지.

4갈래 분기 — 본인 페르소나 가까운 쪽

(a) 논문 PDF 정리

PDF 1편 → summary.md
제목·저자·키워드·결과 5줄

A 시니어 / C 박후 우선

(d) R/Python 디버깅

실패하는 스크립트 → 원인·수정
플랜 모드로 계획부터

B 시뮬레이션 / C 박후 우선

(b) CSV 데이터 정리

CSV 1개 → 결측·이상치 보고서
원본은 deny로 보호

A 시니어 / D 정책기획 우선

(c) 한글 회의록 합치기

회의록 3개 → 통합 요약
UTF-8 인코딩 확인

D 정책기획 / 일부 A 우선

짝꿍과 같은 분기 가도 좋음. 분기 선택 3분.

모든 분기 공통 4단계

  1. CLAUDE.md 적용된 폴더에서 시작 — 1부에서 만든 그 폴더
  2. 플랜 모드로 계획부터/plan "..."
  3. 승인 후 acceptEdits로 실행 — Shift+Tab 한 번
  4. 결과 검증 — 산출물을 직접 열어 확인. 인용·수치는 사람이 검수

이 4단계는 어느 분기든 똑같습니다. 안전벨트입니다.

실습 4 25분 진행 가이드

  • 0~3분. 분기 선택 + 사전 자료 폴더로 이동
  • 3~22분. 메인 실습. 강사·TA가 분기별로 순회
  • 15분차. 강사가 (a)와 (b) 30초씩 화면 공유 — 페이스 보정
  • 22~25분. 짝꿍에게 산출물 보여주기

막히면 "내가 어디에 막혔는지 Claude에게 그대로 물어보세요". 메타 팁.

페르소나 B 추가 도전. 같은 작업을 /논문요약 file.pdf로 호출 가능하게 만들어 보세요. (블록 8 미리보기)

본인 폴더에 남길 산출물

분기파일명최소 내용
(a) 논문summary.md제목·저자·키워드 5개·결과 5줄
(b) CSVcleaned-data.md결측·이상치·기초 통계 표
(c) 회의록merged-notes.md일자별 정렬 + 카테고리 요약
(d) 디버깅fix-notes.md원인 1줄 + 수정 diff + 재현 명령

파일이 본인 폴더에 생기면 LO-4 도달.

확장 기능 — 한 컷씩만

방금 한 작업을 1줄 명령으로.

오늘 손으로 한 작업의 다음 단계

스킬 (Skills)

반복 작업을 /논문요약 한 줄로

서브에이전트

별도 컨텍스트로 분리된 전문가

MCP

사내 위키·DB·Slack 연결

훅 (Hooks)

"끝나면 알림" 같은 자동화

여기서부터는 페르소나 B 위주. 다른 페르소나는 "있다는 것만 기억".

스킬 — 워크플로우를 파일 1장으로

---
name: paper-summary
description: "PDF 논문을 받아 5줄 요약과 키워드 추출. 사용자가 PDF 경로를 줄 때 자동 발동"
allowed-tools: Read Bash(python *)
---

다음 절차로 PDF 논문을 정리한다.

1. PDF에서 텍스트 추출 (pdftotext 또는 PyMuPDF)
2. 초록 5줄 요약, 결과 3줄 요약
3. 핵심 키워드 8개
4. 결과를 `summaries/{filename}.md`로 저장

파일 위치. .claude/skills/paper-summary/SKILL.md

호출. /paper-summary file.pdf 또는 자동 발동

서브에이전트 — 별도 컨텍스트의 전문가

  • 별도 컨텍스트 윈도우 + 시스템 프롬프트
  • 메인 대화에서 분리되어 작업 → 요약만 반환 → 컨텍스트 절약
  • 비용 통제 — Haiku로 라우팅 가능
  • 빌트인. Explore (탐색), Plan (계획), general-purpose
  • /agents로 관리

이 강의자료 자체가 6명 에이전트 팀(researcher → analyst → curriculum → content/lab → reviewer)으로 만들어졌습니다.

MCP — 외부 시스템에 연결

  • Model Context Protocol — AI 도구를 외부에 연결하는 오픈 표준
  • 활용 예. 사내 위키 (Confluence)·Slack·Google Drive·DB·Jira
  • /mcp로 연결 상태 확인. claude mcp add로 추가
  • 망분리 환경 주의. 외부 MCP 서버는 사전 검토. allowManagedMcpServersOnly로 강제 가능

예. 사내 위키에서 SOP 검색 → 보고서 본문에 자동 인용.

훅 — 자동 트리거

  • 이벤트. SessionStart·UserPromptSubmit·PreToolUse·PostToolUse·Stop·Notification
  • 예. "응답 끝났을 때 데스크톱 알림", "Remove-Item * 실행 전 차단"
  • .claude/settings.jsonhooks 섹션

깊이는 핸드아웃 링크에. 흥미 있으면 1주일 안에 1개만.

안 쓸 이유의 80%는 여기에

정직하게 다루겠습니다.

환각 — 인용·수치는 사람이 검수

  • LLM은 인용·수치를 환각할 수 있습니다. 사실입니다.
  • 완화책 세 가지
    • CLAUDE.md에 "출처 없는 인용 금지" 명시
    • 인용·정량 수치는 사람이 검수 (자동 통과 X)
    • (file:line) 인용 강제 스킬 활용

"환각? 그냥 검토하면 돼요"는 답이 아닙니다. 구체적 완화책이 답입니다.

재현성 — 코드를 보존

  • 동일 프롬프트라도 모델·시점에 따라 결과가 다릅니다
  • 권장 패턴
    • 분석 결과는 R/Python 코드로 저장 — 사람이 직접 재실행 가능
    • Claude는 코드를 만들고, 사람이 실행
    • 최종 산출 직전 단계는 결정적 도구(Make, Snakemake 등)로

데이터 학습 — API/사내 라우팅

  • API 사용 시 기본적으로 학습에 사용되지 않음 (Anthropic 정책)
  • Pro/Max 컨슈머 플랜은 옵트아웃 절차 별도 확인 필요
  • 사내 라우팅 가능 — Bedrock·Foundry·Vertex
    • 데이터가 해당 클라우드 안에 머묾
    • 환경변수 ANTHROPIC_BEDROCK=1 등으로 활성화
  • 망분리 KIST 환경 — 사내 정책에 따라 다름. 강사가 별도 안내

망분리·강제 차단

  • 외부 도메인 접근 — 사내 정책 의존. WebFetch는 도메인 단위 allow/deny
  • permissions.deny로 위험 명령 강제 차단 (블록 5에서 했던 그것)
  • 샌드박싱 — Bash 명령의 OS 레벨 격리 (옵션)

한 줄 요약. 우려는 권한·플랜·코드 보존·라우팅 네 가지로 답합니다.

오늘 손에 쥔 5문장

  1. PowerShell에서 claude를 실행해 봤다
  2. 본인 폴더에 CLAUDE.md 5~10줄이 생겼다
  3. 플랜 모드를 켜 봤고 deny 1줄을 넣어 봤다
  4. 본인 시나리오 산출물 1개(summary.md 또는 ...)가 생겼다
  5. 보안 완화책 1개를 골라 두었다

5개 다 체크되면 LO-1~5 모두 도달.

내일·이번 주·다음 주

내일 (10분)

  • 본인 폴더에서 claude 한 번 더
  • 오늘 만든 CLAUDE.md 1줄 추가

이번 주 (1시간)

  • 다른 분기 시나리오 1개 더
  • 본인 슬래시 커맨드 1개 만들기

다음 주 (1~2시간)

  • 스킬 1개 정의 → 동료와 공유
  • 망분리 환경에서 1개 워크플로우 정착

더 깊이 — 추천 자료

  • 공식 문서 — code.claude.com/docs/en/overview
  • What's new — code.claude.com/docs/en/whats-new
  • Best practices — code.claude.com/docs/en/best-practices
  • Anthropic 사례 — "How Anthropic teams use Claude Code" PDF
  • 연구자 시각 — Patrick Mineault, "Claude Code for Scientists"

전체 링크는 핸드아웃 마지막 페이지에 모아 두었습니다.

질문 받겠습니다 — Q&A

  • 오늘 다룬 5블록(첫 실행·CLAUDE.md·플랜·메인 실습·보안) 어디든
  • 본인 작업에 적용할 때 막히는 지점
  • 망분리·라우팅·정책 관련 — "사내 채널로 답변"으로 닫을 수 있음

손 든 분 우선. 답하기 어려운 질문은 사내 채널로.

감사합니다

내일 1개를 시도하시면 오늘 강의는 성공입니다.

황민호 수석

카카오 AI Studio · Forward Deployed Engineer

사내 채널 · 이메일 (사내 안내)

2026-04-28 · KIST 연구원 워크숍