SKAX DAVIS Code Analyzer
AI-powered static analysis tool for large-scale C/Java legacy systems.
Features
📊 프로젝트 구조 분석
- 트리 구조 시각화: 프로젝트 전체를 계층적 트리로 표현
- 멀티 언어 지원: C, Java 동시 분석 및 통합 뷰 제공
- 메타데이터 추출: 파일, 함수, 클래스별 상세 정보 수집
🔍 코드 분석
- 복잡도 분석: 사이클로매틱 복잡도 계산 및 시각화
- SQL 쿼리 분석: JPA, MyBatis, JDBC 쿼리 자동 탐지
- 보안 스캔: 잠재적 취약점 및 위험 패턴 감지
- 호출 그래프: 함수/메소드 간 호출 관계 매핑
📈 시각화 및 보고서
- 인터랙티브 트리뷰: 확장/축소 가능한 프로젝트 구조
- 실시간 검색: 파일명, 함수명 기반 빠른 탐색
- 보고서 내보내기: Excel, Word, PowerPoint 형식 지원
📋 프로젝트 구조 예시
한국은행 시스템 (2.23M LOC)
├── ACCT001P.c [계좌조회 및 잔액 확인] (1,250 LOC)
│ ├── (f) int acct_balance_inq() [계좌 잔액 조회] (85 LOC)
│ │ ├── [i] in [char *] acct_no [계좌번호]
│ │ ├── [o] out [long *] balance [잔액]
│ ├── (s) struct AccountInfo [계좌 정보 구조체] (6 members)
├── ACCT002P.c [대출이자 계산 및 상환] (850 LOC)
│ ├── (f) double calc_interest() [이자 계산] (120 LOC)
│ │ ├── [i] in [double] principal [원금]
│ │ ├── [i] in [double] rate [이자율]
│ │ ├── [o] out [double] interest [계산된 이자]
├── com/bank/service/
│ ├── AccountService.java [계좌 서비스] (2,100 LOC)
│ │ ├── class AccountService (복잡도: 15)
│ │ │ ├── (m) public Account getAccount() [계좌 조회] (45 LOC)
│ │ │ │ ├── [i] in [String] accountNo [계좌번호]
│ │ │ │ ├── [o] out [Account] account [계좌 객체]
│ │ │ │ ├── [SQL] SELECT * FROM accounts WHERE acc_no = ?
📚 문서
상세 가이드
Pro*C 프로젝트 지원
이 도구는 Oracle Pro*C 프로젝트의 호출 관계 분석을 완벽하게 지원합니다:
- ✅ 함수 호출 관계 자동 추출
- ✅ 호출 시퀀스 다이어그램 생성
- ✅ 대규모 프로젝트 메모리 최적화 (10,000+ 파일)
- ✅ 크로스 플랫폼 완벽 지원
자세한 내용은 docs 폴더를 참조하세요.
🛠️ 설치 및 사용법
시스템 요구사항
- VS Code: 버전 1.90.0 이상
- 운영체제: Windows 10/11, macOS 10.14+, Linux (Ubuntu 18.04+)
- 메모리: 최소 4GB, 권장 8GB
- 디스크: 최소 1GB 여유 공간
- CPU: 64비트 프로세서
- 지원 언어: C, C++, Java
설치 방법
📦 Release에서 VSIX 다운로드 (권장)
- GitHub Releases 페이지 방문
- 최신 릴리즈에서
skax-davis-code-analyzer.vsix 파일 다운로드
- VS Code에서
Ctrl+Shift+P로 명령 팔레트 열기
- "Extensions: Install from VSIX..." 선택
- 다운로드한
.vsix 파일 선택하여 설치
- VS Code 재시작
💡 오프라인 지원: 이 방법으로 설치하면 폐쇄망 환경에서도 완전히 동작합니다.
완전 오프라인 설치 (폐쇄망 환경)
🔐 진정한 오프라인 설치를 위해 두 개의 파일이 필요합니다:
1️⃣ 파이썬 설치:
2️⃣ Python 의존성 오프라인 설치:
💡 설치 위치: 압축을 풀어 홈 경로에 위치 (윈도우는 C 드라이브가 아니어도 D, E 루트에 위치해도 됨)
🔄 자동 빌드 및 릴리즈
이 프로젝트는 GitHub Actions를 통해 자동으로 빌드되고 릴리즈됩니다:
빌드 프로세스
- 트리거:
main 브랜치에 push 또는 PR merge 시 자동 실행
- 구성 요소:
- 프론트엔드 (TypeScript/VS Code 확장)
- 백엔드 (Python FastAPI 서버)
- Tree-sitter 파서 (C/Java)
- DuckDB 바이너리 (다중 플랫폼)
- Python 의존성 정의 (requirements.txt)
패키지 특징
- 완전 오프라인: 모든 의존성이 VSIX에 포함
- 다중 플랫폼: Windows, macOS, Linux 지원
- 자동 시작: Python 백엔드 서버 자동 설치 및 시작
- 캐싱: 대용량 프로젝트 분석을 위한 SQLite 캐시
사용법
1. 프로젝트 분석 시작
- C/Java 프로젝트가 포함된 폴더를 VS Code에서 열기
- 명령 팔레트(
Ctrl+Shift+P)에서 "SKAX: Code Analyzer: Show Dashboard" 선택
- 분석 진행 상황을 알림으로 확인
2. 프로젝트 구조 보기
- 대시보드에서 "프로젝트 구조 보기" 버튼 클릭
- 새로운 패널에서 트리 구조 확인
- 노드 클릭으로 해당 파일/함수로 이동
3. 보고서 생성
- 대시보드에서 "보고서 생성" 버튼 클릭
- 원하는 형식 선택 (Excel/Word/PowerPoint)
- 생성된 보고서 파일 확인
🔑 라이선스 키
개요
SKAX DAVIS Code Analyzer는 라이선스 키를 통해 사용 유효일자를 관리합니다. 프로그램을 처음 실행하거나 라이선스가 만료된 경우, 유효한 라이선스 키를 입력해야 합니다.
- 라이선스 문의 : cwchoe@sk.com, mokdb17@sk.com
라이선스 키 설정
방법 1: 프로그램 실행 시 자동 입력
- 대시보드를 열려고 시도
- 라이선스 키 입력 팝업이 표시됨
- 유효한 라이선스 키 입력
- 자동으로 저장되고 대시보드가 열림
방법 2: 설정 화면에서 관리
- 대시보드 → 설정 탭
- Backend API Key 필드에서 라이선스 키 입력/변경
- 자동으로 암호화되어 저장됨
⚠️ 주의: 라이선스 키는 AES-256-CBC로 암호화되어 저장됩니다. api-keys.json 파일을 직접 편집하지 마세요.
테스트용 라이선스 키 생성
개발/테스트 환경에서 라이선스 키를 생성하려면:
# 1년 후 만료되는 키 생성
node scripts/generate-license-key.js
# 특정 날짜까지 유효한 키 생성 (2025-12-31)
node scripts/generate-license-key.js 251231
# 도움말 보기
node scripts/generate-license-key.js --help
⚙️ 설정 옵션
VS Code 설정(Ctrl+,)에서 "SKAX DAVIS" 검색하여 다음 옵션들을 조정할 수 있습니다:
분석 옵션
- 복잡도 분석 포함: 사이클로매틱 복잡도 계산 여부
- SQL 분석 포함: 데이터베이스 쿼리 분석 여부
- 보안 스캔 포함: 취약점 검사 여부
- 호출 그래프 포함: 함수 호출 관계 분석 여부
- 최대 깊이: 분석할 디렉토리 최대 깊이 (1-50)
- 제외 패턴: 분석에서 제외할 파일/폴더 패턴
표시 옵션
- 라인 수 표시: 트리뷰에서 LOC 정보 표시 여부
- 복잡도 표시: 복잡도 정보 표시 여부
- 자동 확장 깊이: 트리뷰 자동 확장 레벨 (0-5)
캐시 옵션
- 캐싱 활성화: 분석 결과 캐싱 여부
- 최대 캐시 크기: 캐시 파일 최대 크기 (10-1000MB)
📝 생성되는 파일
확장을 사용하면 다음 파일들이 생성됩니다:
your-project/
├── .skax-davis-codeanalyzer/
│ ├── project-structure.json # 메타데이터 파일
│ ├── cache.db # SQLite 캐시 파일 (DuckDB)
│ ├── analysis-cache/ # 분석 결과 캐시
│ └── reports/ # 생성된 보고서
└── backend/
├── server.log # 백엔드 서버 로그
└── venv/ # Python 가상환경 (자동 생성)
🐛 문제 신고
버그나 개선 사항이 있으시면 GitHub Issues에 신고해주세요.
📄 라이선스
이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
📊 지원 현황
| 기능 |
C |
Java |
상태 |
| 구문 분석 |
✅ |
✅ |
완료 |
| 함수/메소드 추출 |
✅ |
✅ |
완료 |
| 복잡도 계산 |
✅ |
✅ |
완료 |
| SQL 쿼리 분석 |
✅ |
✅ |
부분 완료 |
| 보안 스캔 |
⭕ |
⭕ |
개발 중 |
범례: ✅ 완료, ⭕ 부분 지원, 🔄 계획됨
Legacy Code Analyzer를 사용해주셔서 감사합니다! 🎉