함수 : 어떠한 기능을 수행하는 것
ex) 계산기의 덧셈을 수행하는 기능, 뺄셈을 수행하는 기능
모듈 : 하나의 프로그램을 구성하는 모든 것을 독립적으로 기능을 수행할 수 있는 최소 단위로 분리한 것
ex) 계산기(프로그램) -> 계산기에 포함된 연산(덧셈, 뺄셈, 나눗셈, 곱셈)기능들을 각각 독립적으로 기능을 수행할 수 있는 기능들로 분할 하는 것
모듈화 : 독립적으로 동작 가능한 기능들로 분리해서 사용하면 새로운 개발 요구사항이 들어왔을 경우 모듈이 되있는 것들을 조합해서 새로운 것을 빠르게 만들수 있고, 유지보수를 쉽게 할 수 있다.
Q1) 하나의 기능(함수)은 독립적으로 재활용이 가능하게 최소 단위로 쪼개서 만들어야 하는 이유는?
1. 어떠한 큰 기능을 만들 때 독립적으로 재활용이 가능한 여러 기능들을 필요에 맞게 조합해서 사용하기 좋음
2. 프로그램의 복잡성이 줄어들고 이해하기 쉬워짐
모듈화가 잘 안됬을때의 문제점)
해당 프로그램에 D라는 기능이 필요한 상황이라고 가정해보자.
X라는 기능을 만들었고 D라는 기능에는 (A, B, C) 기능이 포함되어 있다.
Y라는 기능을 추가해달라는 요구사항이 들어와서 봤는데 Y기능은 (A, B, D) 기능이 필요한데.. 이전에 만들었던 X기능의 재활용이 불가능해서 또다시 A, B 기능을 만들고 D라는 기능을 추가해서 Y라는 기능을 만들게 된다.
---> 처음에 A, B, C, D의 각각을 기능을 따로 만들어서 새로운 기능 개발 요구사항이 들어왔을 때 필요한 것만 가져다 썼으면 여러번 작업을 하지 않아도 됬고 시간도 절약할 수 있지 않았을까?