모듈 간 결합도 줄이는 방법
큰 모듈을 피하면 모듈 간 결합도를 느슨하게 할 수 있다. 이는 유지보수와 코드 수정이 용이하게 해준다. 또한, 다른 모듈에서 코드를 재사용하기 쉽게 만들어 준다.
모듈 결합의 이해
- 결합은 클래스 수준에서 일어난다. 모든 가이드라인을 준수하더라도, 클래스 내의 메서드 조합이 다른 클래스와 강한 결합을 만들 수 있다.
- 결합의 강도는 상대적이다. 유지보수에 발생할 문제는 클래스의 ‘크기’와 ‘호출 횟수’에 의해 달라진다. 따라서, 자주 호출되는 클래스는 작게 유지해야 한다.
작고 느슨한 결합의 장점
- 독립적인 작업이 가능하다
- 코드를 이해하고 분석하기 쉽다
결합도를 줄이는 방법
- 클래스를 나눠서 관심사를 분리한다.
- 한 클래스에 너무 많은 기능을 넣지 말자.
- 구현부는 인터페이스에 숨긴다.
- 고수준에서 캡슐화하면 결합도를 낮출 수 있다.
- 커스텀 코드를 외부 라이브러리나 프레임워크로 대체한다.
주의사항
- 재사용이 가능한 메서드를 만들라는 의미가 아니다.
- 상속을 활용하거나 인터페이스에 구현부를 숨겨 결합도를 낮추자.
- 제네릭한 코드를 작성하려고 결합도가 높은 코드를 만들 필요는 없다.
- 인터페이스는 최소 2개 이상의 클래스가 구현하도록 하자.
- 단순히 제한을 두려면, 클래스를 나눠야 한다.