Search

[Tip] 한 줄로 설명해보기 (응집도)

Why
응집은 ‘같은 목적을 가진 요소들이 서로 얼마나 잘 뭉쳐있나’라는 문장으로 표현할 수 있음. 응집도가 낮다면 관련된 것들이 여기저기 흩어져 있어 같은 수정을 여러 곳에서 여러 번 하게되는 문제가 발생한다.
SRP를 위반하는 모듈은 책임을 벗어나는 요소를 함께 기억하고 있어야 하기 때문에 인지 비용이 높을 뿐만 아니라, 예상치 못한 사이드 이펙트를 일으킬 위험을 가진다.
응집도 높은 모듈은 이름만 봐도 역할이 드러나고, 변경 요구도 명확히 한곳에 모여 변경 비용이 급감한다.
How
1.
특정 함수나 모듈을 “이 함수 / 모듈은 _____ 을 한다” 라는 한 줄을 적어본다.
2.
1) 도저히 ‘그리고’를 빼고는 설명할 수 없거나 2) 파라미터로 넘겨지는 값에 일관성이 없고 번잡하다면 분리를 고려한다.
Expectation
상황 인식: 함수/컴포넌트 이름 짓기가 어렵거나, 여러 요소를 포괄하느라 애매한 이름을 쓰고 있다면 응집도 문제 감지
패턴 매칭: "이거 사실 2개 함수로 나눠야 하는 거 아닌가?" 같은 분리 시그널 포착
자동 대응: 즉시 멈추고 "이게 하는 일이 뭐지?" 한 문장 작성 → "그리고"가 들어가면 분리