객체지향 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동이다.
위 문구에서 2가지 사실을 추출할 수 있다.
1. 객체지향 설계의 핵심은 [책임]이다.
2. 책임을 할당하는 작업은 [응집도]와 [결합도]와 같은 설계품질과 깊이 연관되어 있다.
응집도
모듈에 포함된 내부요소들이 연관되어있는 정도.
모듈 내의 요소들이 하나의 목적을 위해서 긴밀하게 협력한다면 높은 응집도를 가진다.
모듈 내의 요소들이 서로 다른 목적을 추구한다면 낮은 응집도를 가진다.
응집도가 높은 설계에서는 하나의 요구사항 변경을 반영하기위해서 하나의 모듈만 수정하면된다.
결합도
다른 모듈에 대해 얼마나 많은 지식을 갖고 있는지 정도.
어떤 모듈이 다른 모듈에 대해서 너무 자세한 부분까지 알고 있다면 두 모듈은 높은 결합도를 지닌다.
어떤 모듈이 다른 모듈에 대해서 꼭 필요한 지식만 알고 있다면 두 모듈은 낮은 결합도를 가진다.
하나의 모듈을 수정할때 얼마나 많은 모듈을 함께 수정하는지도 알 수 있다.
데이터 중심설계는 다음과 같은 문제가 있다.
- 캡슐화 위반
- 높은 결합도
- 낮은 응집도
책임을 중심으로 설계하자!
'개발 > Web Programming' 카테고리의 다른 글
[HTTP 완벽 가이드] 5장. 웹 서버 (0) | 2022.05.22 |
---|---|
[HTTP 완벽 가이드] 4장: 커넥션 관리 (0) | 2022.05.22 |
[react-native] 커스텀 폰트 적용하기 (0) | 2022.05.21 |
react native pod install시 RNGestureHandlerManager.h:9:52: error: expected a type 에러 (0) | 2022.05.19 |
react-native에서 storybook 적용 트러블 슈팅 (0) | 2022.05.18 |