티스토리 뷰

사용자 삽입 이미지


멀티플레이어..
월드컵에서 한국축구가 4강을 이루었던 2002년 많이 들었던 말 같습니다.
박지성으로 대표되는 멀티플레이어는 다양한 포지션을 소화할 수 있어야 경기의 운영이 수월해진다는 것이죠..

프로그래밍에서도 이런 멀티플레이어는 필요합니다.
하나의 언어, 하나의 플랫폼, 하나의 방법론만 고집해서는 문제를 해결할 수 없는 경우가 대다수죠..


그런데, 한편으로 축구의 멀티플레이어를 생각해 보죠..
아무리 박지성이 다양한 포지션을 소화한다고 해도, 90분 축구경기 도중 10분마다 혹은 5분마다 포지션을 변경하지는 않습니다.
즉, 90분 경기중 선수교체에 의해 한번이나 혹은 많아야 두번 정도 변화를 주는 것이죠..

다시말해 멀티플레이어란 다양한 환경을 다룰 수 있다는 것이지..
동시에 여러가지 프로젝트를 수행할 수 있다는 것을 의미하지는 않습니다.
(여기서 동시란 시분할 정도로 이해하시면 될 것 같습니다.)

그렇다면 왜 동시에 멀티플레이어가 어려울까요?

그것은 바로 Context Switch에 들어가는 추가비용 때문이지 않을까 합니다.
A 프로젝트를 수행하고 있는 도중에는 A 프로젝트에 생각으로 머리속이 꽉차 있게 되지요..
그러다가 B 프로젝트를 수행하려면 A 프로젝트의 고민과 노력을 버리고 다시 B 프로젝트에 대한 고민으로 머리를 채워야 합니다.
이러기 위해서는 시간이 필요하다는 겁니다.

경험적으로 볼때, 최소 2시간 ~ 4시간은 걸리는 것 같았습니다.
또, Context Switch 도중에 간간히 잡생각도 들어오구요~~


그렇다면, 어떤 방식으로 멀티플레이어를 지원하는 것이 바람직할까요?

최상의 방법은 한가지 과업만을 주는 것이지만, 현실적으로 어려움이 있는 경우가 많습니다.

그렇다면 여러가지 업무를 시간을 두고 변경하면서 처리할 수 있도록 하는 것이 차선책입니다.
즉, 1주일이나 2주일을 90분 경기로 보고 한번 정도 포지션 변경이 일어나게 해 주는 것이죠..
그래서 XP에서도 반복의 주기를 2주정도로 잡았는지도 모르겠습니다.
(경험적으로 하루마다 바꾸더라도 역시 비효율적이더라구요.. -.- 일주일 단위가 가장 바람직한 것 같아요..)

결론적으로 프로젝트관리자는 Context Switch에 발생하는 비용을 최소화할 수 있도록 일정을 조율하고..
각각의 팀원들은 꾸준한 학습을 통해 스스로 멀티플레이어가 될 수 있도록 항시 몸을 만드는 것이 중요하지 않을까 합니다.

댓글
댓글쓰기 폼