hooks
-
Claude Code settings.json vs settings.local.json — 왜 둘로 나뉘었나IT 2026. 4. 23. 22:00
왜 파일이 두 개인가Claude Code를 쓰다 보면 어느 순간 홈 디렉토리에 ~/.claude/settings.json과 ~/.claude/settings.local.json이 나란히 생겨 있다. 이름이 비슷해서 처음에는 둘을 구별하지 않고 아무 쪽에나 설정을 적게 되는데, 이 둘의 역할은 명확하게 나뉘어 있다. 단순히 파일이 쪼개진 것이 아니라 공유 가능한 규칙과 개인 판단을 분리하기 위한 설계 결정이다.이 글에서는 Claude Code의 settings 계층 구조를 정리하고, .local.json이 접미사 하나로 무엇이 달라지는지, 그리고 어떤 설정을 어느 파일에 두는 것이 최선인지를 개인 환경의 실제 구성을 예로 들어 정리한다.Claude Code의 Settings 계층공식 문서에서 Claude ..
-
AI 에이전트가 뭘 했는지 추적하기 — 경량 감사 로그 구축기IT 2026. 4. 23. 21:00
전권을 줬더니 생긴 문제이전 글에서 AI 코딩 에이전트의 권한을 화이트리스트에서 블랙리스트로 전환했습니다. 191개 허용 목록 대신 Bash(*) 하나로 전부 열고, 위험 명령만 차단하는 방식입니다.작업 흐름은 쾌적해졌지만, 하나 빠진 것이 있었습니다."에이전트가 오늘 뭘 했지?"화이트리스트 시절에는 에이전트가 새로운 명령을 실행할 때마다 "허용하시겠습니까?" 프롬프트가 떴습니다. 불편했지만 무엇이 실행되는지 알고 있었습니다. 블랙리스트로 전환하니 에이전트가 조용히 수백 개의 명령을 실행하고, 사용자는 최종 결과만 봅니다.문제 없을 때는 괜찮지만, 뭔가 잘못됐을 때 원인을 추적할 방법이 없습니다. 파일이 사라졌는데 언제 삭제된 건지, 어떤 명령이 예상과 다르게 동작했는지. AI 에이전트 세션 로그가 있긴..
-
AI 코딩 에이전트의 권한 관리 — 화이트리스트에서 블랙리스트로 전환한 이유IT 2026. 4. 22. 23:00
191개 허용 목록을 관리하다 지쳤다AI 코딩 에이전트에게 터미널 명령 실행 권한을 주는 방식은 크게 두 가지입니다.화이트리스트: 허용한 명령만 실행. 나머지는 사용자에게 물어봄.블랙리스트: 전부 실행. 위험한 것만 차단.처음에는 당연히 화이트리스트를 선택했습니다. 안전하니까요. git *, python3 *, ls * 같은 패턴을 하나씩 추가했습니다.문제는 시간이 지나면서 드러났습니다.누적되는 일회성 항목에이전트가 새로운 명령을 실행하려 할 때마다 "이 명령을 허용하시겠습니까?" 프롬프트가 뜹니다. 허용하면 그 정확한 명령 문자열이 allow 목록에 추가됩니다. 그 결과:kill 44489 — 특정 PID를 죽이려 했던 일회성 명령cp /home/user/project/very/specific/path..
-
Claude Code Hooks로 AI 에이전트의 다단계 파이프라인을 결정적으로 만들기IT 2026. 4. 6. 21:00
Claude Code로 복잡한 자동화 파이프라인을 만들면 한 가지 근본적인 문제에 부딪힌다. LLM은 비결정적(non-deterministic)이다. "이 5단계를 순서대로 해줘"라고 SKILL.md에 적어놔도, 실제로는 3단계를 건너뛰거나 4단계를 까먹을 수 있다.이 글에서는 Claude Code의 Hooks 시스템을 활용해 AI 에이전트가 다단계 작업을 빠짐없이 수행하도록 강제하는 패턴을 소개한다.문제: "해줘"라고 했는데 절반만 하는 AI예를 들어 이런 파이프라인이 있다고 하자. 개인 독서 노트를 자동으로 정리하는 시스템이다:Step 1: 독서 앱에서 하이라이트 가져오기Step 2: 관련 기존 노트와 연결Step 3: AI 요약 + 핵심 인사이트 추출Step 4: 품질 검증Step 5: git co..