반응형
반응형

에이전트가 소극적인 건 성격 문제가 아니라 지시문 문제입니다. 어디서 멈춰야 할지를 알려주지 않으면, 에이전트는 가장 안전한 지점 — 첫 번째 답변 — 에서 멈춥니다.

대상: 로컬 VS Code에서 Claude Code를 쓰는 개발자 목적: 매번 확인받지 않고 한 번의 지시로 끝까지 진행시키기


1. 에이전트가 멈추는 세 지점

능동성을 설계하려면 먼저 어디서 멈추는지를 알아야 합니다. 실제로 멈추는 이유는 딱 세 가지입니다.

멈추는 이유증상해결 위치
완료 조건이 없다 "리팩터링 해줘"에는 끝이 없음. 설명 한 편 쓰고 턴을 넘김 지시문
권한에서 막힌다 파일 수정·명령 실행마다 승인 대기 → 자율 진행이 아니라 20번의 클릭 권한 설정
애매해서 되묻는다 선택지가 갈리는 지점에서 진행 대신 질문을 택함 지시문(판단 기준)

아래 다섯 요소는 이 세 지점을 지시문 안에서 미리 막아두는 방법입니다.


2. 능동적 요청문의 다섯 요소

순서는 상관없지만, 다섯 개가 다 있으면 에이전트는 되묻지 않고 끝까지 갑니다.

2-1. 목표 — 행동이 아니라 "상태"로 쓴다

"~를 해줘"는 한 번의 행동으로 끝납니다. "~인 상태로 만들어"는 그 상태가 될 때까지 반복하게 만듭니다. 이 한 끗 차이가 능동성의 대부분을 결정합니다.

  • ❌ 테스트 고쳐줘
  • npm test가 전부 통과하는 상태로 만들어

2-2. 완료 판정 — 에이전트가 직접 실행할 수 있는 검증 명령을 준다

사람이 눈으로 확인하는 기준 말고, 터미널에서 참/거짓이 나오는 기준을 주세요. 그래야 에이전트가 자기 작업을 스스로 채점하고 다시 시도합니다.

완료 기준: npm run lint, npm run build, npm test 세 개가 모두 exit 0.

2-3. 중단 규칙 — "멈추지 마"와 "여기선 멈춰"를 함께 준다

중간 확인을 금지하되, 진짜 위험한 예외는 명시적으로 열어두세요. 예외를 안 주면 에이전트는 불안해서 계속 되묻거나, 반대로 건드리면 안 되는 걸 건드립니다.

중간에 확인 요청하지 말고 끝까지 진행해. 단 운영 DB 접근 · git push --force · 시크릿 파일 수정은 실행 전에 반드시 멈추고 물어봐.

2-4. 판단 기준 — 갈림길에서 쓸 기본값을 미리 준다

"애매하면 물어봐"는 곧 중단입니다. 대신 "애매하면 이렇게 해"를 주면 진행됩니다. 가정 세우는 걸 막지 말고, 대신 나중에 보고하게 하세요.

판단이 갈리면 기존 코드 스타일을 따르는 쪽으로 결정하고, 세운 가정은 마지막에 목록으로 보고해.

2-5. 작업 범위 — 마음대로 해도 되는 영역을 못 박는다

범위가 열려 있으면 에이전트는 조심스러워집니다. 자유 영역과 금지 영역을 같이 주면 그 안에서는 확실히 능동적으로 움직입니다.

src/**, tests/** 안에서는 파일 생성·삭제·수정 다 알아서 해. migrations/, .env*, package-lock.json은 손대지 마.

2-6. (보너스) 보고 — 끝에 무엇을 받을지 정한다

보고 형식을 지정하면 에이전트가 중간 설명을 줄이고 실행에 집중합니다. 진행 중 수다가 줄어드는 부수 효과도 큽니다.

진행 중 설명은 최소로. 끝나면 변경 파일 목록 / 세운 가정 / 남은 리스크 세 항목만 보고해.


3. 같은 일, 다른 지시문 (Before / After)

사례 A. 버그 수정

❌ 멈추는 지시문

 
로그인 API에 버그 있는 것 같은데 좀 봐줘.

범위·완료조건·권한이 전부 비어 있음. 에이전트는 코드를 읽고 "이런 것 같습니다" 리포트를 쓰고 멈춥니다.

✅ 끝까지 가는 지시문

 
로그인 API에서 만료 토큰이 401 대신 500을 반환하는 버그를 재현부터 수정까지 끝내줘.

1) 실패하는 테스트를 먼저 작성해서 재현하고
2) 원인을 고치고
3) npm test가 전부 통과할 때까지 반복해.

src/auth/**, tests/** 안에서는 알아서 수정해.
중간 확인 없이 진행하고, 끝나면 변경 파일과 원인 한 줄만 보고해.

상태 목표 + 검증 명령 + 범위 + 중단 금지. 재현 → 수정 → 검증 루프가 지시문 안에 들어 있습니다.


사례 B. 리팩터링

❌ 멈추는 지시문

 
이 코드 리팩터링 좀 해줘.

"리팩터링"은 끝이 없는 동사입니다. 어디까지가 완료인지 모르니 한두 개만 고치고 "이런 것도 가능합니다"로 끝납니다.

✅ 끝까지 가는 지시문

 
src/services 아래에서 200줄 넘는 파일이 하나도 없는 상태로 만들어줘.

먼저 대상 파일 목록과 분리 계획을 세우고, 승인 기다리지 말고 바로 실행해.
각 파일을 쪼갤 때마다 npm test를 돌려서 초록이면 다음 파일로 넘어가.
빨간불이면 최대 3번까지 스스로 고쳐보고, 그래도 안 되면 그 파일만 원복하고 목록에 남겨줘.

공개 API 시그니처는 바꾸지 마.

측정 가능한 완료 조건(200줄), 파일 단위 검증 루프, 실패 시 재시도 횟수와 폴백까지 지정.


사례 C. 의존성 업그레이드

❌ 멈추는 지시문

 
이 라이브러리 최신 버전으로 올려줄 수 있어?

가능 여부를 묻는 문장은 가능 여부에 대한 답을 받습니다. 게다가 breaking change 앞에서 반드시 멈춥니다.

✅ 끝까지 가는 지시문

 
axios를 최신 메이저로 올리고 빌드·테스트가 통과하는 상태로 만들어줘.

CHANGELOG의 breaking change를 먼저 확인하고, 우리 코드에서 영향받는 호출부를 전부 찾아서 고쳐.
마이그레이션 방법이 여러 개면 공식 문서 권장안을 택하고 이유를 마지막에 한 줄로 적어줘.

작업은 upgrade/axios 브랜치에서 하고, 커밋은 하되 push는 하지 마.

기본 판단 기준(공식 권장안)을 미리 주어 되묻기를 차단하고, 위험한 동작(push)만 명시적으로 금지.


4. 지시문만으로 안 되는 부분: 권한

지시문을 아무리 잘 써도 승인 프롬프트가 뜨면 거기서 멈춥니다. 자율 진행의 실질적인 병목은 대개 여기입니다.

수단어디서효과
자동 승인 토글 VS Code 확장 입력창 편집 승인을 매번 누르지 않아도 됨. 가장 손쉬운 첫 단계
/permissions 세션 중 명령 허용/거부 규칙을 눈으로 보며 추가. 여기서 정한 값이 설정 파일에 남음
--permission-mode CLI 실행 시 plan은 계획만, acceptEdits는 파일 편집 자동 승인. 지원 값은 claude --help로 확인
--allowedTools CLI 실행 시 "Bash(npm test),Read,Edit"처럼 필요한 것만 미리 열기. 가장 안전한 자동화 형태
claude -p "..." 터미널·스크립트 대화 없이 한 번에 실행. cron, git hook, CI에 붙일 때 사용

⚠️ 주의 — 모든 검사를 건너뛰는 모드(bypassPermissions 계열)는 사내 코드베이스에서 기본값으로 쓰지 마세요. 자유 영역을 지시문으로 좁히고 --allowedTools로 필요한 도구만 여는 쪽이 훨씬 안전하면서 체감 속도는 같습니다.


5. 매번 쓰지 말고 한 번만 박아두기 (CLAUDE.md)

다섯 요소 중 중단 규칙 · 판단 기준 · 작업 범위 · 보고 형식은 매 요청마다 달라지지 않습니다. 프로젝트 루트의 CLAUDE.md에 넣어두면 모든 세션에 자동 적용되고, 지시문은 목표와 완료 조건 두 줄로 짧아집니다.

 
markdown
# 작업 방식

- 작업은 계획 → 실행 → 검증 순서로 진행하고, 중간 확인 요청 없이 끝까지 간다.
- 완료 전 반드시 `npm run lint`와 `npm test`를 직접 실행해 통과를 확인한다.
- 테스트가 실패하면 최대 3회까지 스스로 수정하고, 그래도 안 되면 시도한 내용과 함께 보고한다.
- 판단이 갈리면 기존 코드 스타일과 기존 패턴을 따르는 쪽을 택하고, 세운 가정은 마지막에 목록으로 보고한다.
- 진행 중 설명은 최소로 한다. 완료 보고는 변경 파일 / 가정 / 남은 리스크 세 항목.

# 손대면 안 되는 것

- `migrations/`, `.env*`, `package-lock.json` 수정 금지
- `git push --force`, 운영 DB 접근은 실행 전 반드시 확인

이렇게 해두면 평소 요청은 이 정도로 줄어듭니다.

 
결제 취소 API에서 중복 취소가 막히는 상태로 만들어줘.

6. 이벤트에 자동으로 반응시키기 (Hooks)

지시문은 사람이 말을 걸어야 시작됩니다. 훅은 말을 걸지 않아도 특정 시점에 무조건 실행되는 규칙입니다. 프롬프트로 "저장하면 린트 돌려줘"라고 부탁하는 것보다 확실합니다.

훅 이벤트시점주 용도
SessionStart 세션이 열릴 때 환경 변수 로드, 브랜치 확인 등 준비 작업
PreToolUse 도구 실행 직전 위험한 명령을 실제로 차단할 수 있는 유일한 지점
PostToolUse 파일 편집 직후 포매터·린터·타입체크 자동 실행
Stop 응답이 끝난 뒤 요약 기록, 자동 커밋 등 마무리

.claude/settings.json 예시 — 파일을 편집할 때마다 prettier와 eslint를 자동 실행:

 
json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "npx prettier --write \"$CLAUDE_FILE_PATHS\" && npx eslint --fix \"$CLAUDE_FILE_PATHS\"",
            "timeout": 60
          }
        ]
      }
    ]
  }
}
  • 훅 스크립트는 stdin으로 이벤트 JSON을 받고, 종료 코드로 결과를 알립니다.
  • PreToolUse에서 exit 2를 반환하면 그 도구 호출이 차단됩니다.
  • 팀 공통 규칙은 .claude/settings.json(커밋), 개인 설정은 .claude/settings.local.json(gitignore)에 둡니다.
  • 이벤트 이름과 필드는 버전에 따라 늘어나므로, 적용 전 공식 훅 레퍼런스에서 현재 스키마를 확인하세요.

7. 반복되는 요청은 아예 명령으로 만든다

  • 슬래시 커맨드 — .claude/commands/fix-tests.md에 다섯 요소를 다 갖춘 지시문을 저장해두면, 다음부터는 /fix-tests 한 단어로 같은 품질의 요청이 나갑니다. $ARGUMENTS로 인자를 받을 수 있습니다.
  • 서브에이전트 — .claude/agents/*.md의 description에 "코드를 수정한 뒤에는 반드시 먼저 사용"처럼 언제 쓰는지를 적어두면, 사용자가 호출하지 않아도 Claude가 알아서 위임합니다. 능동성의 상당 부분이 이 한 줄에서 나옵니다.
  • /loop — 배포 상태나 CI처럼 "될 때까지 지켜봐야 하는" 일은 세션 안에서 주기적으로 다시 확인하게 할 수 있습니다.
  • GitHub Actions — PR·이슈처럼 사람이 자리에 없을 때 발생하는 이벤트는 anthropics/claude-code-action으로 넘기는 게 맞습니다. 로컬 VS Code 세션이 할 일이 아닙니다.

8. 복붙 템플릿

새 작업을 시킬 때 이 골격만 채우면 됩니다. CLAUDE.md를 이미 세팅했다면 앞의 두 항목만 써도 충분합니다.

 
[목표]  ______가 ______인 상태로 만들어줘.

[완료]  다음이 모두 통과하면 완료야: ______, ______

[절차]  1) ______  2) ______  3) 검증이 실패하면 최대 3회까지 스스로 고쳐

[범위]  ______ 안에서는 알아서 수정해. ______는 손대지 마.

[진행]  중간 확인 요청 없이 끝까지 진행해.
        단 ______는 실행 전에 멈추고 물어봐.
        판단이 갈리면 ______ 쪽으로 결정하고 가정은 마지막에 보고해.

[보고]  끝나면 변경 파일 / 세운 가정 / 남은 리스크만 알려줘.

9. VS Code 확장에서의 주의점

  • 입력창의 자동 승인 토글이 체감상 가장 큰 차이를 만듭니다. 여기부터 켜보세요.
  • 훅, 서브에이전트, 슬래시 커맨드, CLAUDE.md는 확장에서도 그대로 동작합니다. 설정 파일은 프로젝트의 .claude/ 아래에 두면 됩니다.
  • claude -p 같은 비대화형 자동화는 터미널 CLI 쪽입니다. cron이나 git hook에 물릴 작업은 확장이 아니라 CLI로 실행하세요.
반응형
반응형

[copilot]  GitHub Copilot 에서 내 정보가 공유되지 않게 설정

 

VS Code에서 Copilot이 내 정보를 학습에 사용하지 않도록 설정하려면, GitHub Copilot 설정과 VS Code 자체의 원격 분석(telemetry) 설정을 변경해야 합니다. 이는 개인 정보 보호를 강화하는 데 도움이 됩니다.

 

 

 

{ 
    //VS Code 원격 분석(Telemetry) 설정 변경
    "telemetry.telemetryLevel": "off",
    "telemetry.feedback.enabled": false,
    "workbench.enableExperiments": false,
    // 특정 파일 유형에서 Copilot 비활성화
    //.env, .ini, .json, .yaml 등과 같이 민감한 정보가 포함될 수 있는 특정 파일 유형에 대해 Copilot이 내용을 처리하거나 제안하는 것을 막을 수 있습니다.
    "github.copilot.enable": {
        "*": true, // 모든 파일 형식에 대해 기본적으로 활성화 (또는 false)
        "plaintext": false, // 예시: 일반 텍스트 파일에서 비활성화
        "dotenv": false, // .env 파일에서 비활성화
        "ini": false,    // .ini 파일에서 비활성화
        "json": false,   // .json 파일에서 비활성화
        "yaml": false    // .yaml 파일에서 비활성화
    }
}
반응형
반응형

[AI] Visual Studio Code(VS Code)에서 사용할 수 있는 코드 어시스턴트인 Copilot과 Gemini를 비교

 

 

 

Visual Studio Code(VS Code)에서 사용할 수 있는 코드 어시스턴트인 Copilot과 Gemini를 비교해 드리겠습니다. 두 도구 모두 AI 기반 코드 생성 및 지원 도구이지만, 지향점과 강점에 차이가 있습니다.


VS Code용 코드 어시스턴트 비교: Copilot vs Gemini

구분 GitHub Copilot Gemini (주로 Google Cloud Code for VS Code 통합)
개발 주체 GitHub / Microsoft Google
기반 AI 모델 OpenAI Codex (GPT-3 계열) Google Gemini (멀티모달 대규모 언어 모델)
주요 기능 - 실시간 코드 완성 및 제안: 함수, 코드 블록, 테스트 코드 등
- 주석을 코드로 변환: 자연어를 코드로 자동 생성
- 반복적인 코드 작성 효율화
- 코드 생성, 완성, 수정, 디버깅 지원: 프롬프트를 통한 코드 생성 및 개선
- 코드 설명 및 해석: 코드의 작동 방식 설명
- 오류 분석 및 해결 제안: 에러 메시지에 대한 디버깅 도움
- 대화형 지원: 자연어 질의응답을 통한 문제 해결 및 학습
VS Code 통합 GitHub Copilot 확장 프로그램 (매우 긴밀하게 통합) Google Cloud Code 확장 프로그램을 통한 통합 (주로 Duet AI/Gemini 기반)
강점 - 압도적인 코드 완성 능력: 방대한 코드 데이터 학습을 통한 높은 정확도
- 직관적인 사용성: 코드 작성 중 자동 제안
- 다양한 프로그래밍 언어 지원: 폭넓은 언어 커버리지
- 상용화 및 안정성: 오랜 기간 서비스되어 안정적
- 종합적인 개발 지원: 코드 작성 외 설명, 분석, 디버깅 등 폭넓은 기능
- 대화형 인터페이스: 복잡한 질문이나 개념 설명에 강점
- Google Cloud 서비스 연동: GCP 사용자에게 유리
- 멀티모달 능력 (향후 확장 가능성): 코드 외 다양한 데이터(이미지 등)와 연동 가능성
주요 사용 대상 - 코드 작성 속도를 높이고 싶은 개발자
- 반복적인 코드, 상용구(boilerplate) 작성을 최소화하고 싶은 경우
- 다양한 언어를 다루는 개발자
- 코드 이해 및 디버깅에 도움이 필요한 개발자
- 새로운 기술 학습 및 개념 이해가 필요한 경우
- Google Cloud 환경에서 개발하는 개발자
- 대화형으로 문제 해결을 선호하는 개발자
비용 유료 (개인 월별 또는 연간 구독), 학생/오픈소스 기여자 무료 유료 (Google Cloud Duet AI/Gemini for Developers 구독 모델, 또는 특정 클라우드 서비스 사용 시 포함)
Sheets로 내보내기

어떤 것을 선택해야 할까요?

  • 코드 자동 완성 및 작성 생산성이 최우선이라면 GitHub Copilot이 현재까지는 가장 강력하고 직관적인 도구로 평가받습니다. 코드를 쓰는 '속도'를 비약적으로 높여줍니다.
  • 코드 작성뿐만 아니라 코드 이해, 디버깅, 질문/답변, 학습 등 좀 더 종합적이고 대화형의 개발 지원을 원한다면 **Gemini (Duet AI)**가 더 적합할 수 있습니다. 특히 Google Cloud 환경에서 작업한다면 시너지가 큽니다.

두 도구 모두 각각의 장점이 명확하므로, 개인의 개발 스타일과 주력하는 작업에 따라 선택하거나, 상황에 따라 필요하다면 함께 활용하는 것도 고려해 볼 수 있습니다.

 

반응형
반응형

[PYTHON] Streamlit: 데이터 과학자의 쉬운 웹 제작 도구

 

vscode에서 streamlit 디버깅 하기

 

 

// conda env list
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "streamlit debug (p_ai env)",
            "type": "python",
            "request": "launch",
            "module": "streamlit",
            "args": ["run", "${file}"],
            "justMyCode": true,
            "python": "C:\\ProgramData\\anaconda3\\envs\\p_ai\\python.exe" // <--- 이 줄을 추가합니다. 
        }
    ]
}

 

 

https://github.com/ngio/py_ai/blob/main/README.md

반응형
반응형

[VSCODE] 14 VS Code Extensions Every Data Engineer Should Swear By for Maximum Productivity

 

 

1. Jupyter (85M+ downloads)

For Interactive Notebooks and Data Exploration

If you’re working with Python and data science, chances are you’ve used Jupyter notebooks. Well, this extension brings Jupyter functionality directly into VS Code. Whether you’re exploring datasets, running Python scripts, or testing ETL pipelines, this extension allows you to work in an interactive, notebook-style environment without leaving your code editor. It’s perfect for ad-hoc analysis, experimenting with new ideas, and visualizing your data right within your development setup.

Download extension here

 

8. Pylance (118M+ downloads)

For Python IntelliSense and Type Checking

Python is the lingua franca of data engineering, and Pylance supercharges your coding experience with advanced IntelliSense features. It provides type-checking, better autocompletion, and more accurate suggestions, all of which help you write cleaner, more efficient Python code. As a data engineer, you’re likely juggling multiple libraries, so having robust type information can prevent bugs and improve your productivity.

Get extension here

반응형
반응형

vscode-pdf

 

Display pdf file in VSCode.

 
반응형

+ Recent posts