Windows와 Linux, 그리고 Textcube
머리아픈 이야기 2007/07/13 02:18작년인가 올해 초였나, 동아리 선배 중 한 분인 netj님이 "Composable IT"를 주제로 동아리 세미나를 한 적이 한 번 있습니다.
Composable IT가 의미하는 건, 작은 단위의 결과물들을 block처럼 사용하여 쌓아올려 더 큰 일을 할 수 있는 IT를 말하는 것으로, 작게는 하나의 프로그램을, 크게는 SW 업계의 전반적인 관행(?)까지 넓은 범위로 해석할 수 있습니다.
그때 예로 들어주셨던 내용이 Linux와 Windows의 패러다임 차이에 관한 것이었죠.
Windows는 GUI로 대변되는, 이른바 "사용자를 위한" 인터페이스를 가지고 있습니다. (Mac에 대해서는 뒤에서 다시 다룸) 각 프로그램들과 도구모음의 기능들을 상징하는 아이콘들, 마우스를 사용한 드래그&드롭, 다양한 멀티미디어 프로그램, '창'의 개념을 이용한 멀티태스킹 등이 주요한 특징이죠.
디자인을 하는 분들은 대체로 GUI를 지향하는 경향이 강합니다. 사실 GUI가 처음 태어난 60~70년대를 생각해보면 가히 디자인, 즉 HCI(Human-Computer Interaction) 측면에서 혁명적인 것이기는 합니다.
반면, 과거 우리가 사용했던 DOS나 지금의 Linux들은 모두 CUI 기반입니다. Shell에 명령어를 치면 그것을 실행해주는 형태의 인터페이스이죠. (물론 최근엔 Linux도 Desktop을 중시하기 시작하면서 GUI를 잘 지원합니다) 얼핏 생각하기엔 그 많은 명령어를 다 외워야 한다는 점에서 진입장벽이 높아서 뒤떨어진 인터페이스라고 간주하기 쉽습니다.
하지만, Windows GUI에서 이런 것들을 느낄 수 있습니까?
- 쓰면 쓸수록 점점 더 작업 능률이 높아지고 같은 일도 더 효율적으로 할 수 있게 된다.
- 내가 하고자 하는 작업을 더 간단한 작업을 하는 작은 기능들을 모아서 한 큐에 처리할 수 있다.
Linux의 shell은 위에서 설명한 바로 그것을 가장 훌륭하게 제공합니다.
시커먼 화면에 하얀 건 글자고... -_- 이런 화면을 보면 대개의 사람들은 'IT 전문가'라고 생각하기 쉽습니다만 사실 그런 사람들도 다 초보의 시절이 있었겠지요.
위에서 얘기한 Composable IT라는 것도 결국 이것을 말하는 것입니다.
Linux shell에서 실행되는 대부분의 프로그램들은 아주 단순한 기능들만을 위해 만들어져 있습니다. 예를 들어, cat이라는 명령은 파일 내용을 그대로 출력해주기만 하고, date라는 명령은 지정한 형식의 날짜를 출력해주는 기능만 가집니다. sort라는 명령은 입력된 문자열을 줄 단위로 정렬해주는 기능만 수행하죠. 좀더 복잡한 명령어로는 sed나 awk와 같이 입력받은 문자열을 다른 형태로 변환하는 정규표현식 등의 기능을 제공하는 것들이 있습니다.
그러나 이런 명령들을 모으고 모아 파이프(pipe)와 리디렉션(redirection) 및 약간의 shell script를 이용하여 이러저리 붙이면, GUI 환경에서는 상상도 못할 노가다 작업을 한 큐에 처리할 수 있습니다. Shell script가 불편하거나 어렵다면, Python이나 PHP 등의 스크립트 언어를 이용하여 저런 작은 명령들과 여러 언어로 작성된 라이브러리들을 한데 모아 붙여(glue) 사용하는 방법도 있지요.
물론, 이런 것들을 자유자재로 활용하기까지는 그만큼 배우는 시간이 걸립니다. 하지만 하나하나 배워갈수록 그만큼 일의 능률이 향상되죠. 여기서 바로 CUI의 강점이 발휘됩니다. 마우스를 이용해 무언가를 선택하는, 좌표 기반의 GUI 시스템은 필연적으로 필요한 동작을 수행하기 위해 '움직이는' 시간이 필요하지만, 키보드로 명령어를 입력하는 CUI 시스템에서는 간단한 약자로 스크립트 이름을 짓고, 적절한 parameter를 넘길 수 있도록 잘 구조화해두면 아주 빠른 시간 안에 필요한 동작을 수행할 수 있습니다.
무엇이 더 좋은 인터페이스일까요?
대중적으로 인기 있는, 대중에게 쉽게 받아들여질 만한 것은 당연히 GUI입니다. 하지만 대중적인 것이 반드시 좋다라고 말할 수는 없죠. 그렇다고 전문가의 쓰임새에 더 어울리는 CUI가 좋다라고 말할 수는 없습니다.
제가 말하고 싶은 건, GUI든 CUI든 결국 궁극적인 목표는 사람이 보다 컴퓨터 작업을 쉽고 효율적으로 할 수 있도록 만드는 것이라는 점입니다. 최소한, GUI만이 정답은 아니라는 것이죠. (가끔 그렇게 생각하는 사람들을 봅니다만.)
Tattertools를 거쳐 발전하는 Textcube의 날로 복잡해지는 옵션들과 인터페이스를 보면서, Composable IT에 대한 생각이 가끔씩 떠오릅니다. 과연 어디쯤 가면 만족할 만한 UI를 만들었다고 할 수 있을까요? (하하, 그렇다고 텍스트큐브를 CUI로 만들지는 않겠지만요. :D)
덧. Mac의 경우, CUI 방식의 shell과 훌륭한 GUI 환경을 동시에 사용할 수 있는 운영체제입니다. Linux에서도 GUI가 많이 강화되고는 있지만 아직 Mac을 따라가기에는 멀었죠. 이 점에서, 해커들의 운영체제라는 얘기가 나오는 것 같습니다.
시간을 달리는 교주님
즐거운 이야기 2007/07/12 15:20태터툴즈에서 오늘의 Textcube까지 오기까지 험난한 길 였던 것 같습니다. 현 Needlworks의 Creator로 참여는 하고 있지만, 수행 부족이었는지 따라잡기가 여간 힘든 것이 아닌듯합니다.
매번 고공행진을 하고 계시는 교주님의 엄청난 스킬이란 두말 할 필요 없을 것 같습니다.
현재 Textcube 1.5 베타에 접어 들어서 인지 요즘은 더욱 눈에 안 보이시게 날라 다니시는 듯합니다.
본 자리가 있음에도 야간분투(夜間奮鬪) 하시는 것을 보면 정말이지 박수를 안 보낼 수가 없을 듯합니다.
Needlworks의 Balancer답게 구성원들을 조화롭게 잘 이끌어 나가시니 더욱 균형 있고 활기있는 Needlworks가 될듯합니다.
곧 있을 세 번째 태터캠프에서도 블로거 분들께 멋지고 기발한 모습을 보여주시리라 믿습니다.
더운 여름 현업과 Needlworks 일에 열심히 함께 달려주시는 lifthrasiir님, gofeel님, graphittie님, daybreaker님, LonnieNa님, coolengineer님께 화이팅과 박수를 보내드립니다. ^^;
요즘 훨~~훨~~ 날라다니는 교주님을 생각하니 호소다 마모루 감독의 '시간을 달리는 소녀'가 문득 생각나더군요.. 아무리 생각해도 저 문구는 '시간을 달리는 교주님'이 더욱 어울릴 듯 하여 교주님을 위한 포스터 하나 만들어 봤습니다.ㅋㅋ (얼굴 합성은 2탄에서 ^^)
교주님께서 태클 걸어오셔도 삭제 절대 안합니다.ㅋㅋ
태터캠프 레어 기념품 광고?
즐거운 이야기 2007/07/12 03:50포럼에서는 신나게 세번째 태터캠프의 논의를 하고 있습니다. 오늘 밤에는 니들웍스 분들과 두시간동안 스카이프로 컨퍼런스 콜 -인터넷을 통해 여려명이 동시에 통화하는 것이라고 생각하시면 됩니다- 을 했지요. 이것도 익숙해지니 중독됩니다.^^
이번 태터캠프때는 정말 희귀한 기념품을 만들 예정입니다. (절대 이후에 또 만들 기약이 없다거나 그래서가 맞습니다) 텍스트큐브라는 이름이 알고보면 글씨나 글을 의미하는 텍스트가 아니고, 상자를 의미하는 큐브가 아닙니다. 그래서 이번 기념품에는 그 의미를 확 풀어서 다 써 버렸습니다.
태터캠프 블로그에 광고 하나 만들어보래서, paint.net으로 긁적긁적 하나 만들어 보았습니다.
컨셉은
그런 컨셉으로 만들었습니다.

아. 느껴져. 코스모가 느껴져.
물론 자체 검열 후 태터캠프 블로그에 글 열심히 적고 있는 gofeel님께는 넘기지 않았습니다.
애플 디자이너가 같은 컨셉으로 만들면 레퍼드의 타임머신이 되고, 제가 만들면 저렇게 되는군요.
비밀방문자 2014
inureyes 2014
비밀방문자 2013
화사함 2012
LonnieNa 2010