Overwrite State 기능이란 무엇인가요?

수정일 화, 12 5월 시간: 1:26 PM

Q1. Overwrite State 기능이란 무엇인가요?

다른 프로젝트의 결함 상태(Suppressed, False Alarm 등)를 현재 프로젝트로 가져오는 기능입니다.

두 프로젝트에서 동일한 소스 파일에 동일한 결함이 존재할 경우, 소스 프로젝트의 결함 상태를 대상 프로젝트에 그대로 반영합니다.

위치: Project Settings > Overwrite State


Q2. 어떤 경우에 사용하나요?

사용 시나리오설명
다중 프로젝트 운영통합 룰 프로젝트에서 처리한 suppressed 항목을 개별 룰 프로젝트에 반영
프로젝트 이관이전 프로젝트에서 관리하던 결함 상태를 신규 프로젝트로 이관
프로젝트 복제 후 재분석동일 소스를 다른 설정으로 재분석한 프로젝트에 기존 상태 적용

Q3. Overwrite가 되는 조건은 무엇인가요?

Overwrite State는 회차 간 결함 식별 방식과 동일한 메커니즘으로 동작합니다. 각 결함은 고유한 violation hash로 식별되며, 두 결함의 hash가 일치할 때 상태가 이관됩니다.

Violation Hash 결정 요소

요소설명
파일 이름소스 파일명이 동일해야 함
검출 라인위배가 발생한 라인 번호
함수 내 검출 순서동일 함수 내에서 같은 규칙이 검출된 순서
규칙 이름위배된 규칙 식별자
검출 메시지위배 내용을 설명하는 메시지

위 요소 중 하나라도 다르면 다른 결함으로 판단되어 상태가 이관되지 않습니다.


Q4. 소스 코드 일부가 달라도 Overwrite가 되나요?

네, 가능합니다. Hash는 소스 코드 내용 자체가 아닌 위 5가지 요소로 결정됩니다.

사례별 판단

사례Overwrite 가능 여부이유
int a = 0;int a = 255;가능변수명·규칙·메시지 모두 동일
int a = 0;float a = 1;가능타입이 달라도 변수명이 같아 검출 메시지 동일
int a = 0;int b = 0;불가변수명 다름 → 검출 메시지 다름
int a = 0;bool a = 0;불가검출 메시지가 달라짐
줄바꿈으로 라인 번호 변경불가검출 라인이 다름

Q5. 파일 내 모든 결함이 동일해야 Overwrite가 되나요?

아닙니다. Overwrite는 파일 단위로 매칭하고, 결함은 개별적으로 이관됩니다.

  • 두 프로젝트의 파일 내 결함 개수가 달라도 됩니다.
  • 매칭된 파일 내에서 hash가 일치하는 결함만 상태가 이관되고, hash가 다른 결함은 이관되지 않습니다.

Q6. 사용 방법을 알려주세요.

  1. Project Settings > Overwrite State 메뉴 접속
  2. 소스 프로젝트 키 선택 (상태를 가져올 프로젝트)
  3. 파일 매칭 결과 확인
    • show all: 전체 파일 매칭 결과 표시
    • show only success: 매칭 성공 파일만 표시
    • show only fail: 매칭 실패 파일만 표시
  4. [Overwrite] 클릭하여 상태 이관 실행
  5. History 탭에서 Overwrite 이력 및 결과 확인

Q7. 주의사항이 있나요?

⚠ Overwrite 실행 전 반드시 프로젝트를 백업하세요.
Overwrite 과정에서 기존 결함 상태 정보가 손실될 수 있습니다.

  • Overwrite는 되돌리기 어려운 작업입니다.
  • 소스 프로젝트와 대상 프로젝트의 소스가 크게 다를 경우, 의도하지 않은 상태 이관이 발생할 수 있습니다.
  • Overwrite 전 show only success / show only fail 필터로 파일 매칭 현황을 반드시 확인하세요.

Q8. Overwrite 결과를 어떻게 확인하나요?

History 탭에서 이력을 확인할 수 있습니다.

항목설명
ID이력 순서
StatusOverwrite 성공/실패 여부
Source Project Key상태를 가져온 소스 프로젝트 키
Start AtOverwrite 시작 시각
Finish AtOverwrite 종료 시각
DownloadOverwrite 결과 파일 다운로드

아티클이 유용했나요?

훌륭합니다!

피드백을 제공해 주셔서 감사합니다.

도움이 되지 못해 죄송합니다!

피드백을 제공해 주셔서 감사합니다.

아티클을 개선할 수 있는 방법을 알려주세요!

최소 하나의 이유를 선택하세요
CAPTCHA 확인이 필요합니다.

피드백 전송

소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.