오브젝트

Ch05. 변경과 설계 - 변경과 설계

webmaster 2024. 10. 12. 16:24
728x90

설계란? 코드를 배치하는 방식이다. 동일한 기능을 구현하는 코드를 서로 다른 방식으로 배치하면, 서로 다른 설계가 된다.

훌룡한 설계를 하기 위해서는 응집도가 높고, 결합도가 낮고, 캡슐화를 지키도록 코드를 배치하면 된다.

응집도

모듈 내부의 특성으로 어떤 모듈 내부에 함께 포함된 요소들의 기능적인 집중도 또는 데이터와 메서드 사이에 관련된 정도를 의미한다.

  • 응집도가 높다: 모듈러에 포함된 요소들이 하나의 기능에 집중하거나, 데이터와 메서드가 밀접하게 연관되어 있다.
  • 응집도가 낮다: 여러 기능에 집중한 요소들이 함께 모여 있거나, 데이터와 메서드가 밀접하게 연관되어 있지 않다.

훌룡한 설계는 응집도가 높아야 한다.

결합도

모듈 외부의 특성으로 모듈이 외부의 다른 모듈에 의존하는 정도 또는 다른 모듈에 대해 알고 있는 지식의 양을 의미

  • 결합도가 높다: 다른 모듈에 대해 더 많이 알고 있다.
  • 결합도가 낮다:  다른 모듈에 대해 더 적게 알고 있다

훌룡한 설계는 결합도가 낮아야 한다.

캡슐화

모듈 내부에 데이터와 메서드를 함께 묶은 후에 오직 외부에 제공된 공용 인터페이스를 통해서만 접근 가능하도록 허용하는 방식을 의미한다.

훌룡한 설계는 캡슐화의 원칙을 지켜야 한다.

 

모든 설계 원칙과 이론은 변경과 관련이 있다. 따라서 응집도, 결합도, 캡슐화를 더 잘 이해하기 위해서는 변경의 관점에서 원칙들을 이해해야 한다.

728x90