Skip to content

캐싱

개요

swag2mcp는 다운로드한 명세 파일을 캐시하여 이후 실행 시 MCP 서버가 더 빠르게 시작됩니다. 매번 동일한 명세 파일을 다운로드하는 대신 캐시된 복사본을 재사용합니다.

캐싱 작동 방식

원격 URL로 spec을 추가하면 swag2mcp가 다운로드하여 cache/ 디렉토리에 저장합니다. 다음 시작 시 캐시된 복사본이 여전히 유효한지 확인합니다. 유효하면 다운로드를 건너뜁니다.

캐시되는 항목

소스동작
원격 URL (http/https)항상 캐시됨. 한 번 다운로드 후 캐시가 만료될 때까지 재사용
로컬 파일 (specs/ 내)specs/ 디렉토리에서 직접 사용. 캐시되지 않음 — 변경 사항이 즉시 반영됨
로컬 파일 (specs/ 외)캐시로 복사됨. 소스 파일이 변경되면(수정 시간) 캐시가 무효화됨

캐시 만료 (TTL)

각 캐시 파일은 1시간에서 48시간 사이의 무작위 만료 시간을 받습니다. 무작위성은 모든 캐시 파일이 동시에 만료되는 것을 방지합니다(다운로드 폭주 현상 방지).

  • TTL은 캐시 시점에 고정되며 서버 재시작 시 변경되지 않습니다
  • 캐시 파일이 TTL 내에 있으면 재사용됩니다
  • TTL이 만료되면 파일이 다시 다운로드됩니다

캐시 구조

~/.swag2mcp/cache/
├── a1b2c3d4e5f6a7b8.spec    # 캐시된 명세 파일
├── a1b2c3d4e5f6a7b8.meta    # 메타데이터 (소스, TTL, 캐시 시간)
├── b2c3d4e5f6a7b8c9.spec
├── b2c3d4e5f6a7b8c9.meta
└── ...

캐시 키는 명세 파일 URL 또는 경로에서 파생됩니다. 각 캐시 파일에는 캐시된 시간과 만료 시간을 저장하는 .meta 파일이 함께 있습니다.

캐시 관리

강제 새로고침

swag2mcp update를 실행하여 전체 캐시를 지우고 모든 명세 파일을 다시 다운로드하세요:

bash
swag2mcp update

설정을 검증하고, 캐시를 지우고, 모든 것을 새로 다운로드합니다.

수동으로 캐시 지우기

bash
swag2mcp clean

모든 캐시된 명세 파일과 저장된 API 응답을 제거합니다. 다음에 MCP 서버를 시작할 때 모든 명세가 다시 다운로드됩니다.

자동 정리

MCP 서버가 시작될 때(swag2mcp mcp) 48시간보다 오래된 저장된 API 응답이 자동으로 제거됩니다. 이는 responses/ 디렉토리가 무한정 커지는 것을 방지합니다.

중요 참고 사항

  • specs/의 로컬 파일은 캐시되지 않음specs/ 디렉토리에서 명세 파일을 직접 편집하면 캐시를 지우지 않고도 변경 사항이 즉시 반영됩니다
  • 원격 URL은 항상 캐시됨swag2mcp update 또는 swag2mcp clean을 실행하는 것 외에는 원격 URL의 캐시를 우회할 방법이 없습니다
  • 캐시는 로컬 — 디스크에 저장되며 머신 간에 동기화되지 않습니다. 머신 간에 명세를 전송하려면 swag2mcp exportswag2mcp import를 사용하세요