들어가기 전에!
결합도와 응집도에 대해 알아보자.
🧐 결합도란?
모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성을 나타내는 정도
🧐 응집도란?
모듈의 독립성을 나타내는 개념으로, 모듈 내부 구성요소 간 연관 정도
이 장은 4장에서 소개한 액션에서 계산을 추출하는 방법에 대한 내용을 자세히 다루고 있다. 4장에서는 액션에서 암묵적인 입⋅출력을 제거하여 계산을 추출하라고 하였다. 좀 더 자세한 방법에 대해 알아보자.
4장에서 말했듯이 액션에서 계산을 추출하려면 암묵적인 입⋅출력을 줄여야한다.
어떤 함수에 암묵적 입력과 출력이 있다면, 그 함수는 다른 컴포넌트와 강하게 연결된 컴포넌트라고 할 수 있다. 그렇게 되면 아무때나 실행할 수 없기 때문에 테스트하기 어렵고, 결합력이 강해져 유지보수하기 힘든 코드가 된다.
클린코드 3장에서 함수를 만들기 위해서는 최소한의 기능을 하는 함수를 만들어야한다고 하였다. 이 책에서도 함수를 설계할 때, 최대한 작은 함수로 설계하라는 언급을 하였다.
최소한의 기능을 하는 작은 함수를 만들게 되면 응집도가 높아지기 때문에 자연스레 함수간 결합도가 낮아진다. 작은 함수로 만들어 응집도가 높아지면 어떤 장점이 있을까?
작은 함수로 만드는 것이 클린코드로 가는 지름길이라고 생각한다.
작은 함수로 만들면 결합해도 오류가 날 가능성이 적어지고, 오류가 나더라도 대응하기가 비교적 쉬울 것이다.
💡 결합도↓, 응집도↑ 함수가 가장 이상적인 함수
정보처리기사를 준비하면서 결합도, 응집도에 대해 공부했던 것이 생각이 났다. 회차별로 무조건 나오는 중요 파트이기도 하고, 클린코드 및 함수형 프로그래밍 책에서도 언급하는 것을 보니 꽤 중요한 개념이라는 생각이 든다. 최소 단위의 함수를 테스트하는 단위 테스트에 대해서도 공부를 해야겠다.