규칙 검사를 점진적으로 도입할 때 기존 위반의 기준선을 관리한다
기존 위반을 한꺼번에 고치기 어려워 규칙 검사를 단계적으로 도입한다면, 예외로 남긴 위반의 기준선도 변경을 검토할 대상으로 관리한다. 이때 검사의 통과는 기준선 밖의 위반이 없다는 뜻이며 기존 부채의 해소 여부는 따로 본다.
우아한형제들의 사례는 기존 위반을 동결하고 새 위반을 CI에서 막으며, 남은 부채는 별도 작업으로 줄인다. 위반이 없는 규칙에는 동결이 필요하지 않다.
기준선의 변화가 의미하는 것
ArchUnit 공식 가이드 §8.6에 따르면 저장한 위반과 현재 위반을 대조하고, 고친 항목을 기준선에서 제거한다. 반면 재동결은 현재 위반을 새 기준선으로 받아들여 성공을 보고할 수 있다. 따라서 통과 여부만으로 부채 감소를 판단할 수 없다.
기준선 변경에서는 실제 코드 수정, 검사 규칙·관찰 범위·위반 식별 방식의 변화, 기존 위반의 추가 수용을 구분한다. 수치가 줄었다는 사실만으로 고쳤다고 단정하거나, 늘었다는 사실만으로 우회 의도를 추정하지 않는다. 같은 조건에서의 신규 위반과 남은 기존 위반을 구분해야 개선을 설명할 수 있다.
동결은 도입 순서를 조절하는 수단이다. 어느 위반을 언제 해소할지 관리하지 않으면 기존 부채는 남는다. 허용할 예외와 해소 순서는 해당 팀의 계약과 위험에 맞춰 정한다.
공식 문서는 2026-09-20의 1.5.0 가이드로 대조했다. 특정 프로젝트의 설정·CI 차단을 검증한 기록은 아니다.
연결
- 통과가 뜻하는 관찰·판정·차단의 범위: 규칙을 다시 전달하는 것과 위반을 판정하는 것은 다르다
- 보호할 계약의 선택: 규칙은 소유한 가장 좁고 안정적인 공개 경계에서 깊게 테스트한다
- 검증의 연결 입구: 요구사항에서 검증까지