대부분의 엔지니어링 팀은 동일한 코드베이스에 대해 두 가지 별개의 논의를 진행합니다. 하나는 보안에 관한 것으로, SQL 인젝션 위험, 하드코딩된 비밀 키, 악용 가능한 종속성이 있는지 등을 검토합니다. 다른 하나는 유지보수성에 관한 것으로, 이 함수가 너무 복잡한지, 코드가 세 번이나 중복된 것은 아닌지, 아무도 삭제하려 하지 않는 사용되지 않는 코드가 있는지 등을 논의합니다.
이러한 대화는 대개 서로 다른 도구에서, 서로 다른 팀에 의해, 서로 다른 일정으로 진행됩니다. 보안 스캐너는 악용 가능한 부분을 표시합니다. 별도의 품질 관리 도구(대개 독립적으로 구매 및 관리됨)는 유지 관리 비용이 많이 드는 부분을 표시합니다. 라이선스가 두 개, 두 개의 dashboards는 동일한 추상 구문 트리를 탐색하여 서로 다른 두 질문에 답하는 두 개의 파서입니다.
그러한 분리에는 대가가 따릅니다. 신뢰성 결함(보안 침해가 아닌 런타임 오류를 유발하는 결함)은 보안 팀의 관할 범위 밖에 있기 때문에 보안 문제만큼 체계적인 처리 과정을 거치지 못합니다. dashboard이미 보안 목적으로 모든 파일을 분석하는 정적 분석 엔진을 보유한 팀에 코드 품질 검사만을 위한 두 번째 엔진을 구축하는 것은 아무런 이점도 없는 불필요한 작업입니다.
코드 품질이 중요한 이유 (그리고 다른 요소와의 차이점) Code Security)
코드 품질 및 code security 서로 다른 두 질문에 답하세요. Code security 보안 취약점은 "이 코드가 악용될 수 있을까?"라고 묻습니다. 코드 품질은 "이 코드가 유지보수 가능한가?"라고 묻습니다. 완벽하게 안전한 함수라도 500줄이나 되는 복잡한 코드 덩어리여서 아무도 건드리고 싶어 하지 않을 수 있고, 잘 정리되고 읽기 쉬운 모듈이라도 치명적인 인젝션 취약점을 안고 출시될 수 있습니다. 이 두 가지 원칙은 서로를 대체할 수 없습니다.
코드 품질을 무시했을 때 발생하는 비용은 보안 침해로 바로 나타나지 않습니다. 그 대가는 서서히 드러납니다. 신입 직원이 안전한 변경 작업을 하는 데 이틀이 아닌 두 주가 걸리고, 중복된 코드 블록이 다른 곳에서 어떤 문제를 일으킬지 예측할 수 없어 기본적인 기능 구현에 세 번의 스프린트가 소요되며, 온콜 엔지니어는 1년 전에 삭제했어야 할 사용되지 않는 코드에서 버그를 추적하는 데 한 시간을 허비합니다. 이러한 모든 상황은 보안 경고를 발생시키지 않습니다. 결국 모든 문제는 개발 속도에 반영되고, 스프린트 회고에서 문제가 드러날 때쯤이면 이미 수정하는 데 막대한 비용이 발생합니다.
품질을 보안과 동일한 수준으로 엄격하게 다뤄야 하는 이유도 마찬가지입니다. 코드 스멜이 위협이어서가 아니라, 유지보수 부채가 제대로 관리되지 않고 누적되면 결국 기능들이 사장되는 곳이 되기 때문입니다.
더 나은 방법: 엔진 하나, 규칙 카탈로그 두 개
Xygeni의 코드 품질 스캐너는 소스 코드에서 유지 관리 및 신뢰성 결함을 분석합니다. 코드 스멜, 복잡성 위반, 사용되지 않는 코드, 중복 코드 등 직접적인 보안 침해는 아니지만 서비스 중단, 회귀 오류, 팀 작업 속도 저하를 유발하는 패턴을 찾아냅니다.
차별화된 디자인 선택은 외관상의 특징이 아니라 구조적인 특징입니다. 코드 품질(Code Quality)은 정적 분석 엔진을 다음과 공유합니다. 자이제니스 SAST 스캐너동일한 파서, 동일한 AST 구성, 동일한 파일 검색 기능을 사용합니다. 다만 규칙 카탈로그는 공유하지 않습니다. 품질 규칙은 보안이 아닌 품질 관리에 초점을 맞추며, 발견 사항은 Xygeni 플랫폼의 전용 품질 섹션에 표시되어 보안 섹션과 분리됩니다. SAST 그리고 나머지 보안 위험 표들.
결과적으로, 팀은 서로 다른 두 가지 고려 사항을 하나의 복잡한 분석 단계로 통합하지 않고도 유지 관리 측면과 보안 측면을 동일한 분석 과정을 통해 얻을 수 있습니다. dashboard.
고품질 신호를 얻는 두 가지 방법 Pipeline
모든 "코드 품질" 기능이 내부적으로 동일한 방식으로 작동하는 것은 아닙니다. CI/CD-네이티브 품질 도구는 집계 계층입니다. 그들은 직접 당신의 코드를 분석하지 않습니다.이들은 이미 실행 중인 모든 린터(자바스크립트 린터, 파이썬 린터, 중복 감지기)의 결과를 가져오며, 각 결과는 공통 JSON 스키마로 재구성되어 각각 고유한 방식으로 연결됩니다. pipeline 단계입니다. 유연하긴 하지만, 이는 각 언어별로 서로 다른 도구, 형식, 관리자를 얼마나 많이 조합하느냐에 따라 품질 신호의 일관성이 달라진다는 것을 의미합니다.
Xygeni의 코드 품질 스캐너는 다른 방식을 택했습니다. 보안을 위해 이미 실행 중인 네이티브 엔진 하나에 품질 규칙 카탈로그를 추가한 것입니다. 언어별 린터를 설치할 필요도 없고, 보고서 형식을 다시 지정할 필요도 없으며, 도구별로 별도의 작업을 관리할 필요도 없습니다. 하나의 명령, 하나의 일관된 심각도 모델, 그리고 하나의 품질 관리 체계만 있으면 됩니다. dashboard 해당 섹션은 애초에 분석이 여러 도구에 걸쳐 분산되지 않았기 때문에 작성되었습니다.
어떻게 운영됩니까?
코드 품질 검사는 별도의 CLI 명령으로 실행됩니다.
자이제니 품질 -d [옵션] (xygeni code-quality는 별칭으로 작동합니다.)
이 회사는 옵션 모델을 다음과 공유합니다. 자이제니 sast따라서 Xygeni 보안 스캐너를 이미 실행 중인 사용자라면 누구나 해당 인터페이스를 즉시 알아볼 수 있을 것입니다.
| 선택권 | 그것이하는 일 |
|---|---|
-d, --dir | 분석할 디렉토리 |
--detectors | 특정 탐지기 ID 또는 심각도 및 그 이상의 모든 항목을 실행합니다. |
--fail-on | 주어진 심각도에서 0이 아닌 값으로 종료합니다. CI/CD 게이팅 |
--baseline | 기준선과 비교하여 새로운 결과만 반환합니다. |
--upload | 결과를 Xygeni 플랫폼으로 전송하세요 |
코드 품질 보고서 생성
스캔을 통해 생성된 코드 품질 보고서는 플랫폼으로 전송하거나, CI 아티팩트용 JSON 파일로 내보내거나, 팀 리더에게 직접 제공하지 않고도 전달할 수 있습니다. dashboard 접근. 둘 다 한 줄짜리 명령입니다.
# 스캔 후 바로 Xygeni 플랫폼에 업로드하세요
xygeni 품질 -n 내 프로젝트 - 업로드
# 코드 품질 보고서를 JSON 형식으로 내보내고, 중요한 문제점만 표시합니다.
자이제니 품질 -d –검출기 중요 –형식 json –출력 quality.json
일단 업로드되면, 해당 코드 품질 보고서가 품질 섹션에 자동으로 입력됩니다. dashboard필터링 기능이 있으며, 각 결과별 상세 정보를 슬라이드 아웃 방식으로 제공하고, 기준선을 설정하며, 팀에서 이미 사용하고 있는 보고 방식과 동일한 기능을 제공합니다. SAST.
보안 검사와 함께 실행 품질 검사를 실시합니다.
한 번의 패스로 두 가지 신호를 모두 얻고자 하는 팀의 경우, SAST 스캐너는 다음을 허용합니다 -품질 포함 깃발:
자이제니 sast -디 -품질 포함
때문에 SAST 코드 품질 검사는 파서 단계를 공유하므로 두 스캐너를 순차적으로 실행하는 것보다 효율적입니다. 보안 및 품질 보고서는 각각 별도로 생성되며, 각각 고유한 저장소에 저장됩니다. dashboard 해당 섹션입니다. 이 플래그는 스캔 실행 방식을 변경하는 것이지 결과 구성 방식을 변경하는 것은 아닙니다.
연결 없이 스캔
Xygeni 플랫폼으로의 외부 연결이 없는 격리된 환경이나 CI 실행기의 경우, 품질 스캔은 로컬에서 실행한 후 나중에 업로드할 수 있습니다.
자이제니 품질 -d -n 내 프로젝트
# …나중에 연결이 가능한 호스트에서:
xygeni report-upload -n MyProject -r depsdoctor-quality.json
결과는 실제 스캔에서와 마찬가지로 품질 섹션에 반영됩니다. 동일한 분류, 동일한 정책, 동일한 기준 동작이 적용됩니다.
품질과 보안을 분리하는 것이 중요한 이유
코드 스멜을 악용 가능한 취약점과 동일한 심각도 목록에 포함시키는 것은 쉬운 일입니다. 하지만 Xygeni는 의도적으로 그렇게 하지 않습니다. 중복된 함수와 SQL 인젝션은 같은 종류의 위험이 아니며, 이들을 동일하게 취급하면 팀은 유지 관리상의 사소한 문제에 과잉 반응하거나 실제 보안 문제에 제대로 대응하지 못하게 됩니다. 규칙 카탈로그, 보고서 등을 유지하는 것이 중요합니다. dashboard 엔진은 공유하지만 각 팀은 관점을 분리하여, 별도의 정적 분석 도구를 구매하지 않고도 자신에게 중요한 신호를 얻을 수 있습니다.
시도해보세요: Xygeni CLI를 통해 지금 바로 코드 품질 기능을 이용할 수 있습니다. 이미 Xygeni를 실행 중인 팀은 다음과 같습니다. 자이제니 sast 추가 할 수 있습니다 -품질 포함 기존에 pipeline 한 줄로 요약하면, 새로 도입해야 할 도구도 없고, 두 번째 줄도 없습니다. dashboard 확인하다.
FAQ
Xygeni 코드 품질이란 무엇인가요?
Xygeni Code Quality는 코드 스멜, 복잡도 위반, 사용되지 않는 코드, 중복 코드 등 유지보수성과 신뢰성 결함을 감지하는 정적 분석 스캐너입니다. 이 도구는 별도의 명령어로 실행됩니다.자이제니 품질) 그리고 보안 발견 사항과는 별도로 Xygeni 플랫폼의 전용 품질 섹션에 보고됩니다.
코드 품질은 다음과 같은 것인가요? SAST?
아니요. 코드 품질 및 SAST 동일한 기본 구문 분석 엔진을 공유하지만 독립적인 규칙 카탈로그를 사용하고 독립적인 보고서를 생성합니다. SAST 보안 취약점을 찾고, 코드 품질 관리팀은 유지보수성과 신뢰성 측면에서 결함을 찾습니다.
품질 검사와 보안 검사를 동시에 실행할 수 있나요?
네. 달리고 있어요 자이제니 sast -디 -품질 포함 두 규칙 세트를 한 번에 실행하므로 파서 단계를 공유하기 때문에 두 스캐너를 별도로 실행하는 것보다 효율적입니다. 결과는 여전히 두 개의 별도 보고서로 생성되어 두 개의 별도 저장소에 표시됩니다. dashboard 섹션을 참조하십시오.
코드 품질 기능을 사용하려면 별도의 라이선스가 필요한가요?
품질 결과 업로드 및 보기를 위해서는 코드 품질 권한이 필요하며, 이는 스캔 실행에 필요한 권한과 동일합니다.
Code Quality는 인터넷 연결 없이도 실행될 수 있나요?
예. 검사는 로컬에서 실행할 수 있습니다. –업로드 플래그를 지정하면 연결된 호스트에서 나중에 결과 보고서를 업로드할 수 있습니다. xygeni 보고서 업로드.





