습관적으로 만드는 Top-down 분류 코드를 보고, 거부감이 들었다. 객체지향 초기에 스스로 품고 있었던 악습이 다른 사람의 코드를 통해 재현했기 때문인 듯하다. 깜빡 있고 있었는데, 좋은 그림이 있어서 다시 떠올랐다.



JDK와 같이 이미 널리 쓰는 라이브러리안에 혹은 동료들이 이미 작성한 코드에서 가져다 쓸 클래스가 있는데도 무언가 새로 정의할 때!

새로운 클래스는 복잡도라는 이름으로 불리울 수 있다. 레거시가 있는데 새로 무언가 만든다는 것은 중복을 낳는 것이고, 이는 갈림길을 만들어 후일 두 부류의 코드를 양산한다. 그런 것이 쌓이고 쌓이면 복잡도가 가중된다. 나는 동료가 혹은 스스로가 이미 있는 것 외에 새로운 무언가를 만들고자 할 때, 혹은 상속을 통해 확장 계층을 만들 때 다음과 같은 질문을 할 것이다:

복잡도를 늘리는 대가는 무엇인가?

대가만 충분하다면야... 복잡도는 확장성(예:프레임워크) 내지는 혁신(예:AOP) 등으로 변모할 수 있으니까.

그림 출처: 과도한 추상화
이올린에 북마크하기(0) 이올린에 추천하기(0)

Head first 시리즈Kathy Sierra, 그녀의 블로그에 환상적인 삽화와

Robotemployees

Metaphor_1


Dentistoffice
환상적인 그래프가 올라왔다.

Zombiefunction_2

나처럼 긴 영문을 읽어 낼 인내가 부족한 사람에게는 최적의 전달이다.

이 그림들은 글을 읽어보지 않아도 충분하고 강력한 메시지를 받을 수 있다.
전문을 읽은 사람들에게도 그림은 분명히 의미를 지닐 것이다.

이들은 Kathy Sierra가 하고자 하는 얘기를 표현한 모델(MODEL)이다.
왜냐하면 추상화 된 그림만으로도 메시지의 핵심을 어느 정도 파악할 수 있기 때문이다.

또한, 이러한 그림의 최고의 인터페이스(INTERFACE)이다.
글의 경우는 비영어권 독자와는 COMMUNICATION이 쉽지 않지만
그림의 경우는 범례로 쓰이는 몇 개의 단어 만으로도 강력한 의사 전달이 가능하기 때문이다.

그녀의 그림(모델, 인터페이스)을 조금 더 들여다보면 몇 가지 특징을 찾을 수 있을 것 같다.
Easeofusegonewrong

출처 보기


글 머리에서 첨부한 그림과 위의 그림을 보면 공통적인 특징이 있다.
어떤 객체에 대한 상징을 위해서 실사를 활용한다. 실사와 문자, 그림을 혼합하는 것은 이미지를 세련되지 않게 하지만, 디씨인사이드의 예에서 보는 강렬한 인상을 주는 데에는 강한 힘을 갖고 있는 듯하다.

또, 둘은 두 개의 강렬한 대비를 통해서 메시지를 전한다. 이분법, 대결구도, 흑백논리, 선과 악, 피고와 원고 .... 분야는 달라도 집단을 둘로 구분하는 것은 강한 힘을 갖는다.

다른 그림들을 보자.

좌표평면을 할용한 Kathy Sierra의 그림 보기


위의 그림외에도 그래프와 좌표평면을 활용한 그림은 그녀의 트레이드 마크로 생각될 정도로 자주 본 듯 하다.
두 개의 축을 정하여 메시지를 추상화 하여 보여주는 것은 무척 인상적인 기법이다.
그래프라는 것이 정량화의 산물이라는 고정관념만 벗어난다면 유용한 도구 하나를 얻는 것이다!

또한, BCG growth-share matrix에서와 마찬가지로 좌표 평면을 소수의 구획으로 나눠서 유형 분류를 하는 것은 요긴하게 쓰일 수 있다. 짐작에 지나지 않지만, 다수의 이론이 많았음에도 BCG growth-share matrix의 어휘가 많은 사람들에게 회자되는 이유 중에 단순함도 반드시 포함되 있을 것이다.

이올린에 북마크하기(0) 이올린에 추천하기(0)