이런 정석에는 항상 "왜!?" 라는 것이 따라 다니는데...
"전역 데이터"를 왜 최소화 해야 하는가?
전역 데이터는, 전역 네임스페이스에 있는 데이터로써, 어디에서건 접근 할 수 있다. 이 말만 들으면, 아주 좋은 자리에 줄을 선 데이터 이다. 하지만 이 "어디에서건"이 매우 복잡한 상태를 초래하게 된다.
자리가 매우 좋으니, 어디에서건 값을 수정 할 수 있게 된다. 그래서 그 값이 왜 어떻게 언제 수정되었는지 알기가 매우 힘들어 진다. 이런 것이 "아느니 모르니만 못하다" 라는 소리를 듣는 경우이다.
그렇다면, "공유 데이터" 는 무엇을 말하는 것일까?
바로 클래스의 멤버 데이터를 말한다.
이것은 또 왜 문제인가?
바로 전역 데이터 처럼 쓰여지니 문제가 똑같이 된다.
경험으로는. private 멤버 데이터를, 참조형태로 밖에서 변경하게 될 경우, ... 어디서 고쳐졌는지 모르는 상태가 되는 경우와, SOCKET을 외부에 노출하게 됨으로써, 소켓의 상태가 손쉽게 변경 될 수 있다는 점을 겪어 보았다.
총평
정석대로 코딩.
최근댓글