어떤 질문에서 Graph가 실제로 도움이 될까
Graph는 연결 관계를 따라가야 답할 수 있는 질문에 먼저 시험하는 편이 좋습니다. 단순 문자열 위치 찾기는 grep이나 언어 서버가 더 빠르고 명확할 수 있으므로 기존 도구와 같은 질문으로 비교합니다.
시나리오 A: 의존성이 몰린 God Node의 검토 범위 좁히기
어느 회사에나 1만 줄이 넘어가는 utils.js 혹은 CoreUserService.java 같은 파일이 존재합니다. 모든 모듈이 이 파일을 참조하는 이른바 ‘God Node’죠. 레거시를 마이크로서비스로 분리하려 할 때 이 파일은 거대한 폭탄입니다. 원문에 제시된 GRAPH_REPORT.md나 graphify query "show the auth flow" 같은 흐름은 연결이 집중된 노드와 인증 관련 하위 그래프를 먼저 보는 예시입니다. 분리 전략을 확정하기 전에는 정적 그래프가 놓친 동적 호출, 공유 데이터베이스와 운영 배치를 원본 코드와 런타임 자료로 확인해야 합니다.
시나리오 B: 장애 때 확인할 호출 경로의 후보 만들기
새벽 2시에 장애 알람이 울립니다. 데이터베이스 락(Lock)이 걸렸는데 원인을 모르겠습니다. 당황한 상태로 Claude에게 “지금 트랜잭션 락이 발생했는데 어떤 로직들이 맞물려 있는지 확인해 줘”라고 하면, 평소 같으면 전체 리포지토리를 뒤지느라 수십 분을 허비했을 겁니다. 그래프를 먼저 조회하면 A→B 호출과 C 테이블, 문서에 적힌 D 배치처럼 함께 확인할 후보를 좁힐 수 있습니다. 그러나 장애 시점의 실행 순서와 lock 원인은 정적 Edge만으로 확정할 수 없습니다. trace, query log와 현재 배포 SHA를 대조하고, 그래프에서 찾은 경로는 조사 목록으로만 사용합니다.