728x90

2021/11/28 2

응집도와 결합도

응집도와 결합도는 소프트웨어 품질을 결정 짓는 요소이다. 대다수의 사람들은 코드를 작성할때 "응집도" 와 "결합도" 를 생각하지 않은채 관성적으로 코드를 적고는 한다. 응집도와 결합도는 무슨 뜻일까? 일단, 이 개념을 이해하기 위해서 알고 있어야 할 선행지식이 있다. 불안정한 부분과 안전한 부분의 분리 바로 "불안정한 부분" 과 "더 안전한 부분" 을 분리해 내는 능력이 필요하다. 예를 들어 아래와 같은 객체가 존재한다고 해보자. Address 는 모든 변수가 public 하게 열려있다. 우리는 앞으로 Public 하다는건 자신의 내부 속사정을 공개한 객체 취급을 할 것이다. 외부에서 이를 어떻게 사용할까? 위와 같이 사용할 수 있을 것이다. 위와 같이 사용했을때 어떤 문제가 발생할 수 있을까? 아니 "..

Architecture 2021.11.28

객체지향 체조

내가 부트캠프를 하던 시절 과제로 코드를 작성하는데 몇 가지 조건을 제한해둔 과제를 받은 적이 있다. 제한해둔 조건은 대략적으로 아래와 같았다. (기억이라 틀릴 수 있음) 1. 절대로 인덴트 depth 가 3 이상이 되지 않도록 하시오. 2. 중복코드를 최대한 없도록 하시오. 3. 하나의 함수가 80줄을 넘지 않도록 하시오. 그 당시에는 "이것이 가능한가?" 라는 물음이 있었다. 근데 또 하다보니 어찌어찌 되긴됬다. 근데 이 중 for 문 부분에서 3뎁스에 도달해서 떨어질꺼란 생각을 했던 기억이 난다. 여튼 그 당시에는 잘 몰랐지만, 이 내용이 객체지향 체조에 들어있던 내용이였다. 그래서 오늘은 객체지향 체조를 정리해보려고 한다. 객체지향 체조 1. 메소드 당 indent depth 는 하나로 제한한다...

Java 2021.11.28
728x90