코드 도시 뷰

납품받은 소스의 파일 전체를 3차원 도시로 펼칩니다. 구역은 디렉터리, 건물은 파일이고 높이는 줄 수, 바닥 넓이는 바이트 크기에 비례합니다. 분석 오류가 난 파일, 경로만 색인된 파일, 크기를 알 수 없는 파일도 점선의 얇은 판으로 도시에 들어가, 분석에서 빠진 영역이 지도에 보입니다. 건물을 고르면 그 파일의 상태와 원문, 선언과 해석으로 나뉜 관계, 남은 기록이 차례로 열립니다.
납품받은 소프트웨어를 검수하고 인수하는 도구입니다. 소스를 3차원 코드 도시로 보여 주고, 자연어로 물으면 근거 파일과 줄 번호를 붙여 답합니다.
Features

납품받은 소스의 파일 전체를 3차원 도시로 펼칩니다. 구역은 디렉터리, 건물은 파일이고 높이는 줄 수, 바닥 넓이는 바이트 크기에 비례합니다. 분석 오류가 난 파일, 경로만 색인된 파일, 크기를 알 수 없는 파일도 점선의 얇은 판으로 도시에 들어가, 분석에서 빠진 영역이 지도에 보입니다. 건물을 고르면 그 파일의 상태와 원문, 선언과 해석으로 나뉜 관계, 남은 기록이 차례로 열립니다.

소프트웨어에 어떤 기능이 들어 있는지 평소 말로 물으면 답합니다. 답변은 개요, 흐름, 문제, 미확인 네 절로 되어 있고 주장마다 파일 경로와 줄 범위가 붙습니다. 정적 분석으로 확인할 수 없는 내용은 미확인 절에 따로 적어 확인된 내용과 추정이 섞이지 않게 합니다. 모델에 보낸 내용은 계획, 판정, 합성, 임베딩 단계별로 항목 수와 바이트, 결과가 남고, 답변은 리포트 작성이나 지도의 전체 보기로 이어 씁니다.

지도와 바꿔 가며 쓰는 집계 화면으로, 한 판본의 분석 현황을 숫자로 보여 줍니다. 검색 대상 파일, 경로만 색인된 파일, 분석을 지원하지 않는 파일을 나눠 세어 분석이 미치지 못한 범위를 드러냅니다. 기술 구성은 버전 확인, 버전 후보, 버전 충돌, 버전 미확인으로 나눠 셉니다. 직전 질문과 그 결과 파일, 등록된 분석 단계 가운데 연결된 단계 수도 함께 셉니다.

발주받은 요구 문서의 각 항목이 소스에 구현됐는지 대조합니다. 항목은 문서의 쪽과 문단 위치를 지켜 나누고, 정적 근거 확인됨, 근거 부족, 모순 후보, 분석 미지원 중 하나의 판정을 붙입니다. 판정마다 연결된 구현 근거를 열어 원문과 비교할 수 있습니다. 요구를 충족했는지 최종 판정은 담당자가 하고 제품이 대신하지 않습니다.

새 판본이 오면 이전 판본과 비교해 무엇이 바뀌었는지, 어디까지 영향이 미치는지 검토합니다. 변경은 수정, 이름 변경 확정, 추가, 삭제로 나눠 셉니다. 변경 파일과 연결된 파일은 확인된 영향으로 나열하고, 연결이 선언된 것인지 해석으로 찾아낸 것인지, 몇 단계 떨어져 있는지도 적습니다. 연결을 확정하지 못한 경로와 대응이 모호한 파일은 분석 밖 영향으로 분리해, 영향이 없다는 결과와 분석하지 못했다는 결과를 구분합니다.

분석에서 나온 소견을 공급사에 보완 요청으로 보내고 해결될 때까지 추적합니다. 소견은 규칙, 수준, CWE 번호, 파일 위치와 함께 목록에 오르고, 소견마다 위치와 수준, 근거가 된 도구 메시지 원문을 담은 초안을 만듭니다. 초안은 확인을 거쳐 넘겼음 또는 닫힘으로 처리되고, 넘겼음 기록은 사람이 직접 남기며 초안은 자동으로 발송되지 않습니다. 이후 판본의 재검증에서 같은 소견이 나오지 않으면 해결 확인, 분석 범위가 해당 파일을 덮지 못하면 다시 확인하지 못함으로 남습니다.

담당자가 바뀌면 시스템에 내려진 판단을 파일 단위로 이어받습니다. 기록은 결정, 실패, 정정, 의도 네 종류이고 각각 판본, 날짜, 작성자, 대상 파일, 본문을 갖습니다. 정정 기록은 정정 대상 기록을 직접 가리켜, 앞선 결정의 적용 범위가 바뀐 경위가 삭제 없이 남습니다. 파일별로 기록을 모아 보고 어느 파일에 어떤 판단이 있었는지, 기록이 없는 파일이 어디인지 확인합니다.

소스에서 언어, 프레임워크, 빌드 도구, 설정 형식, ORM과 화면 구성을 찾아 버전을 판정합니다. 판정마다 근거 파일과 줄 번호가 붙어 담당자가 원문 줄을 직접 열어 대조합니다. 버전은 확인, 추정 후보, 충돌, 미확인으로 구분해 표시합니다. 판본에 적용된 파서, 쿼리, 배선, 규칙 묶음 단계도 이름과 버전으로 남습니다.

검수할 소스를 CodeVision에 들여와 판본으로 등록합니다. 원격 저장소에서는 주소와 ref를 지정해 가져오는데, ref는 브랜치, 태그, 커밋 중 하나입니다. 압축 파일을 올리는 방법도 있어 형상 관리 시스템에 접근할 수 없는 납품 건에도 씁니다. 진행 중이던 반입은 세션 id로 다시 열어 이어받습니다.
분석 결과를 HTML 리포트로 만들고 PDF, XLSX, DOCX, HWPX로 내보냅니다. 발행한 개정은 고정되어 이후 편집으로 덮어쓰지 않습니다.
프로젝트별로 역할 권한을 나누고 변경 이력을 감사 기록으로 남깁니다. 로그인은 OIDC, SAML, LDAP과 MFA를 사용합니다.
선택 납품 항목인 SiteXray 웹접근성 진단 결과를 코드 분석 리포트에 연결합니다. 소스 검수와 화면 접근성 결과를 한 문서에서 봅니다.
추론 엔드포인트와 모델은 설정으로 정해 자체 호스팅 로컬 모델 서버와 연결합니다. 모델 없이는 분석만 동작하고 답변 합성은 건너뛰며, 모델 전송 내역은 답변 화면에 표시됩니다.
기술 스택
Python · SQLite · tree-sitter · Three.js · Vite · WeasyPrint · openpyxl · python-docx