위키득계정 ↗
기술

ArchUnitNET

ArchUnitNET기술
분야
아키텍처 검사
중심 언어
C#
분석 대상
컴파일된 어셈블리
검사 예
타입과 멤버 의존
ArchUnitNET은 C# 코드의 의존과 구조 규칙을 자동 검사하는 라이브러리다. 컴파일된 어셈블리를 분석해 타입과 멤버 관계를 구성하고 테스트에서 설계 제약을 확인한다.

설계 경계를 검사로 남기기

프로젝트가 커지면 계층 사이의 접근 규칙이 코드 리뷰만으로 유지되기 어려울 수 있다. ArchUnitNET은 어느 타입이 어떤 영역에 의존하면 안 되는지 같은 규칙을 코드로 표현한다. 자바 ArchUnit의 접근을 C# 환경에 적용한 도구로, 실행 중 반환값보다 코드의 정적인 관계를 살핀다.

어셈블리와 규칙 구성

분석할 어셈블리를 불러와 구조를 만들고 조건에 맞는 타입이나 멤버를 선택한다. 선택한 대상에 기대하는 제약을 적용하거나 여러 규칙을 조합할 수 있다. 실패했을 때 이유가 드러나도록 규칙을 설명하면 유지보수에 도움이 된다. 분석 범위에서 빠진 어셈블리가 있으면 중요한 관계를 놓칠 수 있으므로 입력 범위를 명확히 한다.

빌드 형태와 연동

여러 닷넷 테스트 프레임워크를 위한 연동 구성이 있다. 분석이 바이너리에 의존하므로 최적화와 컴파일 결과의 영향을 고려해야 한다. 공식 안내는 구조 검사에 Debug 구성을 권한다. 정적인 관계가 규칙에 맞더라도 런타임 구성이나 실제 업무 동작이 올바르다는 뜻은 아니다. 동작 검사와 구조 검사를 함께 유지한다.

관련 문서

ArchUnit / NetArchTest / NUnit / xUnit NET