고전역학적인 관점에서 생각할 때.
시간은 sequential 하고 공간은 parallel하다.
그래서 시간은 ordering이 절대적(absolute, well-order)인 반면
공간의 ordering (coordination system)은 상대적(relative), 임의적(arbitrary) 일 수 밖에 없다.
그리고 인간이 만든 대부분의 컴퓨터나 인간 자신은 동시에 여러가지 일을 할 수 없다.
따라서 시간의 순서에 따라 scheduling하는 것이 공간을 기준으로 scheduling하는 것보다 당연히 쉽고 나은 방법이다.
사람들 간의 대화에서도 모호성을 줄이려면 공간 정보보다는 시간 정보를 활용하는 편이 낫다.
"내가 교실에서 했던 일"은 여러가지 일 수 있지만 "내가 어제 1시 15분에 했던 일"은 한 가지 뿐이다.
"내가 오늘 **시에 만난 사람"은 한정적이지만 "내가 대전에서 만난 사람"은 한정이 어렵다.
프로그래머가 파일을 만들 때도 기존의 파일을 백업하고 싶다면 공간적인 기술인 폴더 새로 만들기 기법보다는 시간적인
기술을 활용해서 파일명 뒤에 시간을 붙이는 것이 나을 수 있다. 사실 파일명을 바꾸는 테크닉은 공간적인 것이지만 시간개
념을 도입하여 운용하는 것이 나중에 헷갈리지 않을 수 있다는 뜻이다.
백업을 할 때도 상대적인 개념인 (new, old)를 써서 "파일명.old "로 하기 보다는 "파일명.과거의 날짜"(혹은 branching,
renaming 날짜)로 하는 것이 좋다.
상대적인 것보다는 절대적인 것이 나중에 혼란을 피할 수 있다.
서수를 동원해서 "파일명.1차", "파일명.2차" .. "파일명.n차" 같은 식으로 백업할 수도 있지만
이것도 과거의 시간을 직접 기술하는 것보다는 상대적이라고 할 수 있다.
파일명.1차와 2차 사이에 파일이 더 있었다는 사실을 알게되었을 때 끼워넣기도 모호해지기 때문에
모든 파일이 모인후 순서관계를 모두 정한 후에야 numbering을 시작할 수 있고 마지막 count가 몇 번인지도 알고 있어야
한다.
상대적인 개념 <----------------------------------------------------------------------> 절대적인 개념
공간<->old, new(전후)<->yesterday, today, next day<->numbering(순서)<->timestamp(시간)
내가 말한 이 개념은 최근 소프트업계의 소프트웨어 프로덕트 versioning에도 사용되고 있다.
MS의 Windows를 예로 들면.
그들은 바보같이 "Windows"의 다음 버젼을 "New Windows"라고 짓지 않았다.
그렇게 하면 그 다음 버젼 이름을 지을 때 괴롭게 된다.
그래서 그들은 "Windows 1.0", "Windows 2.0" 이런식으로 짓기 시작했다.
하지만 요즘 그들은 "Windows 2000" 같은 식으로 짓고 있다.
그 이후 버젼은 "Windows XP" 지었지만 나중에 점차 늘어나면 소비자가 기억하기 힘들어 질 수 있기 때문에
다시 "Windows 2003"으로 지었다.
이런식으로 소프트웨서 버젼 뒤에 시간을 붙이면 좋은 이유는 MS의 OS와 MS의 office 간의 순서도 알 수가 있게 된다.
OS와 office가 각자 1.0, 2.0 식으로 버젼이 올라갔다면 OS와 office 각각에 대해서는 순서 관계를 알 수 있지만 OS와 office
사이의 출시 순서는 알 수가 없다. 출시순서는 compatibility와도 관련이 있다.
반면에 버젼을 날짜(시간)로 붙임으로써 우리는 MS windows 95가 MS office 98이라는 툴의 출현을 모른다는 사실을 쉽
게 알 수 있다.
사실 MS가 만드는 제품군은 수십, 수백까지라서 이런 순서는 매우 중요하다.
물론 Version 관리 툴과 compatibility 관리 툴이 따로 존재하지만 user와 관리자, 개발자 모두 대략적인 compatility를
version을 통해 유추할 수 있게 된다.
결국 바보 같은 사람은 개선이 있을 때마다 매번 새로운 이름을 지으려고 하고 약간 나은 사람은 numbering을 하고
더 나은 사람은 이미 현대인이 알고 있는 시간의 절대성, uniqueness를 이용하면 된다.
이것은 마치 표의문자보다 표음문자가 쉽고
미개인들이 하나, 둘, 많다로 표현하는 것보다 로마 숫자가 우수하고
로마 숫자보다는 기수법을 도입한 수 체계가 우수한 것과 마찬가지이다.
@ 팀 사람들이 자꾸 파일이름을 xxx, test_old, xxx_old, xxx.3 이런식으로 지어서 머리아파서 써봤음;;
댓글 없음:
댓글 쓰기