inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지

🔥[MISSION 13] 미션 소개🔥

hook으로 특정파일 접근 막기 vs settings.json으로 접근 막기

79

balcony

작성한 질문수 1

0

제목 그대로 둘이 어떤 차이점이 있나요?

 

어떤 방법을 어떤 상황에서 사용하는게 좋나요?

 

차이가 없어보이는데 settings.json의 경우 할루시네이션이나 확률적으로 작동해서 hook으로 설정을 더 추천하는 걸까요?

react 인공지능(ai) claude

답변 2

0

짐코딩

안녕하세요! 🙂

결론부터 말씀드리면, 둘 다 시스템 레벨에서 작동하기 때문에 할루시네이션으로 뚫리는 건 아닙니다.

settings.jsonpermissions.deny는 특정 파일이나 명령어를 패턴으로 차단하는 방식이에요. Read(./.env), Bash(rm -rf *) 같은 식으로 와일드카드도 지원하고, 설정만 넣으면 바로 동작해서 간편합니다.

hooksPreToolUse는 도구 실행 직전에 외부 스크립트를 돌려서 검증하는 방식이에요. 단순 패턴 매칭으로 안 되는 복잡한 조건이 필요할 때 씁니다. 예를 들어 Bash 명령어 안에 담긴 SQL 내용을 파싱해서 SELECT만 허용하고 INSERT/DELETE는 막는다거나 하는 건 settings.json만으로는 어려워요. 그리고 hooks는 차단만 하는 게 아니라 도구 실행 후 자동으로 린터를 돌리거나, 입력값을 중간에 수정해서 전달하는 것도 가능합니다.

정리하면, 단순하게 "이 파일 못 읽게 / 이 명령어 못 쓰게" 수준이면 settings.json으로 충분하고, 명령어 내용을 직접 분석하거나 실행 전후로 뭔가 추가 동작이 필요하면 hooks를 쓰는 거예요 👍

감사합니다 🙏

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. Balcony님.

클로드 코드에서 특정 파일의 접근 제어에 관하여 고민이 있으신 것 같습니다. 파일 접근을 제한하는 두 가지 방법, 즉 Hook과 settings.json에 대해 설명드리겠습니다.

1. Hook

  • 주요 기능: 주로 코드를 실행하기 전에 특정 조건을 검증하고, 이벤트나 조건에 따라 실행을 제어합니다.
  • 사용 사례: 프로젝트 내에서 개발자가 직접 특정 파일이나 폴더에 대한 접근을 ‘강화된 제어’ 방식으로 설정하고자 할 때 주로 사용됩니다.
  • 장점: 명시적이고 조건부 실행이 가능하기 때문에 복잡한 규칙 설정이 가능합니다.

2. settings.json

  • 주요 기능: 클로드 코드에서 사전에 설정된 파일 접근 권한을 정의할 수 있습니다.
  • 사용 사례: 특정 경로에 대한 전역적이고 일관된 접근 제한을 설정하고자 할 때 사용됩니다.
  • 장점: 간단하게 설정이 가능하며, 한 번의 설정으로 전반적인 파일 접근을 제어할 수 있습니다.

추천 방법

  • Hook 사용: 프로젝트의 복잡한 파일 접근 제어가 필요한 경우나, 조건에 따라 동적으로 제어해야 하는 경우를 생각할 때 유리합니다.
  • settings.json 사용: 상대적으로 간단한 전역 설정이 필요한 경우, 설정 파일을 통해 쉽게 제어할 수 있어 보편적으로 사용됩니다.

여기에서 추가로 알아두실 것은, 이 두 가지 방법이 서로 보완적으로 사용될 수 있습니다. 즉, 기본적인 접근 제한은 settings.json으로 설정하고, 복잡한 규칙이나 동적 제어가 필요한 부분에 Hook을 추가할 수 있습니다.

원하시는 방식에 따라 두 방법을 적절히 혼합하여 사용하는 것이 좋습니다. 아래와 같은 유사한 상담을 통해 여러분의 활용 방식에 대한 정보를 더 얻으실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

프로젝트 이름

0

13

0

왼쪽 창이 달라요

0

22

1

이정도면 영상 다시 찍어야 되는거 아닌가요

0

24

1

statusline 문의드려요

0

20

1

화면을 tmux로 어떻게 열수 있나요? (VS 사용중)

0

22

1

진행이안되네요

0

30

1

/init을 하기 전인데, 강의화면처럼 settings.local.json이 없어요.

0

47

2

섹션 5 영상 안나옴

0

34

1

강의 화면이랑 실제 UI 화면들이랑 너무 다릅니다.

0

52

2

맥 커서에서 클로드 어떻게 실행하나요?

0

57

3

@에이전트 자동완성 기능

0

53

2

mac) brew 설치 후 에러

0

50

2

근본적인 질문

0

52

2

cursor UI

0

41

1

제7강 : sonnet으로 변경후 model 확인거 따라하는데 안됨

0

49

2

미션6 진행 관련 .html파일 미저장

0

40

2

.claude 가 없습니다. 왜그런가요

0

55

2

클로드 접속이 안되고 있습니다.

0

44

2

playwright 설치시 같이 설명해주세요 아니면 저같이 실수가 나오네요

0

45

1

git 복수로 커밋하기

0

66

3

Context7 설치 방법 바뀐 듯 한데...

0

50

2

\init를 할때마다 Claude.md파일이 자동으로 업데이트 되는지 궁금합니다.

0

49

2

영상에 나오는 pen 기능 앱이름좀 알수 있을까요?ㅎㅎ

0

55

2

plan mode에서 clear context 가 안보이는 이유

0

67

3