디자인 패턴 공부를 하면 투명성(transparency)이란 단어를 만난다. 이 단어에 대한 설명은 아무리 읽어도 쉽게 와닿지 않는데, 아마도 번역이 부적절하기 때문이라 생각한다.
transparency는 컴포지트 패턴에서 같은 부모를 상속받은 객체 컬렉션과 개별 객체 두 클래스 중 한 쪽에는 불필요한 메소드가 있을 때 이를 구현할 필요가 있는지 설명하는 과정에서 언급된다. 구현하는 경우 부모 클래스만 이해하면 자식 클래스를 일일이 살펴보지 않고도 사용할 수 있어 transparent하다고 한다.
사전에서 transparent(cy)를 찾아보면 ‘투명한’이란 뜻 외에 ‘명료한, 명쾌한, 솔직한’이란 뜻도 있다. 위 장점에 대한 설명으로는 이해가 쉽다, 명료하다는 말이 적절해 보인다. 부모 클래스를 이해한 것으로 하위 클래스도 쉽게 이해할 수 있다는 점을 가리키는 단어기 때문이다.
최근에 일부 책이나 글은 투명성이 아닌 명료성으로 번역하고 있고, 나도 명료성이 더 적절하다고 생각한다. 처음부터 그랬다면 더 좋았겠지만, tranparency란 단어의 개념이 명확치 않았을 때 잘못 번역된 것 같아 아쉽다.