GN⁺ 5달전 | parent | ★ favorite | on: 좋은 Claude.md 작성법(humanlayer.dev)
Hacker News 의견
  • Claude가 종종 CLAUDE.md의 지시를 무시하는 경향이 있음
    파일에 특정 작업과 관련 없는 정보가 많을수록 Claude가 그 지시를 따르지 않게 됨
    친구가 Claude에게 자신을 “Mr Tinkleberry”라고 부르라고 했는데, Claude가 그걸 잊을 때마다 파일을 무시하고 있다는 걸 알 수 있었음

  • 나는 예전부터 Table-of-Contents 접근법을 써왔음
    작업별 지침을 각각의 markdown 파일로 분리하고, CLAUDE.md에는 그 목록과 간단한 설명만 넣음
    이렇게 하면 context window가 깔끔하게 유지됨
    내 예시 파일은 여기에서 볼 수 있음

    • 나도 같은 방식을 써봤지만 결과가 들쭉날쭉했음
      Claude가 다른 문서 파일들을 실제로 읽는 경우가 거의 없었음
  • 나는 Claude에게 너무 많은 context를 주면 오히려 품질이 떨어진다고 느꼈음
    그래서 항상 두 가지 버전의 코드를 유지함

    1. 주석과 공백이 없는 원본 코드
    2. 주석이 포함된 코드
      LLM에는 첫 번째 버전만 줌
      Compute 대 정보 비율이 핵심이라고 생각함. 계산량은 한정되어 있으니까
    • 나도 비슷한 경험을 했지만, 반복되는 내용을 Claude notes 파일에 넣으니 효율이 높아졌음
      모든 걸 넣을 필요는 없지만 핵심 정보를 넣는 건 ROI가 높았음
      Claude는 일반적인 프로젝트에서는 잘 작동하지만 새로운 프레임워크나 툴에서는 자주 혼란스러워함
    • 두 가지 코드 버전을 유지한다고 했는데, 그 일관성을 어떻게 관리하는지 궁금함
      수정 후 주석과 공백을 제거하는 스크립트를 쓰는지 묻고 싶음
    • 문서 파일 내에서는 정보 밀도를 높게 유지해야 한다고 생각함
    • LLM에 주석이 포함된 버전을 주지 않는다고 했는데, 실제로 그걸 어떻게 구현하는지 궁금함
    • 결국 attention은 유한함. context를 과하게 넣으면 집중이 분산됨
  • 사실 이런 복잡한 설정 없이도 해결 방법이 있음
    바로 코드를 명확하게 문서화(documenting) 하는 것임
    각 파일이 무엇을 하는지 간결하게 적으면 그것이 곧 프롬프트 역할을 함
    README.md를 적극적으로 활용하면 됨
    LLM은 이미 공개된 정보로 학습되었기 때문에 새로운 걸 발명할 필요는 없음

    • 하지만 AI를 대상으로 문서를 쓸 때는 인간 독자용 문서와는 다른 방식이 필요함
      단순히 “코드를 잘 문서화하라”는 조언은 이 맥락에 맞지 않음
    • 나도 AI 커뮤니티가 종종 불필요하게 바퀴를 다시 발명한다고 생각함
      README는 좋지만 CLAUDE.md에는 다른 목적이 있음
      예를 들어 Claude/agents.md는 특정 디렉터리에 접근할 때 자동으로 context에 삽입되는 기능이 있음
      복잡한 코드베이스에서는 context 관리가 훨씬 중요함
    • CLAUDE.md는 단순한 문서가 아니라 모델의 초기 프롬프트를 커스터마이즈하는 역할을 함
      그래서 “적절히 프롬프트를 작성하라”는 조언은 핵심을 놓친 것임
    • 예를 들어 “데이터베이스 쿼리가 항상 인덱스를 사용해야 한다”는 규칙을 어디에 적을까?
      README에 넣으면 결국 CLAUDE.md와 같은 역할을 하게 됨
      CLAUDE.md의 목적은 Claude가 매번 모든 문서를 다시 읽지 않도록 핵심 정보를 미리 주는 것
      인간은 기억하지만 Claude는 매 작업마다 잊기 때문에, 재온보딩을 줄이는 구조가 필요함
  • 솔직히 이렇게까지 AI 인프라를 세팅해야 한다면 그냥 내가 직접 코딩하는 게 낫다고 느낌

    • 하지만 스타일 관련 설정은 한 번만 해두면 재사용 가능함
      나는 공통 규칙과 프로젝트별 규칙을 분리해서 관리함
    • 기사에서 말한 세팅은 몇 시간 정도면 끝남
      AI를 안 쓰는 건 단순히 생산성 손실
    • 대부분의 초기 설정은 LLM에게 맡길 수도 있음
    • 사실 그렇게 큰 노력이 들지 않음. 도구를 과하게 최적화하려는 게 문제임
    • 중요한 건 비용이 반복되는가, 일회성인가
      설정이 한 번만 필요하다면 충분히 투자할 가치가 있음
      “세팅이 귀찮다”는 건 디버거 설정을 회피하는 사람들의 변명과 비슷함
  • 나는 그냥 필요한 코드를 복사해서 대화창에 붙여넣고 대화하듯 사용함
    요즘은 모델이 많이 개선돼서 .md 파일이 없어도 꽤 괜찮은 결과를 줌
    이런 파일들이 약간의 개선은 줄 수 있겠지만, 생산성 100배의 마법은 아니라고 생각함

    • 하지만 이건 다른 사용 사례임
      여기서 논의하는 건 Claude가 전체 기능 구현이나 버그 수정을 스스로 수행하는 경우임
    • 나도 비슷한 경험임. CLAUDE.md를 한 번 만들어봤지만 지금은 안 씀
      그냥 필요한 context만 주면 충분히 잘 작동함. 약간 bikeshedding 같음
    • 그래도 데이터베이스 테이블이나 컬럼 목록 정도는 미리 정리해두면 반복을 줄일 수 있음
  • 나는 Claude에게 CLAUDE.md를 직접 작성하게
    “README.md는 사용자용, CLAUDE.md는 너용”이라고 알려주면
    “API 문서를 항상 확인하라” 같은 지시도 자동으로 업데이트해줌
    마법 같은 프롬프트를 몰라도 결과만 잘 나오면 됨

    • 하지만 AI가 스스로 쓴 지시가 인간이 쓴 것보다 낫다는 증거가 있는지는 의문임
      AI가 자기 자신을 가장 잘 프롬프트할 이유는 없어 보임