728x90
반응형
SMALL
개념 한 줄 요약
계약(Contract) = 클라이언트와 컴포넌트(서비스 제공자) 사이의 명시적 약속
오퍼레이션마다 선행조건(Pre), 결과조건(Post), 불변조건(Invariant)을 명세·검증한다.
명세 구성요소
- 선행조건 (Precondition)
오퍼레이션 호출 전에 참이어야 할 조건.
→ 만족 책임은 호출자(클라이언트). - 결과조건 (Postcondition)
오퍼레이션 종료 후 반드시 참이어야 할 결과.
→ 책임은 제공자(컴포넌트). - 불변조건 (Invariant)
오퍼레이션 수행 전·후 항상 유지되어야 할 클래스/모듈의 규칙.
→ 상태 일관성 보장.
왜 쓰나 (효과)
- 명확한 책임 분리(누가 무엇을 보장하는가)
- 버그 조기 발견(계약 위반 지점이 즉시 드러남)
- 변경 용이성(사양이 코드와 함께 살아 움직임)
- 문서화 자동화(테스트 가능한 스펙)
728x90
반응형
LIST