진단과 설치를 분리한다.

문제

설치 상태를 점검하는 일과 실제로 설치·변경하는 일이 뒤섞이면, 그냥 상태를 보려던 것이 시스템을 바꿔 버리는 사고가 난다. 진단이 부작용을 내면 안심하고 점검할 수 없다.

결정

진단하는 쪽은 상태를 읽기만 하고 아무것도 바꾸지 않으며, 설치나 변경은 명시적인 경계 뒤에서만 일어난다. 상태 확인은 언제 해도 부작용이 없도록 보장한다.

대안

  • 진단이 필요하면 알아서 고치게 둔다 (기각): 읽으려던 동작이 시스템을 바꿔 예측 불가가 된다.

결과

상태를 부작용 없이 안전하게 점검할 수 있고, 변경은 의도적으로 경계를 넘을 때만 일어난다. 다만 진단과 설치의 경계를 코드가 분명히 지켜야 한다.

확정 · 공개 발행 · OpenArms