복잡한 툴이 있다. 아니 복잡한 것이 아니라 진입장벽이 높은 것일지도 모른다. 예를 들면, autotools 같은 것들이 그렇고 po file 을 통한 국제화지원들이 그렇다. 전자는 복잡할지 몰라도, 후자는 진입장벽이 살짝있다. (없을 수도 있다.) xml-rpc관련된 것도 그렇다. 다른 방식으로 잘 쓰는 사람들에게는 습관의 진입장벽이 있다. 가끔 주위에서 빌드스크립트나 기타 뭔가 자동화된 툴을 직접 제작하여 쓰는 것을 보다보면, 상당히 복잡한 모습이 돼 버린것을 본다. 이렇게 복잡한 것은 대개 여러사람이 패치에 패치를 가했거나, 언어자체를 공부하면서 만들어 최적화된 방법으로 구현 되지 않은 경우들이다. 배워야될 것이 있는데, 시간이 없는 경우 점점 코드가 미쳐가는 것이다.

외부 세계는 약육강식에 의해 살아 남은 코드들이 복잡함을 나타내며, 진입장벽을 치고 있고,
자신이 만든 내부 세계는 미친듯이 코딩하여 복잡하게되어 간다.

복잡한 것과 어려운 것은 연결되어 있으면서도 사실은 다른 것이다. 복잡한 것이 어려울 때는 복잡한 스케일에 대해 천천히 수용할 시간적 여유가 없기 때문에 그러한 것 뿐이다. 즉, 복잡한 것이 어려운 경우는 그 스케일을 수용하기 어려운 것이다.

고속도로를 달리다 보면 주위에서 일어나는 좋은 일을 감상하지 못하는 것이 당연하다. 즉, 수용할만한 여유가 없기 때문에 그렇게 지나치는 것들은 복잡한 것이 되는 것이다. 기본적으로 어떤 분야에 오랜 시간 일을 진행해왔으면, 어려운 것이 점점 줄어들게 되고, 아무리 시간이 없는 상황에서도 복잡하게 느껴지지 않게 된다. 즉, 그 스케일을 수용할 수 있게 된다.

복잡한 것은 다양한 요구사항에 의해서, 조금씩 연결된 고리들이 많아진 상태를 말한다. 구성하고 있는 것들은 본질적으로 다 알고 있는 것이며, 단지 시간이 문제일 뿐. 만약, 구성하고 있는 것 중에 어려운 것이 하나 있을 경우, 고리가 연결되면서 나머지들까지 어려움이 전파되어 복잡하고 어려운것이 되어 버리는 것일게다.

이 글을 쓰게된 계기가, 이X우 옆에 앉아 PHP로 된 다국어 지원 코드를 흘깃보다보니, 과거 그 코드를 한 번 들여다 봤던 기억이 떠올랐고, po file, php 로 된 개념을 상당히 어렵게 사용하고 있는 것을 보고서, 과연 복잡한 것과 어려운 것이 무엇일까를 생각하게 되었다.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

+ Recent posts