스케쥴링이란, 한정된 자원을 최대의 효과를 위해 시간 순서를 잘 배치하는 작업을 말합니다. 시간은 게임처럼 저장후 불러 올 수 없기 때문에, 익숙해지기까지 시행착오를 해야됩니다.

스타크래프트를 처음 할때도 그랬고, RPG 게임을 할때 경험치 획득에 의한 레벨업시 테크트리 분배도 그렇고, 스케쥴에 따라 이후의 결과를 얼마나 효과적으로 운영할 수 있느냐가 정해지게 됩니다.

어제, 도시 건설하는 모 게임을 하다가 새벽 4시에 잤습니다. 그때 잔 것 치고는 굉장히 말짱하네요. 도시를 네 개를 폭파시키고서 다섯번째 시도만에 감을 조금 잡았습니다. 잠들기 직전에도, 깨달은것은, 대학교를 지어주지 않아서 그런지 계속 농경 산업에 대한 요구만 늘어서 의아해 했습니다.
짧은 경험 상 내린 결론은, 내 생활도 이 만큼 복잡하다돌이킬 수 없는 시간을 살고 있다. 그러나, 게임만큼 시간이 빨리 흐르진 않는다였습니다.
지금 하는 일을 생각해보면, "자연"에 가까운 수준으로 복잡한 변수를 가지고 있는 시스템에서 작동하는 프로그램, 즉 예상하지 못한 변수로 인해 설계상의 한계 조차 초기 개발에서 고려하지 않은 그런 프로그램을 작성하는 것을 생각해 볼 수 있습니다.

예를 들어, 웹서비스를하나 만들었다고 합시다. 개발장비와 실 장비가 다를 수 있습니다. 네트워크 카드가 다릅니다. 로드 밸런서가 중간에 바뀝니다. 하드디스크의 RPM이 다릅니다. CPU 2차 캐시가 용량이 다릅니다. 개발자는 이런 "자연" 환경 속에서 돌아가도록 프로그램을 만듭니다. 어떤 경우는 훨훨 날아 다니고, 어떤 경우는 이~쌍하게 병목구간이 생깁니다.

이런 경우에도 썰렁한 개발자들은 리소스를 어떻게 분배해야할지를 병목이라 생각되는 분기점에서 고민스런 설계하게 됩니다.

사업도 마찬가지죠. 규칙과 재료는 자연환경 수준입니다. 네트워크 게임이라면, 서로의 규칙과 재료는 유한합니다. 물론 재료의 조합은 무한하고, 플레이어들은 이런 조합의 연속으로 승부가 내는 것입니다.  그러나 사업은 최소한의 상도덕과 법률로만 제한된 규칙을 가지고 있으며, 이윤을 위해 끝나지도 않는 게임을 합니다. 해마다 1 set씩 끝내는 시늉은 합니다.
"자연"에 가까운 재료와 규칙으로 적절한 스케쥴링과 분배를 하는 능력은 무슨일을 해도 동일합니다.
과연 "자연" 수준의 재료를 가지고 하는 일에 필승전략이라는게 있을까요? 답은 없습니다. 그 순간에 최선이라는 선택을 할 뿐입니다. 마치, 도둑이 보석상을 털때 한정된 주머니에 뭘 채워야 최대한 값이 나가는 것을 가져갈 수 있느냐를 해결하는 알고리즘과 같을 뿐이죠.
"자연" 상태의 스케쥴/분배는 답이 없고, 경험과 추측만 난무할 뿐입니다.
"자연"을 게임하듯 다루는 사람들이 그 변화 무쌍한 리소스를 최대한  관리할 수 있는 것들로 구분을 하고, 그것들의 무한한 조합의 규칙을 게임에서와 같이취급하는 것이 필승전략스러운 뭔가를 만들어 내는것... 아니겠습니까? 누가 누구에게 확실한 길을 알려줄 수는 없지만, 경험과 추측을 할 수 있는 예제는 하나 줄 수 있을 것입니다.

신고
  1. Chester 2009.01.01 01:07 신고

    요새 부의 기원이라는 책을 보고 있는데, 교주님의 이론이랑 오버랩이 좀 되면서 어느정도 제가 뭘 오해하고 있는지 느껴지는 것 같습니다. 여전히 구름속에 있습니다만, 구름속에 있을 여유가 얼마 없다는 것도 느껴집니다. 긴 글에서 무엇을 의미하고 계시는지 느껴지고, 변태같지만 따듯한 마음도 느껴지네요 ^^ 쿨엔지니어님 올 한해도 변화무쌍한 혁신의 한 중심에 서시고, 하시는 모든 일들 잘 되시기 바랍니다 !!

    -노정석 드림

+ Recent posts