개발의 즐거움

전역상태와 public 메타포 - junitInAction2 에서

[짱가™] 2012. 3. 13. 18:53
- JUnit In Action2 내용중 -

모든 사람이(클래스가) 자신의 친구들이(협력자들이) 누구인지 밝히고 있는 사회에 산다고 상상해보자.
조는 매리를 알지만, 매리와 조 모두 Tim 을 모른다는 것을 알고 있다면,
조에게 알려준 정보는 매리에게는 전달될 수 있지만, Tim은 절대 알 수 없다고 가정해도 안전하다.

이제 모두가 일부의 친구만 공개하고, 다른 친구들은 비밀로 하고 있는 사회를 상상해보자 .
그런 사회에서 여러분이 조에게만 알려준 정보를 Tim도 알고 있다면,
Tim은 대체 어떤 경로로 이를 알게 되었는지 궁금해질 것이다.

여기가 재미난 부분이다. 만약 여러분이 관계를 만들어낸 ( 코딩한 ) 사람이라면,
여러분은 모든 종속성을 정확히 알고 있지만, 여러분 이후에 합류한 사람들은 모두 당황하게 될 것이다.
친구라고 선언된 사람들만이 유일한 친구도 아닐뿐더러,
여러분이 알 수 없는 비밀 경로로 정보가 전달되기 때문이다.
거짓으로 가득 찬 사회에 살게 될 것이다.

- 미스코 해브리(Misko Hevery)


전역 상태를 다룰 때 전역 상태로 객체를 다룬 다는 것은 내가 만들어 낸 관계 이외에도 여러가지의 비밀 경로가 생긴다는 말이다.
전역 상태와 public  개념을 다룰 때에 대한 훌륭한 '메타포' 인것 같아서 인용해 보았다.