1. Claude Skills: 기존 기능과의 차이점과 핵심 원리 [0]

thumbnail Claude Skills는 점진적 공개(Progressive Disclosure)와 결과의 일관성과 재현성(Deterministic)을 보장하는 파일 시스템 기반 아키텍처를 통해 Claude의 효율성을 극대화하는 기능이다.

1.1. Claude Skills의 정의와 필요성 [14]

  1. Claude Skills의 정의 [14]
    1. Claude Skills는 에이전트가 특정 작업에서 더 나은 성능을 발휘할 수 있도록 동적으로 탐색하고 로드할 수 있는 지침, 스크립트, 리소스가 정리된 폴더이다. [16]
    2. 이는 사용자의 전문 지식을 Claude에 조합 가능한 리소스로 패키징하여 Claude의 기능을 확장하고, 범용 에이전트를 특정 작업에 특화된 에이전트로 변환하는 것을 가능하게 한다. [18]
  2. 기존 기능과의 차이점 이해의 어려움 [4]
    1. Claude Skills는 기존의 커스텀 커맨드, 커스텀 서브에이전트와 같은 Claude 코드 기능들과의 차이점을 이해하기 어렵다는 의견이 많았다. [4]
    2. 이러한 이해의 어려움을 해소하기 위해 Claude Skills의 개념과 작동 방식을 명확히 설명하고자 한다. [13]

1.2. Claude Skills의 아키텍처와 작동 방식 [23]

  1. 파일 시스템 기반 아키텍처 [24]
    1. Claude Skills는 MCP(Multi-modal Capabilities Platform)와 유사한 개념으로, 에이전트가 작업 수행에 필요한 스킬을 자동으로 불러오는 방식이다. [25]
    2. 스킬은 프로젝트, 사용자, 플러그인 단위로 관리될 수 있으며, 각 스킬 폴더 안에는 반드시 skill.md 파일이 포함되어야 한다. [32]
    3. skill.md 파일 외에는 다양한 포맷의 파일들을 자유롭게 포함시킬 수 있다. [34]
  2. skill.md 파일의 구성 [38]
    1. skill.md 파일은 마크다운 형식으로 작성되며, 프론트 메터(Front Matter)와 본문으로 구성된다. [38]
    2. 프론트 메터에는 스킬의 이름(name)과 설명(description)을 포함해야 한다. [42]
    3. 설명은 스킬을 사용할 수 있는 조건과 기능을 상세하게 기술해야 하며, 이는 에이전트가 스킬을 정확히 인지하고 선택하는 데 도움을 준다. [45]
    4. 본문에는 스킬이 수행해야 할 작업에 대한 설명을 작성한다. [53]
  3. 콘텐츠 레퍼런싱과 점진적 공개 (Progressive Disclosure) [56]
    1. 스킬 내에서 다른 파일(예: references.md, forms.md)을 참조할 수 있으며, 이는 . 또는 ..을 사용하여 현재 위치를 기준으로 경로를 지정한다. [57]
    2. 점진적 공개(Progressive Disclosure)는 에이전트가 필요한 정보만 단계적으로 로드하여 컨텍스트를 효율적으로 사용하는 방식이다. [65]
    3. 레벨 1: 프론트 메터 [70]
      1. skill.md의 메타데이터(이름, 설명)는 항상 컨텍스트 윈도우에 로드되어 에이전트가 보유한 스킬과 사용 조건을 인지하도록 한다. [71]
      2. 이는 약 100 토큰 정도를 차지한다. [73]
    4. 레벨 2: skill.md 본문 [75]
      1. 스킬이 트리거될 때, 즉 에이전트가 해당 스킬을 사용하기로 결정했을 때 본문 내용이 로드된다. [78]
      2. 본문 내용은 5,000 토큰 미만으로 제한되어 과도한 컨텍스트 사용을 방지한다. [80]
    5. 레벨 3 이상: 참조된 파일 [82]
      1. references.md나 forms.md와 같은 참조된 파일들은 에이전트가 특정 기능을 수행하기 위해 필요하다고 판단될 때만 로드된다. [83]
      2. 이는 에이전트가 전체 내용을 한 번에 로드하는 것이 아니라, 필요한 부분만 선택적으로 컨텍스트에 포함시켜 컨텍스트를 크게 절약할 수 있게 한다. [90]
      3. 레벨 3 이상의 파일들은 컨텍스트 제한이 없어 필요에 따라 무한히 로드될 수 있다. [96]

1.3. Claude Skills의 핵심 강점: 코드 실행과 재현성 [100]

  1. 코드 실행을 통한 결과의 일관성 및 재현성 [102]
    1. Claude Skills는 참조된 파일 내의 스크립트(예: Python 스크립트)를 직접 실행할 수 있다. [104]
    2. 이 과정에서 Claude는 스크립트 파일이나 대상 파일(예: PDF) 자체를 컨텍스트에 로드하지 않고, 스크립트 실행 명령만으로 작업을 수행한다. [113]
    3. 이는 컨텍스트를 절약할 뿐만 아니라, 결과의 일관성과 재현성(Deterministic)을 보장한다. [115]
  2. 결정론적(Deterministic) 실행의 중요성 [117]
    1. 결정론적(Deterministic)이란 동일한 입력에 대해 항상 동일한 출력을 생성하는 것을 의미한다. [117]
    2. 일반적인 LLM은 비결정론적(Non-deterministic)이어서 동일한 질문에도 매번 다른 답변을 생성할 수 있다. [119]
    3. 하지만 실제 코드를 실행하는 방식은 입력이 동일하면 항상 동일한 출력을 보장하므로 결정론적이다. [128]
    4. Claude Skills는 이러한 결정론적 실행을 통해 사용자가 항상 일관되고 예측 가능한 결과를 얻도록 돕는다. [132]

1.4. Claude Skills vs. 기존 기능 비교 [135]

  1. 실행 방식 [135]
    1. 명시적 실행(Explicit): 사용자가 직접 특정 커스텀 커맨드, 서브에이전트, 스킬을 지정하는 방식이다. [135]
    2. 암묵적 실행(Implicit): Claude가 필요에 따라 자동으로 스킬이나 커스텀 서브에이전트를 결정하여 사용하는 방식이다. [137]
    3. 커스텀 커맨드는 사용자가 직접 명시해야 하지만, 스킬과 커스텀 서브에이전트는 정의만 해두면 Claude가 자동으로 결정하여 사용한다. [138]
  2. 점진적 공개(Progressive Disclosure) [142]
    1. 커스텀 커맨드와 커스텀 서브에이전트는 모든 내용을 한 번에 컨텍스트에 로드하는 풀(Full) 방식을 사용한다. [143]
    2. 반면, Claude Skills는 필요한 파일만 선택적으로 로드하는 점진적(Progressive) 방식을 사용하여 컨텍스트를 크게 절약하고 환각(Hallucination)을 줄인다. [144]
  3. 컨텍스트 소모 정도 [146]
    1. 커스텀 커맨드와 커스텀 서브에이전트는 모든 내용을 로드하여 컨텍스트를 전부 소모하는 반면, Claude Skills는 필요한 만큼만 소모하여 훨씬 효율적이다. [147]
  4. 실행 컨텍스트 [149]
    1. 커스텀 커맨드와 스킬은 메인 에이전트에서 실행된다. [151]
    2. 커스텀 서브에이전트는 서브에이전트에서 실행되며, 이는 메인 에이전트의 컨텍스트를 아낄 수 있지만 서브에이전트의 모든 내용을 메인 에이전트가 알 수는 없다. [152]
  5. 결정론성(Determinism) [157]
    1. 커스텀 커맨드와 커스텀 서브에이전트는 LLM의 자유도에 맡겨져 비결정론적 결과를 생성할 수 있다. [158]
    2. Claude Skills는 코드 실행을 통해 결정론적이고 일관된 결과를 얻도록 설계되어 있다. [161]

1.5. Claude Skills 실습: PDF 변환 스킬 [165]

  1. PDF 스킬 설정 [166]
    1. 엔트로픽에서 제공하는 PDF 스킬 예제를 활용한다. [166]
    2. .claude 폴더 안에 skills 폴더를 만들고, 그 안에 스킬 이름(예: pdf)을 가진 폴더를 생성한다. [167]
    3. 각 스킬 폴더 안에는 skill.md 파일이 필수적으로 포함되어야 한다. [169]
    4. skill.md 파일 상단에는 이름과 설명을 포함하는 프론트 메터가 있어야 한다. [171]
    5. skill.md 본문은 최대 5,000 토큰으로 제한되며, 사용법은 references.md나 forms.md와 같은 다른 파일에서 참조하도록 구성한다. [173]
    6. Claude 실행 시, skill.md의 프론트 메터는 항상 로드되어 Claude가 스킬의 존재와 기능을 인지하게 된다. [178]
  2. PDF 스킬 작동 방식 시연 [180]
    1. "PDF를 이미지로 바꿔줘"와 같은 요청 시, Claude는 pdf 스킬을 사용하기로 결정한다. [181]
    2. 스킬 내에서 필요한 경우 references.md나 forms.md와 같은 다른 파일들을 로드하여 작업을 수행한다. [183]
    3. forms.md 파일에는 스크립트 실행 방법과 실제 Python 코드가 포함되어 있다. [184]
    4. Claude에 "tell me what skills you have"라고 질문하면 pdf 스킬이 있음을 확인할 수 있다. [188]
    5. 컨텍스트를 클리어한 후 "테스트 PDF를 이미지로 바꿔줘"라고 요청하면, 프론트 메터가 로드되어 pdf 스킬이 자동으로 실행된다. [190]
    6. 요청 결과로 4페이지 분량의 PDF 이미지가 성공적으로 생성된다. [198]
  3. 결정론적 결과 확인 [201]
    1. Claude Skills는 명확한 커맨드와 스크립트를 통해 결정론적 결과를 얻을 수 있다. [202]
    2. PDF 스킬 예제는 정확한 스크립트를 포함하고 있어 결정론적 결과를 보장한다. [203]
    3. 컨텍스트를 완전히 클리어한 후 다시 "테스트 PDF 이미지로"라고 요청해도, 동일한 스킬이 실행되며 이전과 완전히 동일한 결과값을 생성한다. [204]
    4. 이것이 Claude Skills의 강점이다. [208]

1.6. 결론 및 활용 제안 [209]

  1. Claude Skills는 기존 기능과의 차이점을 명확히 이해하고 활용하면, 특정 상황에 유리하게 사용할 수 있다. [209]
  2. 이제 Claude Skills를 적극적으로 활용해 보기를 권장한다. [210]