우분투의 작업공간(Workspace) 기능에 대한 생각 UI/UX

  우분투에는 작업공간(Workspace)이란 기능이 있다. 쉽게 설명하자면 듀얼 모니터를 SW적으로 구현한 것이다. 다만 듀얼 모니터의 경우 모든 화면이 동시에 보이지만 작업공간의 경우 내가 보고 있는 작업공간만 현재 모니터에 표시되고, 다른 화면들은 감추어진다. 또 계속 모니터에 비유하자면 듀얼 뿐 아니라 트리플, 쿼드, 혹은 그 이상의 화면도 가능하다. 대개 시스템 트레이 어딘가에 바로가기가 있어서 이 화면을 옮겨다니면서 이용할 수 있다. 리눅스에서는 대부분의 윈도 매니저들이 이 기능을 가지고 있으며, 이를 구현한 지도 아주 오래 되었다. 맥 OS에서는 스페이스(Spaces)란 이름으로 불리고 있으며, 윈도우에서는 별도의 유틸리티를 설치해서 구현할 수 있지만 OS 차원의 지원이 아닌 만큼 대체로 미심쩍게 동작하는 면이 없지 않다.

  이 기능의 용도는 다양하다. 실행중인 프로그램의 전체 화면 기능을 잘 쓰지 않는 사람이 단순히 화면을 정리하기 위한 목적으로 사용하는가 하면 알트+탭을 이용한 창 전환보다 작업공간 여기저기에 프로그램을 늘어놓는 것을 선호하는 사람도 있다. 내 경우 작업에 따라 연관성 있는 프로그램들이 같은 작업환경을 쓰도록 배치하곤 한다. 메모 항목과 웹 브라우저가 작업공간 1에, 프로그래밍을 위한 IDE가 2에, IRC 클라이언트와 네이트온이 3에 위치하는 식이다. 이렇게 하면 한 작업공간 내에서 창을 배치하기도 쉽고 여러 모로 멀티태스킹에서 오는 산만함이 다소나마 줄어드는 느낌이 든다.

  하지만 사용하다 보면 어느샌가 프로그램들이 작업공간 사이를 넘나들다가 뒤섞이곤 한다. 사용자의 작업에 따른 시각적인 분리가 OS상 논리적으로는 분리되지 않았기 때문에 일어나는 일이다. 예를 들어 내 의도대로라면 개발중에 API 문서를 참고하기 위한 웹 브라우저와, 친구가 네이트온 상에서 공유한 유머 게시물을 띄운 웹 브라우저는 각자의 영역에 있어야 할 것이다. 하지만 창을 끌어 나누기도 귀찮거니와 애당초 링크를 클릭했을 때 현재 작업공간에 있는 브라우저에만 링크를 띄우는 기능이 없기 때문에 대개는 웹 브라우저 창을 이리저리 끌고다니고 만다. 메모를 위한 워드프로세서도 마찬가지다.


저장 기능이 있는 작업공간

  나는 여기서 더 나아가 작업공간별로 스냅샷을 만드는 것을 생각해 보았다. 예컨대 나는 대개 한 대의 PC에서 개인 프로젝트인 자바/블로그 개발과 회사 프로젝트인 ASP.NET 유지보수를 모두 하는데, 만약 자바 개발을 한다면 ASP.NET 개발을 진행하던 작업공간을 저장하고 닫아서, 비주얼 스튜디오, MS-SQL등 회사 업무와 관련된 내용이 그대로 저장되는 식의 기능이 있었으면 좋겠다. 특히 상이한 두 작업을 할 때 동일한 브라우저를 공유하기 때문에 열어 둔 관련 탭들을 매번 정리하거나 다소 화면이 복잡하고 느려지더라도 무시하고 써야 하는 번거로움이 있다. 물론 브라우저에 한정하면 세션 매니저 류의 플러그인을 쓰면 어느정도 해결이 되지만 나는 좀더 간단하고 광범위하게 문서 프로그램 등에서도 이런 작업이 이루어졌으면 좋겠다.

  하지만 이런 기능을 누군가 생각한다 해도 당장 구현하기는 쉽지 않을 것이다. 멀티 프로세스에 대응이 된 프로그램이 아니라면 수정을 거쳐야 하기 때문이다. 예컨대 내가 한 작업 화면에서는 이클립스/WTP를 이용해 자바를, 다른 작업환경에서는 이클립스/PyDEV를 이용해 개발을 진행하고 싶다고 하자. 아쉽게도 현재 이클립스는 동일 워크스페이스를 두 개의 프로세스가 동시에 이용하는 것을 허용하지 않는다. 다른 프로그램들은 이런 제약이 없을지도 모르겠지만, 대신 사용자의 마지막 사용 상태를 저장하고 복원하는 기능 등에서 예상치 못한 문제들이 발견될 것이다.

  현실적으로 이 기능을 가장 간단히 구현하는 방법은 아예 다른 PC를 이용하거나 가상머신을 이용하는 것이다. 그러나 많은 비용(다수의 PC 혹은 고사양)이 드는 것과 각 머신별로 환경설정을 다시 해 주어야 한다는 점, 그리고 OS/프로그램의 라이선스 역시 배로 든다는 점이 문제다. 동일한 프로그램을 서로 다른 작업에 완벽하게 분리된 상태로 배치할 수 있을까? 또 그 상태로 각 작업공간의 Suspend/Resume을 구현할 수 있을까? 어느 OS건 좋으니 누군가 나서서 좀 해 주었으면 하는 바램이다.

Tag :
, , ,

Leave Comments