Skip to main content Link Search Menu Expand Document (external link) Copy Copied

모듈 간 결합도 줄이는 방법

큰 모듈을 피하면 모듈 간 결합도를 느슨하게 할 수 있다. 이는 유지보수와 코드 수정이 용이하게 해준다. 또한, 다른 모듈에서 코드를 재사용하기 쉽게 만들어 준다.


모듈 결합의 이해

  1. 결합은 클래스 수준에서 일어난다. 모든 가이드라인을 준수하더라도, 클래스 내의 메서드 조합이 다른 클래스와 강한 결합을 만들 수 있다.
  2. 결합의 강도는 상대적이다. 유지보수에 발생할 문제는 클래스의 ‘크기’와 ‘호출 횟수’에 의해 달라진다. 따라서, 자주 호출되는 클래스는 작게 유지해야 한다.

작고 느슨한 결합의 장점

  • 독립적인 작업이 가능하다
  • 코드를 이해하고 분석하기 쉽다

결합도를 줄이는 방법

  1. 클래스를 나눠서 관심사를 분리한다.
    • 한 클래스에 너무 많은 기능을 넣지 말자.
  2. 구현부는 인터페이스에 숨긴다.
    • 고수준에서 캡슐화하면 결합도를 낮출 수 있다.
  3. 커스텀 코드를 외부 라이브러리나 프레임워크로 대체한다.

주의사항

  1. 재사용이 가능한 메서드를 만들라는 의미가 아니다.
    • 상속을 활용하거나 인터페이스에 구현부를 숨겨 결합도를 낮추자.
  2. 제네릭한 코드를 작성하려고 결합도가 높은 코드를 만들 필요는 없다.
  3. 인터페이스는 최소 2개 이상의 클래스가 구현하도록 하자.
    • 단순히 제한을 두려면, 클래스를 나눠야 한다.