추상 상태 분석기
코드를 실행하지 않고 변수 범위·널 여부·타입을 추론해 배열 초과, 널 참조, 0 나눗셈, 정수 오버플로 같은 잠재적 런타임 오류를 찾아주는 정적 분석 스킬.
보안·리뷰고급★ 236⑂ 22AI 점수 7/10마지막 업데이트: 2026. 8. 21.
무엇을 해주나
- 소스 코드를 추상 해석(abstract interpretation) 방식으로 정적 분석해, 실행 없이 각 지점에서 변수가 가질 수 있는 값의 범위를 추론합니다.
- 목적에 맞는 추상 도메인을 선택합니다: 구간(Interval, 숫자 범위), 부호(Sign), 널(Null/maybe-null), 타입(Type) 도메인 및 조합.
- 분기는 나누고 합류점에서는 상태를 병합하며, 루프는 고정점(fixpoint)까지 반복하고 필요하면 확장(widening)을 적용합니다.
- 배열 범위 초과, 널 역참조, 0으로 나누기, 정수 오버플로, 타입 불일치를 지점별로 검사합니다.
- 발견 사항을 위치 / 오류 유형 / 그 지점의 추상 상태 / 심각도(확정 vs 잠재) / 원인 설명 / 수정 제안 형식으로 보고합니다.
- C/C++, Python, Java, JavaScript 각각의 언어 특성(포인터 연산, 동적 타이핑, NPE, 타입 강제 변환)을 반영한 체크 포인트를 제공합니다.
이런 분께 추천
- 코드 리뷰나 릴리스 전 점검에서 런타임 크래시 가능성을 미리 걸러내고 싶은 개발자
- 테스트 커버리지가 낮은 레거시 코드의 안전성을 따져봐야 하는 유지보수 담당자
- 정적 분석기·검증 도구를 배우거나 강의·스터디에서 추상 해석 개념을 실습하고 싶은 분
- 보안 관점에서 버퍼 오버런, 널 참조 등 메모리·값 안전성을 검토하는 리뷰어
활용 예시
- 배열 접근 검증:
find_max(arr, n)함수를 붙여주면n > len(arr)인 경우arr[i]가 범위를 벗어날 수 있음을 지적하고 사전 조건(n <= len(arr)) 추가를 제안합니다. - 0 나눗셈 탐지: 나눗셈의 분모 변수가
[-5, 5]구간으로 추론되면 0이 포함되므로 잠재적 예외로 보고합니다. - 널 역참조 점검: 함수 파라미터가 maybe-null 상태로 들어와
ptr.field에 접근하는 경로를 찾아 널 체크 삽입 위치를 제시합니다. - 정수 오버플로 예측:
a,b가 각각[1000, 2000]일 때 int32 곱셈이 넘칠 수 있음을 경고합니다.
· · · 설치 가이드 · · ·
설치 없이 지금 한 번 써보기
아래를 Claude에 붙여넣으면 설치하지 않고도 이 스킬을 그대로 씁니다.
이 파일의 지시를 읽고 그대로 따라서 나를 도와줘: https://raw.githubusercontent.com/ArabelaTso/Skills-4-SE/HEAD/skills/abstract-state-analyzer/SKILL.md 내가 원하는 것: (여기에 하고 싶은 일을 쓰세요)
Claude가 링크를 열지 못하면, 링크를 직접 열어 내용을 복사해 붙여넣으세요.
↓ 쓸 만하면 아래에서 ZIP을 받아 설치하세요. 그러면 매번 붙여넣지 않아도 알아서 작동합니다.
Claude 앱에 설치 (터미널 필요 없음)
- 아래 버튼으로 ZIP 파일을 받으세요.
- Claude 설정 → Capabilities에서 '코드 실행 및 파일 생성'을 켭니다. (한 번만)
- Claude에서 Customize → Skills → + → '스킬 업로드'를 누르고 받은 ZIP을 올립니다.
Claude Code에 설치
Claude에게 맡기기 — 아래 문장을 Claude Code에 붙여넣으세요
클로드스킬마트에서 찾은 스킬을 설치해줘. GitHub 저장소 ArabelaTso/Skills-4-SE 의 skills/abstract-state-analyzer 폴더를 내 ~/.claude/skills/abstract-state-analyzer/ 에 그대로 복사해줘. 설치가 끝나면 이 스킬로 무엇을 할 수 있는지 한 줄로 알려줘.
직접 명령으로 설치하기
git clone https://github.com/ArabelaTso/Skills-4-SE.git && mkdir -p ~/.claude/skills && cp -r Skills-4-SE/skills/abstract-state-analyzer ~/.claude/skills/⚠ 제3자가 만든 스킬입니다. 설치 전 원본 저장소를 한 번 확인하세요.
- 터미널을 엽니다. (macOS/Linux는 기본 터미널, Windows는 WSL 또는 Git Bash)
- 저장소를 원하는 위치에 복제합니다.
git clone https://github.com/ArabelaTso/Skills-4-SE.git - Claude Code 스킬 폴더가 없다면 만듭니다.
mkdir -p ~/.claude/skills - 스킬 폴더 전체를 복사합니다. (
references/하위 문서까지 함께 복사되도록 폴더 단위로 복사하세요.)cp -r Skills-4-SE/skills/abstract-state-analyzer ~/.claude/skills/ - 설치 확인:
ls ~/.claude/skills/abstract-state-analyzer - Claude Code를 다시 실행한 뒤 "이 함수를 추상 해석으로 분석해서 잠재적 런타임 오류를 찾아줘"처럼 요청하면 스킬이 발동합니다.
- 특정 파일을 대상으로 하려면 파일 경로나 코드 블록을 함께 첨부하면 정확도가 올라갑니다.
GitHub에서 원본 보기 ↗라이선스: Apache-2.0