본문
RFC 1925 - The Twelve Networking Truths
이 RFC 문서는 네트워킹 전반에 걸친 기본적인 진실(fundamental truths)들에 대한 것이다. 이 진실들은 TCP/IP, Internet, 혹은 다른 네트워킹 커뮤니티의 일부에 한정되지 않은, 전반적인 네트워킹 분야에 적용되는 사항들이다.
1) (어쨌거나) 동작해야 한다.
2) 어떻게 하든지 간에, 빛의 속도를 더 빠르게 만들 수는 없다. [아기를 출산하는 데는 어떻게 하든 적어도 9달이 걸린다. 이 기간을 단축하고자 하는 노력은, 출산 기간을 짧게 하지 못할 뿐 아니라, 되려 느리게 만들 수도 있다.]
3) 충분한 추진력이 뒷받침된다면, 돼지는 날 수 있다. 하지만, 이것은 좋은 생각이 아니다. 돼지가 어디로 떨어질지는 거의 알 수 없으며, 또한 우리 머리 위에 떠있기 때문에 그 아래에서 앉아있는 것은 위험하다.
4) 인생에 있어 몇몇은 직접 경험해 보지 않는 한, 그 진가를 완전히 알아보지 못하거나 이해하지 못한다. 네트워킹에서의 몇몇은 상용 네트워킹 장비를 만들어보지 않거나, 실제 네트워크를 작동해보지 않는 한 완전히 이해하지 못한다.
5) 몇 가지 독립적인 문제들을 하나의 복잡한, 상호 의존적인 해결책으로 뭉치는 것은 가능하다. 하지만 대개, 이것은 좋지않은 생각이다.
6) 문제를 한곳으로 치워버리는 것이(예를 들어, 전체적인 네트워크 구조상의 다른 부분으로 문제를 넘기는 것), 이를 해결하는 것보다 더 쉬울 수 있다. [또 다른 indirection를 추가하는 것은 언제나 가능하다]
7) 항상 무엇인가는 있다(It is always something) [좋은 것, 빠른 것, 싼 것, 이중에서 두 개만 골라보라(세가지 모두를 잡을 수는 없다)]
8) 모든 것은 생각보다 더 복잡하다.
9) 무엇이든 간에, 모든 자원은 부족하다. [모든 네트워킹 문제를 해결하는데에는 생각했던 것 보다는 항상, 더 많은 시간이 소요한다]
10) 고정된 크기(fixed size)는 항상 들어맞는 것은 아니다.
11) 모든 오래된 생각은, 작동하든 안 하든 간에 항상 새로운 이름과 새로운 표현방식으로 다시 출현한다. [6번의 괄호 안을 보라]
12) 프로토콜 설계에 있어, ‘완벽’이란, 더 이상 추가할 것이 없을 때에 얻어지는 것이 아니다. 이는 더 이상 삭제될 것이 없을 때를 가리킨다.
댓글