
118
구현 파일 내 하나의 함수에 모든 것을 담은 코드는 좋은 코드가 아니다. 읽기
도 어렵고 디버그하기도 힘들다. 따라서 여러 개의 함수로 분리하려 한다.
여러분의 코드를 쉽게 이해할 수 있는 데이터 공유 메커니즘이 필요하다.
즉, 함수 간에 어떤 데이터가 공유되는지 코드상에 명확하게 나타나고, 각 함
수들은 코드에 명시되지 않은 별도 채널을 사용하여 통신하지 않도록 해야 한
다. 따라서 호출자에게 정보를 제공하기 위해 전역 변수를 사용하는 것은 좋은
해결책이 아니다. 코드 내 다른 부분에서 전역 변수에 쉽게 접근하고 수정할
수 있기 때문이다. 또한, 함수 서명으로는 어떤 전역 변수가 반환 데이터로 사
용되는지 정확히 알 수 없다.
전역 변수는 상태 정보를 저장하는 용도로 사용될 수 있어 동일한 함수 호출
에 대해 다른 결과를 야기할 수 있다는 단점이 있다. 이렇게 되면 코드를 이해
하기가 더 힘들어진다. 그 외에도, 전역 변수를 반환 정보로 사용하는 코드는
재진입(reentrant)이 불가능하며 다중 스레드 환경에서 사용하기에 ...