AI 코딩 도구를 저장소에 처음 연결할 때 권한과 첫 수정 범위는 어떻게 정하나요?
AI 코딩 도구의 첫 작업은 비밀정보 없는 연습 폴더에서 문장 한 곳만 고치는 정도로 시작하세요. 읽을 범위, 수정할 파일, 완료 조건을 지정하고 변경 비교 화면에서 나머지가 보존됐는지 확인합니다.
본문 근거: 공식 권한 문서 · 공식 권한 문서 · 공식 Run Modes
독립 실습: 한 문장만 고치기
README.md만 수정하도록 지정하고 “첫 작업”을 “첫 문구 수정 실습”으로 바꾸게 합니다. 완료 조건은 지정 문구 1곳 변경, 나머지 문장 보존입니다. 편집기의 변경 비교 화면 또는 Git 저장소라면 git diff -- README.md로 확인합니다. 이 단계는 앱 실행 코드가 없으므로 lint·build를 억지로 추가하지 않습니다. 파일이 보이지 않으면 폴더 선택을, 수정이 차단되면 허용 경로를 확인하고 전체 권한 해제로 해결하지 않습니다.
기대 결과는 README.md의 지정 문구 한 곳만 바뀐 diff입니다. 예를 들어 “첫 작업: 문장을 명확하게 고칩니다.”는 “첫 문구 수정 실습: 문장을 명확하게 고칩니다.”가 되고 뒤 문장은 유지됩니다. 앱 코드가 없으므로 이 연습의 증거는 파일 비교이며 build 통과가 아닙니다.
먼저 기준을 정합니다
AI에게 저장소를 맡길 때 첫 목표는 많은 코드를 생성하는 것이 아니라 안전한 작업 경계를 만드는 것입니다. 읽기, 쓰기, 명령 실행, 외부 접근 권한을 분리하고 작은 변경 한 건을 끝까지 검증합니다.
AI 코딩 도구의 제품 이름이나 UI는 바뀔 수 있지만, 저장소를 읽고 변경하고 검증한다는 기본 흐름은 같습니다. 따라서 특정 버튼 위치를 외우기보다 다음 질문에 답할 수 있어야 합니다.
- AI가 지금 어떤 파일을 읽을 수 있는가?
- 어떤 파일을 수정해도 되는가?
- 어떤 명령을 실행해도 되는가?
- 비밀정보가 컨텍스트에 포함되지 않았는가?
- 완료를 무엇으로 증명할 것인가?
요청을 작업 계약으로 바꾸기
목표: TaskFlow 개발환경 스타터의 실행 상태 문구를 명확하게 수정
수정 허용: apps/web/src/main.js
수정 금지: package.json, API, 인증 로직
완료 조건: 상태 문구 변경 + lint/build 확인 + 브라우저 표시 확인
검증: git diff, pnpm lint, pnpm build
좋은 요청은 구현 방법을 모두 대신 결정하는 문서가 아닙니다. 목표와 경계, 완료 조건을 명확히 해서 AI가 불필요한 범위를 추측하지 않게 만드는 것이 목적입니다.
설치·로그인·첫 실행
세 도구를 모두 설치할 필요는 없습니다. 독립 실습은 Cursor 하나만으로 시작할 수 있습니다. 공식 다운로드에서 운영체제에 맞는 설치 파일을 받아 설치하고 로그인한 뒤, 비밀정보가 없는 연습 폴더를 Open Folder로 엽니다. 새 파일 README.md에 “첫 작업: 문장을 명확하게 고칩니다.”를 저장합니다. Agent에게 “README.md를 읽고 한 문장으로 요약만 해 주세요”라고 요청하여 파일 접근과 응답을 먼저 확인합니다.
다른 도구를 선택했다면 Codex CLI 시작 안내 또는 Claude Code 설치 안내에서 운영체제 탭에 맞게 설치합니다. 각각 프로젝트 폴더에서 codex 또는 claude를 실행하고 로그인합니다. 이 글에서는 설치 자체를 실행 검증한 것으로 주장하지 않습니다.
제품별 권한은 따로 확인합니다
- Codex CLI: /status로 세션을 확인하고 /permissions에서 허용 범위를 확인합니다. sandbox는 파일·명령 접근 범위이고 approval policy는 승인 요청 시점입니다. 두 설정을 같은 뜻으로 쓰지 않습니다. 공식 권한 문서
- Claude Code: permission rules의 allow·ask·deny와 실행 모드를 확인합니다. default는 UI에서 Manual로 표시될 수 있습니다. 저장소 지침 CLAUDE.md는 이 권한 설정을 대신하지 않습니다. 공식 권한 문서
- Cursor: Settings → Agents → Approvals & Execution의 Run Modes를 확인합니다. 현재 문서의 Auto-review·Allowlist와 예전 Ask Every Time 설명을 혼용하지 않습니다. 로컬 Agent 설정을 Cloud Agent에 그대로 적용하지 않습니다. 공식 Run Modes
직접 해볼 일 · 입력과 검토 기준
독자 질문: AI가 저장소를 읽을 때 무엇부터 허용할까?
실습: 빈 연습 폴더에 README.md를 만들고 ‘첫 작업: 문장을 명확하게 고칩니다.’를 저장한 뒤 한 문장만 고쳐 보세요. Git을 쓰지 않는다면 편집기의 변경 비교로 시작합니다.
입력 예시: README.md의 ‘첫 작업: 문장을 명확하게 고칩니다.’를 ‘첫 문구 수정 실습: 문장을 명확하게 고칩니다.’로 바꿔 주세요. 이 파일만 수정하고, 다른 파일·명령 실행·외부 접속은 먼저 묻습니다. 변경 전후 문장과 확인 방법을 보여 주세요.
결과 검토: README.md 한 파일의 한 문장만 달라졌는지 비교합니다. 예상하지 않은 파일·명령·비밀정보 접근이 있으면 중단하고 변경을 되돌립니다. Git 환경이면 git diff -- README.md로 확인합니다.
수정 요청: 수정 범위가 넓어졌다면 ‘README.md의 해당 문장만 남기고 나머지 변경은 되돌려 주세요. 다시 diff를 제시해 주세요’라고 요청합니다.
다음 학습: 2회차에서는 같은 요청을 느슨한 지시와 검증 가능한 지시로 나누어 비교합니다.
확인 범위: 공식 자료를 대조했습니다. 이 글의 AI 도구 조작·저장소 변경·명령 실행은 편집자가 직접 수행하지 않았으므로 미확인입니다. 독자는 자신의 환경에서 결과를 기록해 주세요.
선택 실습: 같은 프로젝트로 연습하기
이 선택 실습은 TaskFlow 작업 관리 앱의 변경 요청을 AI와 함께 검토하는 연습입니다. 요청·코드·검증 결과를 구분해 기록합니다.
작은 문구 또는 단순 UI 수정처럼 영향 범위가 좁은 작업을 선택합니다. 요청 예시 구조: 목표 → 수정 허용 파일 → 수정 금지 영역 → 완료 조건 → 테스트 방법.
TaskFlow 실습
이어서 읽기: VS Code 1.113 업데이트: MCP와 Thinking Effort 변화. 누적 작업 기록은 docs/ai-log.md에 회차별로 추가합니다. 새로 진입하면 실제 개발환경 시작 ZIP을 별도 폴더에 풉니다. 이 앱에는 상태 문구와 API URL 표시가 있으며 작업 목록·검색·완료 필터는 없습니다. 상단의 README 한 문장 수정은 별도 연습 폴더의 작업입니다. 하단에서는 실제 스타터의 상태 문구 수정을 기록하며 두 파일과 결과를 혼동하지 않습니다.
실제 시작 파일은 개발환경 최종 체크포인트의 apps/web/src/main.js입니다. status.textContent에 있던 ‘개발환경 스타터가 실행 중입니다.’를 ‘TaskFlow 개발환경 준비 완료’로 바꾸는 한 곳의 문구 수정으로 연습합니다. 파일을 읽어 시작 문구가 일치할 때만 바꾸고, 다른 앱 상태라면 먼저 요청 범위를 조정합니다. 이는 Next.js의 가상 파일이나 새 기능 구현 결과를 주장하는 예제가 아닙니다.
작은 문구 또는 단순 UI 수정처럼 영향 범위가 좁은 작업을 선택합니다.
요청 예시 구조:
목표 → 수정 허용 파일 → 수정 금지 영역 → 완료 조건 → 테스트 방법.
AI가 수정한 뒤 git diff, lint/test/build 중 해당 검증을 실행하고 사람이 승인한 뒤 저장합니다.
실습은 가능한 한 작은 변경으로 시작합니다. 변경 전에 현재 working tree를 확인하고, AI가 작업한 뒤에는 대화 내용보다 실제 diff를 기준으로 판단합니다.
git status --short
git diff
프로젝트에 맞는 검증 명령이 있다면 함께 실행합니다.
pnpm lint
pnpm build
이 과정의 TaskFlow 기준은 pnpm 11.19.0이며 lint·build 스크립트를 사용합니다. test 스크립트는 없으므로 npm test나 pnpm test가 통과한다고 기록하지 않습니다. 별도 테스트가 있는 저장소는 package.json의 실제 명령을 추가하고, TaskFlow 동작은 브라우저 확인으로 별도 기록합니다.
변경을 검토하는 방법
Before: AI에게 “이거 수정해줘”만 전달
적용: 저장소 컨텍스트 + 범위 계약 + diff + 테스트 + 승인
After: 변경 이유와 검증 결과가 로그에 남는 작업
로그 항목: 요청 / 허용 파일 / 변경 파일 / 검증 명령 / 결과 / 승인 여부
검토할 때는 “코드가 그럴듯한가”가 아니라 요구사항과 diff를 비교합니다.
요청한 파일만 바뀌었는가
기존 규칙을 재사용했는가
새 dependency가 필요한가
오류 처리와 접근성을 놓치지 않았는가
검증 결과가 실제 실행 결과인가
되돌리기 쉬운 변경인가
실패와 위험
- 저장소 전체를 무조건 수정 허용
- 비밀정보 노출
- AI 답변만 보고 성공 판정
- 테스트 없이 대규모 수정
- 사용자가 이해하지 못한 명령을 승인
- 기존 변경사항과 AI 변경사항 혼합
AI가 틀릴 수 있다는 추상적인 경고보다 실패를 발견할 구조를 만드는 것이 중요합니다. 작은 diff, 명확한 검증 명령, 사람 승인 지점이 있으면 모델이 달라져도 같은 작업 원칙을 유지할 수 있습니다.
완료 체크리스트
- 특정 도구 전용 UI를 일반 원리처럼 쓰지 않음
- 현재 공식 문서와 권한 명칭 재확인
- 비밀정보 예시는 실제 값 없이 설명
- TaskFlow 첫 작업이 작은 범위인지 확인
- diff와 검증 결과가 완료 조건에 포함되는지 확인
누적 기록과 실행 결과
처음 진입하는 독자는 위의 독립 연습 폴더부터 시작합니다. 누적 실습은 실행 가능한 TaskFlow와 기존 Git 변경 비교 환경이 준비된 뒤 진행합니다.
현재 구조는 기존 TaskFlow 소스와 package.json을 유지하고, 학습 기록은 새로 만드는 docs/ai-log.md에 누적합니다. 이 경로는 앱 실행 파일이 아닌 실습용 기록 위치입니다. 기존 동명 파일이 있으면 덮어쓰지 않고 회차 항목을 추가합니다. 앱 수정 파일은 저장소 탐색 후 계약에 확정하며 문서의 예시 경로를 실제 파일로 가정하지 않습니다.
Before는 해당 회차의 기록 항목이 없는 상태이고, 적용은 위 실습을 수행하며 관찰 내용을 채우는 과정입니다. After는 아래 항목의 근거와 미검증 범위가 남은 상태입니다. 문서 제목을 바꾸는 것만으로 기능 구현이 완료된 것은 아닙니다.
아래는 docs/ai-log.md에 추가하는 회차 항목 전체입니다. 앱 전체 코드가 아닌 개발 로그 양식이며, 빈칸은 직접 확인한 결과로 채웁니다.
체크포인트: ai-step-01-start
작업 요청 / 목표 / 비목표:
시작 상태 / 적용 지침:
허용 파일 / 실제 변경 파일:
계획 / diff 요약:
실행 명령 / 실제 결과 / 증거 위치:
미검증 항목 / 필요한 조건:
사람이 확인·수정한 내용:
승인 여부 / 승인 대상:
commit: 미생성 또는 실제 확인한 식별자
실패 지점 / 복구점 / 다음 행동:
검증란은 성공·실패·미실행을 구분합니다. 이 양식 자체는 실행 성공이나 사람 승인 증거가 아닙니다. 앱을 바꿨다면 diff → pnpm lint·pnpm build → 필요한 브라우저 확인 → 사람 검토 → 승인 → commit 순서로 기록합니다. 로그만 편집한 단계는 내용 대조가 검증이며 앱 테스트 통과로 부풀리지 않습니다.
완료 체크포인트
ai-step-01-start
다음 학습
2회차 바이브 코딩이란? Cursor, Claude Code, Codex로 앱 만드는 방식과 현실
도구별 기능·권한 명칭·설치 방법은 발행 시점 공식 문서를 기준으로 다시 확인하고, 이 글의 원칙과 제품별 UI를 구분합니다.
글 소개·학습 준비·전체 목차

AI 코딩 도구 · 1 / 11
AI 코딩 도구 시작 가이드 저장소 컨텍스트 권한 첫 수정 검증
AI 코딩 도구를 처음 프로젝트에 연결할 때 필요한 최소 안전 기준을 만듭니다. 특정 도구 기능 소개보다 저장소를 읽게 하는 범위, 수정 허용 범위, 실행 권한, 비밀정보 제외, diff 검토와 테스트까지 한 번의 작은 작업으로 경험하게 합니다.
선수 지식
파일·폴더 열기와 텍스트 저장을 할 수 있으면 됩니다. Git을 모르면 첫 독립 실습은 편집기의 변경 비교로 진행할 수 있습니다.
이번 글에서 배우는 내용
- AI 코딩 도구가 저장소 컨텍스트를 사용하는 방식의 공통 개념
- 읽기·쓰기·명령 실행·외부 접근 권한을 서로 분리해 이해
- .env·토큰·비밀번호·개인정보를 컨텍스트에 넣지 않는 기준
- 요청에 목표·수정 범위·금지 범위·완료 조건을 포함하는 방법
- 한 번에 한 기능만 맡기는 첫 작업
- 결과를 답변이 아니라 git diff와 실행 결과로 검증
- 도구별 설치·로그인·권한 UI는 작성 시점 공식 문서 재확인
목차
이 글이 도움이 되었나요?
읽음 기록
읽음 — / 전체 11개 · 필수 9개
새 글 받아보기
RSS 리더에서 BlogFlow의 새 글을 확인할 수 있습니다.