본문 바로가기

컴퓨터 기술

운영체제 UI에 관한 아이디어

반응형

소스에 따라 아이콘이 자동으로 생성되는 기능도 있으면 좋겠습니다.

유전자형에 따라서 표현형을 생성하는 프로그램들이 많이 나와있는데

이걸 OS에 적용하면 좋을 것입니다.

프로그램을 가상의 생명체라고 보고 기능을 한 눈에 직관적으로 알 수 있게 외형이 생성되는 겁니다.

요즘의 GUI아이콘에 유전자 알고리듬을 붙여서 개선하는 겁니다.

객체들은 생명체처럼 전기를 먹으면서 스스로 경쟁, 진화하고

3차원이나 2차원 공간에 빛과 소리 등의 집합으로 표현됩니다.

코드는 유전자형이고 UI는 표현형이 되는 것입니다.

예를 들어 소스를 알 수 없는 오브젝트는 불투명하게 표시되고

소스가 있는 오브젝트는 내부 기능이 보이도록 투명하게 표시됩니다.

소스를 구체적으로 보고 싶으면 돋보기로 확대를 해서 봅니다.

소스가 가려서 잘 안 보이는 것은 엑스레이, 감마레이 등등의 장비같은 느낌의 프로그램으로 봅니다.

소스의 크기가 크면 아이콘도 크고 작은 프로그램은 크기도 작습니다.

CPU점유율이 긴 프로그램은 그 아이콘도 느리게 움직인다던지 합니다.

사용된 라이브러리는 생명체 내부의 장기처럼 보입니다.

프로그램이 네트워크 관련 함수를 사용하면 네트워킹을 상징하는 모양이나 색깔등이 그 프로그램의 형상에 보입니다.

어떤 포트를 사용한다면 그 포트도 프로그램 몸체에 구멍이 뚫린 걸로 시각화합니다.

내부 소스가 바뀌면 외형도 바뀐 양과 기능을 실시간으로 반영합니다.

이런 것의 좋은 점은 빠른 시간에 소스의 전체 내용을 대충 파악하는 것입니다.

복잡한 기호로 된 요즘 소스는 일반 사용자들이 이해할 수 없지만

이렇게 시각화되면 사용자는 느낌으로 대충은 알 수 있습니다.

확대하면 진짜 소스도 나오기 때문에 전문 프로그래머는 의사나 과학자가 현미경 보듯이 확대해서 꼼꼼히 보면 됩니다.

바탕화면은 이런 프로그램을 담는 어항처럼 될 것이고

백그라운드로 실행되고 있는 아이콘들은 화면 위에서 저절로 움직일 겁니다.

인터넷 배너 광고처럼 자기를 선택해달라며 깜빡거리는 아이콘들도 있을 겁니다.

컴퓨터를 쓰는 것이 어항에서 스스로 움직이는 이상한 모습의 생명체들을 기르는 느낌일 겁니다.

몸은 이상한 모습이라도 몸에 달린 얼굴은

디자이너가 직접 그린 프로그램의 아이콘이나 회사의 CI나 사람의 얼굴, 상품의 모양 등 친근한 모습일 수도 있습니다.

그런데 위의 내용들은 2차원 UI를 대체한다기 보다는 OS와 대화하는 다양한 방법 중에 하나가 될겁니다.

요즘의 전통적인 사각형 창문형 2차원 UI도 종이와 비슷하고 나름대로 좋습니다.

우선 사람의 눈이 2차원이어서 3차원 영상도 어차피 2차원으로 매핑됐다가

뇌 속에서 다시 3차원으로 느껴집니다.

3차원은 촉각에서만 쓸 수 있습니다.

현실적으로 당장 유용하게 쓰였으면 하는 곳 중 하나는 홈트레이딩 시스템입니다.

주가 그래프같은 것은 요즘 나오는 3차원 UI나 OpenGL 가속 등의 기술을 써서

부드럽고 빠르게 줌인아웃되면 보기 좋을 겁니다.

그리고 스프레드시트도 3차원으로 가능하게 한 것은 예전에 아타리 시절때도 잠깐 나왔는데

이런 것도 나올 법 합니다.

zigzag(http://www.xanadu.net/zigzag/)란 기술이 있는데 자세히는 모르겠지만 다차원 데이터베이스와도 비슷하고

UI와도 연결되서 아주 중요하게 될 것 같은 느낌이 듭니다.

요즘 OS에서 자동으로 조절되는 UI를 찾아본다면

아이콘 자동 줄맞추기와 윈도우 바둑판모양, 화면 꽉차게 만들기, 홈페이지가 웹브라우저 팝업창 크기 바꾸기, 아이콘 찍으면 명령어 보여주기 등 정도가 있습니다.

쉽게 구현할 수는 없지만 윈도매니저가 실행중인 프로그램이 사용되는 패턴을 인공지능으로 분석해서

안 쓰는 것은 투명도를 높이거나 뒤쪽이나 구석으로 보내거나 창문 크기를 저절로 줄어들게 할 수 있습니다.

OS가 프로세서 점유율만 관리하는 것이 아니라 윈도매니저가 화면이라는 2차원 공간을 효율적으로 분배하는 것입니다.

프로그램의 중요도에 따라 2차원 공간 점유를 할 수 있는 점수가 있을 수도 있습니다.

만약 중요한 프로그램이면 그 점수가 높아서 바탕화면도 오래 차지할 수 있습니다.

그래서 사용자가 창 크기나 위치를 조절하는 불편함을 최소화하는 것입니다.

프로그램 창 모양도 사각형 일변도에서 벗어나서 프로그램의 종류에 따라 다양한 모양으로 바뀔 수도 있습니다.

통신 프로그램은 네모난 창, 멀티미디어는 둥근 모서리의 창에 밝은 느낌의 색깔, 개발용 프로그램은 무채색 계열의 색깔이라던지...

이렇게 발전하면 프로그램 창들은 저절로 살아서 움직이는 것처럼 느껴질겁니다.

하지만 OS에 대한 사람의 권한도 줄어든다는 단점도 있습니다.

UI만 아니라 저장장치에도 적용될 수 있습니다.

프로그램이 하드디스크에 설치될 때도 점수가 있어서 신뢰받지 못하는 프로그램은 저장장치 공간을 조금밖에 할당받지 못합니다.

사용자가 액세스제어리스트를 rwx 등으로 조절하는 걸 개선해서 쓰기, 읽기, 복제가능, 분리가능(교차), 연결가능(연관), 삭제, 프로그램의 나이, 할당된 시간, 할당된 시간대, 할당된 실행횟수, 할당된 저장용량 등을 실수로 점수화하는 겁니다.

모든 오브젝트에 게임의 체력점수나 생명력 점수, 질량, 강도, 속도, 입력에너지, 출력에너지, 유전자코드 같은 것이 생기는 것입니다.

그래서 처음 보는 ActiveX같은 것이 깔릴려면 소스를 공개해서 허가 점수를 높이거나

사용자가 인증한 믿을 수 있는 프로그래머에게 감사(Audit)를 받아서 점수를 높이거나

사용자에게 저장공간 임대료, CPU 사용료(전기세)와 파괴시 보험료를 송금시켜서 사용자에게 허가 점수를 받게 하는 것입니다.

만약에 점수가 낮으면 생명력과 강도도 낮기 때문에 저장장치에 쓰기 능력도 약하고 오랫동안 생존하지 못하고 사라집니다.

그래서 스파이웨어같은 프로그램으로부터 컴퓨터란 개체의 보안을 유지하는 겁니다.

어떤 프로그램이 어떤 라이브러리를 덮어 쓸 때는 두 개체간의 점수를 비교해서 허가 여부를 결정받거나 특정 알고리듬으로 자동 경쟁, 결정, 진화됩니다.

점수는 절대적인 값이 아닐 수도 있고 다른 개체나 사용자와의 관계에 따라 다르게 반응할 수도 있습니다.

2007년 1월 16일 씀.

반응형