input - output 을 먼저 정해라 분석을 하던 개발을 하던 첫 단계는 해당 모듈이나 함수가 필요로 하는 입력과 이 녀석이 뱉는 출력을 정하는 것이다.
개발시
입력을 정하는 이유는 해당 모듈의 사양을 정하기 위함이고
어떤 값을 받을지 어떤 타입으로 받을지 정해지면 작업이 수월해지기 때문이고
출력을 정하는 이유는 값을 몇개 돌려줄지에 따라서 포인터를 써야 하는지 그냥 return으로 될지
아니면 전역변수를 써야 할지 결정할수 있기 때문
분석시
입력과 출력을 보는 이유는 데이터의 흐름을 파악하기 쉽기 때문.
어떤 데이터 포맷이 들어오는지를 추적하고 어떤 데이터 포맷이 나가는지를 보면
해당 모듈이 하는 행위가 파악되며
행위가 파악되면 디버그나 내부 구조가 유추된다.
제.. 개인적인 생각이지만
이 개념을 확장하여 C++의 재사용이나 객체 상속이 나오는 것으로 생각됩니다.
함수를 black box화 시키고 입력과 출력만 알면 누구나 쓸수 있게 되는 개념이니 말이죠.