진단과 설치를 분리한다.
문제
설치 상태를 점검하는 일과 실제로 설치·변경하는 일이 뒤섞이면, 그냥 상태를 보려던 것이 시스템을 바꿔 버리는 사고가 난다. 진단이 부작용을 내면 안심하고 점검할 수 없다.
결정
진단하는 쪽은 상태를 읽기만 하고 아무것도 바꾸지 않으며, 설치나 변경은 명시적인 경계 뒤에서만 일어난다. 상태 확인은 언제 해도 부작용이 없도록 보장한다.
대안
- 진단이 필요하면 알아서 고치게 둔다 (기각): 읽으려던 동작이 시스템을 바꿔 예측 불가가 된다.
결과
상태를 부작용 없이 안전하게 점검할 수 있고, 변경은 의도적으로 경계를 넘을 때만 일어난다. 다만 진단과 설치의 경계를 코드가 분명히 지켜야 한다.
확정 · 공개 발행 · OpenArms