#term 단어 transparent를 설계에 쓸 때
transparent. 투명하다는 뜻이다. 책을 읽다 보면 이 단어가 많이 나온다. 처음에 접했을 때, 어떤 뜻인지 바로 와 닿지가 않았다. 물론 그래픽스 책에서 나올 때 말고. 거기에선 말 그대로 투명하다는 얘기니깐. 범위를 더 좁혀보면 설계에서 이 단어가 나왔을 때이다.
The decorator conforms to the interface of the component it decorates so that its presence is transparent to the component’s clients. - design patterns p175
존재를 인식할 수 없을 때, 투명하다고 표현을 한다. decorator pattern이 좋은 예. 클라이언트는 노출한 인터페이스로만 접근할 뿐, 어떤 역할을 가진 인스턴스가 덧붙여진 것인지는 모른다. 즉 이 존재를 인식할 수 없다.
반면 어떤 걸 불투명하다고 하나? 존재를 인식할 수 있을 때 쓴다. singleton pattern이 좋은 예. getInstance()
멤버 함수를 통해 유일한 객체에 접근한다. 즉 싱글톤 존재를 인식하게 된다.
정리해보자. 존재를 인식할 수 없다. 이건 투명하다. 존재를 인식할 수 있다. 이건 불투명. 혹은 투명하지 않다.
나만 헷갈리나. 이 단어에 관한 얘기를 본 적이 없다. 암튼 헷갈리는 김에 정리. 많이 쓰니 알아야 이해가 된다.
Update
location transparencyelixir/erlang 클러스터(cluster) 내 프로세스끼리 메시지를 보낼 때, 프로세스가 어떤 노드에 있든 상관이 없다. 여기서도 location을 인지할 필요가 없다는 뜻으로 쓰인다. - <#book The Little Elixir & OTP Guidebook / Benjamin Tan Wei Hao>