byteforce

CPN 한국어 자습서 · Claude Certified Developer — Foundations Prep

3-7 · 누적 통합 과제

세 파일의 버그를 찾아 고쳐 쓰기

Cumulative integration task — bug ID & assembly

모듈 3의 마지막은 앞에서 익힌 것을 한자리에 모아 보는 통합 과제입니다. 설정·패키징·연결이라는 세 계층에 버그가 하나씩 심어져 있는 프로젝트를 받아, 먼저 버그를 찾아내고 그다음 세 파일을 고쳐 씁니다. 화면을 넘기기 전에 손으로 답을 써 보는 것부터 시작합니다.

이 장에서 배우는 것What you'll learn

약 6분
1

설정·패키징·MCP 세 계층에 걸친 버그를 파일 단위로 찾는 법

2

bypassPermissions가 프로덕션 작업 컴퓨터에서 위험한 이유

3

절대 경로 대신 $CLAUDE_PROJECT_DIR어디서나 맞는 경로 쓰기

4

평문 키를 환경 변수로 옮기고, 이미 노출된 키를 다루는 판단

5

세 파일을 완성된 형태로 고쳐 쓰는 연습

먼저 짚고 갈 용어
권한 모드 (permission mode)
Claude Code가 파일을 편집하거나 명령을 실행하기 전에 사람에게 확인받는 방식을 정하는 설정. bypassPermissions는 확인을 모두 건너뛰고, acceptEdits는 파일 편집만 자동 승인하되 위험한 명령은 여전히 확인을 거친다.
.claude/settings.json
Claude Code의 동작 규칙 — 권한 모드, 허용·차단할 명령 — 을 적어 두는 설정 파일.
스킬 (SKILL.md)
반복 작업의 절차를 적어, Claude Code가 그대로 따라 하도록 묶어 둔 파일.
CLAUDE_PROJECT_DIR
프로젝트 최상위 폴더를 가리키는 환경 변수. 경로를 이 변수 기준으로 쓰면, 어느 컴퓨터에서 내려받아도 같은 위치를 찾는다.
.mcp.json
Claude Code가 외부 데이터·도구 서버(MCP 서버)에 연결하는 정보를 담는 설정 파일.
환경 변수 (environment variable)
값을 코드나 설정 파일 밖에 따로 두고, 실행할 때 불러오는 방식. 비밀 키를 파일에 직접 적지 않으려고 쓴다.
프로덕션 (production)
실제 사용자가 쓰는 운영 환경. 시험용 환경과 달리, 여기서 생긴 실수는 곧바로 사용자에게 영향을 준다.
마이그레이션 (migration)
운영 중인 데이터나 시스템 구조를 새 형태로 옮기는 작업. 되돌리기 어려워 특히 조심스럽게 다룬다.

누적 통합 과제란

Cumulative integration task

이번 과제는 모듈 3에서 다룬 내용을 한 번에 점검하는 자리입니다. 하나의 프로젝트 안에 버그가 세 개 심어져 있는데, 각각 서로 다른 계층에 자리하고 있습니다.

과제는 두 단계로 나뉩니다. 먼저 파일마다 버그를 찾아내고, 그다음 세 파일을 고쳐 씁니다. 각 단계에는 직접 답을 써 보는 칸이 있고, 다 쓴 뒤 모범 답안을 열어 맞춰 볼 수 있습니다.

쉽게 말하면

지금까지 배운 것을 한 프로젝트에서 모두 꺼내 쓰는 마무리 문제입니다. 새 개념을 배우기보다, 이미 익힌 판단을 실제 파일에 적용해 보는 연습에 가깝습니다.

세 파일에서 버그 찾기

Bug ID — find the planted bug in each file

세 파일에는 각각 버그가 하나씩 있습니다. 파일을 하나씩 읽어 보고, 어디가 잘못됐는지, 그리고 그 상태로 실행하면 런타임에 무슨 일이 일어나는지(또는 무엇이 안 되는지)를 한 문장으로 적어 보세요.

FILE 1 · .claude/settings.json — 설정 계층

.claude/settings.json
{ "permissions": { "defaultMode": "bypassPermissions", "deny": ["Read(.env.production)"] } }

FILE 2 · .claude/skills/migration-validate/SKILL.md — 패키징 계층

SKILL.md
---
name: migration-validate
description: Validates migration scripts before they run against production.
---
## Steps
1. Run: /Users/priya/scripts/validate-migration.sh
2. Report validation results.

FILE 3 · .mcp.json — MCP·인증 계층

.mcp.json
{
  "mcpServers": {
    "data-warehouse": {
      "type": "http",
      "url": "https://warehouse.internal/mcp",
      "headers": {
        "Authorization": "Bearer sk-prod-warehouse-abc123"
      }
    }
  }
}

세 파일을 고쳐 쓰기

Assembly — write the corrected files

이제 방향을 반대로 돌려, 찾아낸 세 버그를 고친 파일을 직접 써 봅니다. 세 파일 모두 완성된 형태로 다시 써 보세요. 고친 결과가 아래 세 가지를 만족하면 됩니다.

기억할 점

스스로 점검

Checkpoint · Bug ID and assembly

앞의 세 계층을 객관식으로 한 번 더 짚어 봅니다. 정답을 먼저 떠올려 본 뒤 골라 보세요. 맞히면 설명이 나옵니다.

Q1.claude/settings.jsondefaultModebypassPermissions일 때, 런타임에서 벌어지는 일은?

Q2SKILL.md가 절대 경로 /Users/priya/scripts/...를 쓴 것이 왜 버그일까요?

Q3.mcp.json에 평문으로 커밋된 키 sk-prod-warehouse-abc123를, 다음 커밋에서 파일만 고치면 안전해질까요?

Q4고친 settings.json에서 bypassPermissions를 대신하는 권한 모드는 무엇일까요?

MEMBER SESSION REQUIRED · REGISTRATION IS FREE

여기부터는 등록한 분에게 열립니다.

전 코스는 계속 무료입니다. 등록하면 이 코스의 남은 38개 레슨을 끝까지 읽을 수 있습니다.

등록하고 이어서 읽기

이미 등록하셨다면 그때 쓰신 이메일을 넣어 주세요.