High Cohesion, Low Coupling

진리이다. 항시 기억하자.


예를 들면 인체는 결합도가 높다. 뭔가 하나 수정하려면 주변에 영향을 주는 것이 많아서 굉장히 힘들다. 의사들을 보면 엄청나게 공부를 해야 하고 기억해야 할 것도 많다. 게다가 크고 작은 의료 사고(버그)도 끊이지를 않는다. 환자가 알아서 잘 설명하지 않으면 의사도 어디가 문제인지 모른다.

이번엔 결합도가 아주 낮은 전구와 소켓을 보자. 전구가 나갔으면 전구를 돌려서 슥 뺀다음 새 전구를 끼우면 된다.

반응형

전역 변수를 사용하면 안되는 이유, 함수가 길어지면 안되는 이유가 무엇일까? 인간의 초 단기 기억력은 한 번에 7가지 정보만을 동시에 기억하고 있을 수 있기 때문이다. (관련글: 두뇌이야기 (4) - 워킹메모리를 늘리는 법)


함수를 짧게 만들어야 하는 이유

우리가 코드를 보는 중에 빠르게, 그리고 오래 기억하고 있을 수 있는 사실들은 매우 적다. 예를 들어 지금 지역 변수가 7개를 초과한다면 함수 분석 중 변수의 변화를 더 이상 따라갈 수 없게 된다. 또 if문이 2중, 3중으로 중첩되거나 함수가 길어질 경우에도 그 이전 기억을 모두 붙잡고 있어야만 이해할 수 있기 때문에 이해하기 어려워진다.


전역 변수를 사용하면 안되는 이유

전역 변수의 경우에는 전역 변수가 언제 변하는지 파악하기가 아주 힘들다. 함수 중간에 다른 함수를 호출했는데 내가 쓰고 있던 전역 함수 값이 과연 바뀔까 안바뀔까? 그 밑 함수를 줄줄이 따라가봐야만 알 수 있게 된다.

처음에는 이곳저곳에서 편하게 쓰겠지. 하지만 나중에 가면 전역 변수는 '누구나 건드릴 수 있다'는 점이 문제다. "대체 어떤 자식이 이 변수값을 바꾸는거야" 혹은 "이게 대체 왜 바뀌는거야" 하고 생각하게 될 것이다.





반응형

+ Recent posts