책/Python Clean code (1) 썸네일형 리스트형 계약에 의한 디자인 소프트웨어는 사용자가 만들어서 직접 사용하기도 하지만 다른 레이어 나 컴포넌트 에서 호출하는 경우도 있다 이런 경우 이들 간 교류를 어떻게 해야하는지 고민해보자 컴포넌트는 기능을 숨겨 캡슐화 하고 함수를 사용할 클라이언트에게는 API 를 노출해야한다 컴포넌트의 함수, 클래스. 메서드는 특별한 유의사항에 따라 동작해야 하며, 그렇지 않을 경우 코드가 깨지게 된다 반대로 코드를 호출하는 클라이언트는 특정 형태의 응답이나 실패를 기대하고 해당 형태와 다른 응답을 받는 경우 함수 호출에 실패하게 되고 부가적인 결함을 생기는 경우도 있음 물론 API를 디자인할 때 예상되는 입출력과 부작용을 문서화해야함 그러나 문서화가 런타임 시의 소프트웨어의 동작까지 강제할 수는 없다 이렇게 코드가 정상적으로 동작하기 위해 필요.. 이전 1 다음