Contract 계약

두 객체(또는 모듈) 사이의 구체적인 약속 이 입력을 주면, 이런 결과를 보장한다


A 은행에 돈을 예금하면, 연 5%의 이자를 더해준다고 한다. 이때, 이것을 A 은행의 contract라고 할 수 있다. 나는, A 은행이 어떤 방식으로 이자를 마련하는지는 모른다. 하지만, 계약에 따라 연 5%의 이자를 보장받는다.

Protocol 규약

여러 객체/시스템 간의 상호작용 방식 전체에 대한 규칙 이 순서로, 이런 호출/응답해야 동작한다


contract는 정적인 snapshot이다. 반면, protocol은 동적인 time-line이다.

일종의 state machine이라고 생각하면 정확하다.