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


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

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


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

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

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





반응형

+ Recent posts