Source: https://aiprimetech.io/ko/blog/graphify-claude-code-knowledge-graph/ 2026년 7월 20일 · 6분 · 도구 # Claude Code용 Graphify: 저장소를 쿼리 가능한 그래프로 변환하기 A 작성자 [AI Prime Tech](https://aiprimetech.io/ko/) · AI 활용 ## Graphify Claude Code: 저장소를 쿼리 가능한 그래프로 전환하기 코드가 800,000줄인 저장소에서는 겉보기에 간단한 질문의 답이 여섯 곳에 흩어져 있을 수 있습니다. Terraform 모듈, 데이터베이스 마이그레이션, 생성된 클라이언트, OpenAPI 문서, 배포 매니페스트, 그리고 이 년 전에 작성된 런북입니다. Claude Code는 이러한 파일을 검색하고 읽을 수 있지만, 저장소 규모의 작업은 에이전트가 파일 간의 관계를 얼마나 빨리 파악할 수 있는지에 따라 제약을 받는 경우가 많습니다. 다음 항목을 텍스트로 검색하면 customer_id 등장하는 위치를 찾을 수 있습니다. 하지만 다음과 같은 관계까지 자동으로 설명해 주지는 않습니다. - customer_id 데이터베이스 마이그레이션에서 선언되고, - API 스키마를 통해 노출되며, - ORM 모델에서 매핑되고, - 이벤트 페이로드에 복사되며, - 백그라운드 워커에서 사용되고, - 프로덕션 롤백 절차에서도 언급됩니다. Graphify는 저장소 자료를 지식 그래프로 변환하여 이 문제에 접근합니다. 엔터티는 노드가 되고, 참조와 의존성은 엣지가 되며, Claude Code는 이 구조를 쿼리하여 추가 컨텍스트로 활용할 수 있습니다. 중요한 전제는 그래프가 마법처럼 또 하나의 신뢰 기준이 되는 것은 아니라는 점입니다. 그래프는 저장소를 해석하여 인덱싱한 결과입니다. 그 가치는 파서의 지원 범위, 지속적인 업데이트 관리, 권한, 그리고 생성된 관계가 실제 엔지니어링 질문에 얼마나 잘 답하는지에 달려 있습니다. ## Graphify가 Claude Code에 더하는 기능 Claude Code에는 이미 프로젝트를 이해하는 데 유용한 여러 방법이 있습니다. - 파일 직접 읽기 - rg 및 기타 셸 검색 - Git 이력과 변경 사항 - 다음 파일에 있는 프로젝트 지침: CLAUDE.md - 반복 가능한 워크플로를 위한 스킬 - 외부 도구와 데이터를 위한 MCP 서버 Graphify는 관계 중심 검색이라는 새로운 접근 방식을 더합니다. 일반적인 검색은 다음과 같이 묻습니다. 이 심볼은 어디에 등장하는가? 그래프 쿼리는 다음과 같이 묻습니다. 이 스키마에 의존하는 서비스는 무엇이며, 어떤 인프라가 해당 서비스를 배포하고, 어떤 문서가 운영상의 영향을 설명하는가? 작업이 담당 영역이나 파일 형식의 경계를 넘나들 때 이 차이가 중요해집니다. 일반적인 그래프에는 다음과 같은 노드가 포함될 수 있습니다. | 노드 유형 | 예시 | 코드 | 함수, 클래스, 모듈, 패키지, 임포트 | 데이터 | 테이블, 열, 인덱스, 마이그레이션, ORM 모델 | 인터페이스 | REST 라우트, OpenAPI 객체, GraphQL 타입, 이벤트 스키마 | 인프라 | 서비스, 컨테이너, 큐, 데이터베이스, Terraform 리소스 | 문서 | ADR, 런북, README 파일, 담당 영역에 관한 메모 | 운영 | CI 작업, 배포 환경, 알림, 대시보드 엣지는 다음과 같은 관계를 나타낼 수 있습니다. - imports - calls - implements - extends - reads_from - writes_to - publishes - consumes - deploys - configured_by - documented_by - owned_by - depends_on 정확한 노드와 엣지의 종류는 Graphify의 현재 인덱서와 구성에 따라 달라집니다. 그래프 스키마를 당연한 전제가 아니라 직접 확인할 수 있는 제품 기능으로 취급하세요. 다음과 같은 관계를 중심으로 프롬프트를 만들기 전에 publishes, 설치된 버전이 실제로 해당 관계를 생성하는지 확인하세요. ## Claude Code용 Graphify 설치 Graphify는 활발하게 개발 중인 프로젝트이므로 설치 방식과 실행 명령 이름이 바뀔 수 있습니다. 저장소에서 시작하여 도입할 버전에 대해 문서화된 설치 명령을 사용하세요. ``` git clone https://github.com/Graphify-Labs/graphify.git cd graphify ``` 배포된 패키지를 사용한다면 오래된 블로그 글을 복사하기보다 프로젝트 문서에 안내된 패키지 관리자 명령을 사용하는 것이 좋습니다. 설치 후 대규모 모노레포를 인덱싱하기 전에 다음 세 가지 사실을 확인하세요. ``` graphify --help graphify version graphify config --help ``` 위 명령은 수행해야 할 확인 작업을 예시로 보여 줍니다. 설치된 릴리스에서 제공하는 실행 파일과 하위 명령을 사용하세요. 안전한 첫 실행은 소규모 테스트용 저장소를 대상으로 해야 합니다. ``` mkdir -p /tmp/graphify-fixture cd /tmp/graphify-fixture git init printf 'def charge(order):\n return order.total\n' > billing.py printf 'from billing import charge\n' > worker.py graphify index . ``` 초기 인덱싱은 일반적으로 탐색, 파싱, 관계 추출, 그래프 저장 중 일부를 조합하여 수행합니다. 실제 저장소에서는 CI에 추가하기 전에 생성된 구성과 저장 위치를 살펴보세요. 인덱스에 대해 다음 사항을 알아야 합니다. - 로컬인지 호스팅 방식인지 - 증분 방식인지 전체 재구축 방식인지 - 데이터베이스, 파일 또는 임베디드 저장소 중 어디에 저장되는지 - 다른 인덱서와 동시에 실행해도 안전한지 - 비밀 정보, 빌드 산출물, 외부 라이브러리 디렉터리 트리를 제외할 수 있는지 Claude Code와 통합하려면 프로젝트에서 지원하는 통합 메커니즘을 통해 Graphify를 노출해야 하며, 일반적으로 MCP를 사용합니다. 로컬의 .mcp.json 는 다음과 같은 형태일 수 있습니다. ``` { "mcpServers": { "graphify": { "command": "graphify", "args": ["mcp", "--project", "."], "env": { "GRAPHIFY_INDEX": ".graphify/index" } } } } ``` 이 하위 명령이 모든 버전에 동일하게 적용된다고 가정하지 마세요. 다음 명령으로 MCP 진입점을 확인하세요. ``` graphify mcp --help ``` 그런 다음 Claude Code에서 서버를 검증하세요. ``` /mcp ``` Graphify 서버와 사용 가능한 도구가 표시되어야 합니다. 도구 이름과 쿼리 구문은 버전마다 다릅니다. 실질적인 검증은 실제 동작을 확인하는 것입니다. Claude Code에 그래프 도구를 나열하고, 범위가 좁은 쿼리를 실행한 뒤, 저장소의 어느 리비전이 인덱싱되었는지 보고하도록 요청하세요. 흔히 겪는 문제는 잘못된 디렉터리에서 Claude Code를 실행하는 것입니다. 다음 파일의 상대 프로젝트 경로는 .mcp.json, 무시 파일 및 Graphify 구성과 함께 서버 프로세스의 작업 디렉터리를 기준으로 해석되며, 이 디렉터리가 반드시 사용자가 생각한 디렉터리와 같지는 않습니다. ## 실무에서 중요한 관계 그래프는 텍스트를 통해 재구성하기 번거로운 관계를 드러낼 때 가장 유용합니다. ### 코드에서 데이터로 이어지는 계보 마이그레이션이 다음 항목의 이름을 바꾼다고 가정해 보겠습니다. accounts.status 다음으로 변경되었습니다. accounts.lifecycle_state. 텍스트 검색으로 참조를 찾을 수 있지만, 그래프는 영향을 받는 범위를 체계적으로 정리할 수 있습니다. ``` table accounts -> column lifecycle_state -> migration 2025_04_rename_status -> model Account -> repository AccountRepository -> API response AccountSummary -> dashboard query active_accounts ``` 이를 통해 Claude Code는 마이그레이션 검토를 더 나은 출발점에서 시작할 수 있습니다. 그래프가 의존 가능성이 있는 항목을 식별하면 실제 파일을 살펴볼 수 있습니다. ### 서비스 및 인프라 토폴로지 인프라 관계는 애플리케이션 코드와 배포 코드가 함께 있는 모노레포에서 특히 유용합니다. ``` service payments-api -> container image payments-api -> Kubernetes deployment payments -> reads secret PAYMENTS_DATABASE_URL -> writes queue payment-events -> consumed by reconciliation-worker ``` 이는 다음과 같은 질문에 도움이 됩니다. - 포트가 바뀌면 어떤 배포를 변경해야 하는가? - 이 큐를 사용하는 것은 무엇인가? - 어떤 서비스가 이 데이터베이스를 공유하는가? - 어떤 구성이 환경별로 다른가? - 어떤 Terraform 리소스가 이 의존성을 만드는가? Graphify는 정적 파일만으로 런타임 동작을 완벽하게 추론할 수 없습니다. 동적 서비스 검색, 리플렉션, 생성된 구성, 환경 변수를 통한 간접 참조 때문에 누락이 생길 수 있습니다. 토폴로지 결과를 영향 범위 지도로 활용한 다음, 배포 및 런타임 구성에서 중요한 엣지를 검증하세요. ### 문서에서 구현으로 이어지는 관계 문서와 코드의 관계는 구문적 관계가 아니라 의미적 관계인 경우가 많아 문서가 코드 검색과 연결되지 않는 일이 흔합니다. 런북에서는 “정산 프로세서”라고 부르지만 저장소에서는 다음과 같이 부를 수 있습니다. reconciliation-worker. Graphify가 문서의 참조를 코드 또는 인프라 엔터티와 연결한다면 Claude Code는 수동으로 찾아보는 작업을 줄이면서 운영 관련 질문에 답할 수 있습니다. ``` "Where is the rollback procedure for the component that consumes payment-events?" ``` 문서에 쓰인 이름이 정확하게 매핑되어야만 답변을 신뢰할 수 있습니다. 오래된 용어는 그럴듯하지만 잘못된 엣지를 만들며, 이는 검색 누락이 명확하게 드러나는 것보다 더 위험합니다. ## Graphify, 스킬, MCP는 서로 다른 계층입니다 Graphify는 Claude Code의 기존 확장 지점을 대체하기보다 보완해야 합니다. | 기능 | 강점 | 제공하는 요소 | 주요 한계 | Claude Code 검색 및 파일 도구 | 정확한 로컬 조사 | 현재 파일 내용과 변경 사항 | 서로 다른 형식 간의 관계 파악에 취약함 | Claude Code 스킬 | 반복 가능한 동작 | 지침, 체크리스트, 검토 방법 | 저장소에 관한 사실을 생성하지 않음 | MCP | 도구 및 데이터 통합 | 외부 시스템에 대한 통제된 인터페이스 | 도구의 품질과 권한이 제각각임 | Graphify | 저장소 토폴로지와 계보 | 산출물 간의 구조화된 관계 | 인덱스가 불완전하거나 오래되었을 수 있음 유용한 아키텍처는 다음과 같습니다: - Graphify가 후보 엔터티와 의존성을 탐색합니다. - Claude Code가 이 결과를 사용해 파일을 선택합니다. - 기본 파일 도구가 현재 구현을 검증합니다. - 스킬이 팀의 검토 또는 변경 절차를 적용합니다. - 테스트, 린터, 배포 검사가 최종 근거를 제공합니다. 예를 들어, 마이그레이션 검토 스킬을 다음 위치에 둘 수 있습니다: .claude/skills/review-migration/SKILL.md: ``` # Review Database Migration When reviewing a migration: 1. Identify renamed, removed, or changed columns. 2. Query Graphify for code, schema, event, and infrastructure dependents. 3. Read each high-confidence dependent from the working tree. 4. Check backward compatibility for deployed application versions. 5. Run the repository migration and contract tests. 6. Report uncertain graph relationships separately from verified findings. ``` 스킬은 워크플로를 정의합니다. Graphify는 관계 맥락을 제공합니다. MCP는 전송 수단이자 도구 경계입니다. 이러한 분리는 중요합니다. 모든 그래프 지식을 스킬에 넣으면 시간이 지날수록 유효성이 떨어지는 정적 지침이 됩니다. 모든 워크플로 정책을 Graphify에 넣으면 인덱서가 신뢰성 있게 내릴 수 없는 결정까지 책임지게 됩니다. ## 인덱스 비용과 최신성 관리 인덱싱에는 컴퓨팅, 디스크, 지연 시간, 운영 복잡성 측면의 비용이 듭니다. 비용은 최초 스캔에만 발생하지 않습니다. 대규모 저장소에서는 브랜치가 변경되거나, 생성 파일이 다시 빌드되거나, 의존성 그래프가 무효화될 때도 업데이트 작업이 발생합니다. 제외 항목부터 설정하세요: ``` # .graphifyignore .git/ node_modules/ vendor/ dist/ build/ coverage/ tmp/ *.min.js *.map .env *.pem ``` 구문이 다음과 다를 수 있습니다: .gitignore따라서 Graphify의 무시 파일 처리 방식을 확인하세요. 자격 증명과 민감한 내보내기 파일은 Git에서 이미 무시하고 있더라도 명시적으로 제외하세요. 파일을 인덱싱하는 도구는 쿼리 경로를 통해 그 내용을 노출할 수 있습니다. 단계별 인덱싱 정책을 사용하세요: - 애플리케이션 소스, 스키마, 인프라, 유지 관리되는 문서를 인덱싱하세요. - 생성된 출력물은 기준이 되는 산출물인 경우를 제외하고 제외하세요. - CI 또는 예약 작업에서 전체 인덱스를 빌드하세요. - 지원되는 경우 브랜치 인덱스를 증분 업데이트하세요. - 그래프 메타데이터와 함께 소스 커밋을 기록하세요. - 파서 또는 설정을 변경한 후에는 다시 빌드하세요. 에이전트가 소스 리비전을 볼 수 있어야 합니다. 다음과 같은 응답 구조는 아무런 설명이 없는 목록보다 훨씬 안전합니다: ``` { "query": "dependents of table accounts", "indexed_revision": "9f31a7c", "generated_at": "2025-05-14T10:22:11Z", "results": [ { "entity": "AccountRepository", "relationship": "reads_from", "target": "accounts", "confidence": "high", "path": "src/accounts/repository.py" } ] } ``` 마지막 인덱싱 이후 Claude Code가 작업 트리를 수정하고 있다면 그래프 결과는 과거의 맥락입니다. 현재 파일이 우선합니다. 실제로 저는 에이전트에게 추론에 다음을 포함하도록 지시합니다: indexed_revision 그리고 그래프에서 도출한 모든 주장을 작업 트리와 대조해 다시 확인하도록 합니다. ## 정확성, 개인정보 보호, 프로덕션 경계 그래프는 불완전한 정보를 권위 있는 정보처럼 보이게 할 수 있습니다. 대비해야 할 실패 유형은 여러 가지입니다: - 동적 가져오기와 리플렉션을 놓칩니다. - 셸 스크립트에서 변수 확장 뒤에 관계가 숨겨집니다. - 생성된 클라이언트가 원본 스키마를 가립니다. - 문서 링크가 파서에서 인식하지 못하는 별칭을 사용합니다. - 정리 또는 재빌드가 실행될 때까지 삭제된 파일이 남아 있습니다. - 에이전트가 다른 브랜치에서 작업하는 동안 특정 브랜치의 인덱스가 조회됩니다. - 환경별 값 없이 인프라 모듈이 해석됩니다. 프로덕션 워크플로에서는 가능한 한 신뢰도와 출처를 공개하세요. 파일 경로, 리비전, 추출 방법이 없는 관계는 감사하기 어렵습니다. 개인정보 보호에도 같은 수준의 주의가 필요합니다. 저장소 그래프는 다음 정보를 드러낼 수 있습니다: - 내부 서비스 이름 - 고객 및 결제 데이터 모델 - 네트워크 토폴로지 - 파일 이름이나 설정 참조를 통한 비밀 정보 - 취약점과 관련된 민감한 의존성 - 독점 문서 민감한 인덱스는 로컬이나 저장소와 동일한 신뢰 경계 안에 보관하세요. 최소 권한 MCP 설정을 사용하고, 비밀 정보를 제외하며, 조직에서 해당 데이터 흐름을 승인하지 않았다면 그래프 내용을 호스팅 서비스로 보내지 마세요. Claude Code가 그래프를 조회할 수 있다고 해서 저장소의 접근 제어 요구 사항이 달라지는 것은 아닙니다. 인기와 신뢰성 역시 같지 않습니다. 프로젝트가 큰 관심을 끌더라도 파서 지원 범위가 미흡하거나, 그래프 스키마가 불안정하거나, 업그레이드 보장이 제한적이거나, 모노레포 규모의 잦은 변경에 충분히 대응하지 못할 수 있습니다. 자체 저장소에서 추출한 테스트 픽스처 모음으로 평가하세요: - 알려진 가져오기와 서비스 의존성을 식별하나요? - 삭제된 관계를 제거하나요? - 증분 인덱싱 결과가 처음부터 다시 빌드한 결과와 일치하나요? - 사용자가 오래된 결과와 신뢰도가 낮은 결과를 구분할 수 있나요? - 인덱스를 사용할 수 없을 때 MCP 서버가 명확하게 실패를 알리나요? - 쿼리가 대화형 에이전트 작업에 충분히 빠른가요? - CI에서 인덱스를 재현할 수 있나요? 모든 에이전트 작업에 Graphify를 필수 전제 조건으로 두지 마세요. 일반 파일 검색으로 대체하는 축소 기능 모드가 반드시 필요합니다. ## 실용적인 도입 방식 API 변경, 데이터베이스 마이그레이션, 인프라 리팩터링처럼 관계 탐색에 비용이 많이 들고 실수가 눈에 띄는 워크플로 하나부터 시작하세요. 그래프 크기보다 유용한 결과를 측정하세요: - 영향받는 구성 요소를 식별하는 데 걸리는 시간 - 검토에서 누락된 의존 구성 요소 수 - 오래되었거나 잘못된 관계의 비율 - 일반적인 커밋 이후의 인덱싱 시간 - 쿼리 실패 및 대체 방식 사용 빈도 - 모델에 추가로 노출되는 데이터 추론의 깊이가 중요한 광범위한 저장소 조사에는 Sonnet 4.6을, 가벼운 분류나 반복 조회 작업에는 Haiku 4.5을 사용하세요. 프로젝트의 1M 컨텍스트 워크플로에서 방대한 근거를 함께 유지하는 것이 실질적으로 도움이 된다면 더 큰 컨텍스트를 지원하는 Fable 5를 사용하세요. 모델 선택으로 잘못된 그래프를 바로잡을 수는 없습니다. 정확하고 최신인 관계를 제공받는 작은 모델이 필터링되지 않은 인덱스 덤프를 받는 큰 모델보다 더 유용할 수 있습니다. 실용적인 프롬프트 패턴은 출처를 명시하는 것입니다: ``` Use Graphify to identify likely dependents of the `accounts.lifecycle_state` column. For every result, include its path, indexed revision, relationship, and confidence. Then read the current files and discard relationships that do not exist in the working tree. Do not treat graph results as proof. ``` 마지막 문장은 형식적인 문구가 아닙니다. 오래된 컨텍스트 계층이 아무런 검증 없이 권위 있는 정보로 받아들여지는 것을 방지합니다. ## 실무 핵심 요점 - Graphify의 핵심 가치는 코드, 스키마, 인프라, 문서 전반의 관계를 검색하는 데 있습니다. - 버전이 명시된 도구를 설치하고, 실제 CLI 및 MCP 명령을 살펴본 뒤, 모노레포를 인덱싱하기 전에 픽스처로 테스트하세요. - Graphify는 저장소 맥락을 담당하게 하고, 반복 가능한 엔지니어링 절차에는 Claude Code 스킬을 사용하세요. - 그래프 응답에 인덱스 리비전, 출처, 신뢰도를 포함하세요. - 비밀 정보, 생성된 불필요한 데이터, 필요 없는 외부 공급업체 콘텐츠를 제외하세요. - 그래프 결과는 현재 작업 트리와 대조해 검증해야 하는 단서로 취급하세요. - 프로덕션에 도입하기 전에 증분 인덱싱, 삭제 처리, 브랜치 격리, 축소 기능 운영을 테스트하세요. - 인기는 평가할 이유가 될 수 있지만, 의존할 근거가 되는 것은 해당 저장소에서의 정확성과 운영 동작뿐입니다. [코딩](/ko/blog/tag/coding/)[Claude](/ko/blog/tag/claude/) A [AI Prime Tech](https://aiprimetech.io/ko/) 이 블로그는 AI Prime Tech가 발행합니다. 기사는 AI의 도움을 받아 초안을 작성합니다. 모델 ID, 가격, 한도 등 버전별 세부 정보는 활용하기 전에 공식 문서와 대조해 확인하세요. 더 저렴하게 Claude API 이용하기 API 키 하나로 Claude Opus 5.5, Sonnet 5, Haiku 4.5, Fable 5.1 및 GPT-6개 모델을 이용하세요. 구독 없이 사용한 만큼만 결제합니다. [API 키 받기 →](/register) AI Prime Tech는 독립적인 타사 API 게이트웨이입니다. Claude™ 및 Anthropic®는 Anthropic, PBC의 상표입니다. 제휴 또는 보증 관계를 의미하지 않습니다.