gui 와 tui(?)를 가르는 기준이 뭔가요? 그래픽환경이란 무얼 뜻하는 겁니까?

pamisu1의 이미지

atie님이신가 하는 분이 올린 글을 보고 텍스트환경에 대해 막 구미가 당기기 시작했습니다.

사실 제 컴이 성능이 좋다할 만한 것이 아니라서 우분투도 아닌 xubuntu 7.04를 설치했을 정도니까요.

그런데, 제가 텍스트환경에 대해 생각을 해보니까 뭐가 텍스트환경이고 뭐가 그래픽환경인지
어떻게 다른 것인지 정확히 잘 모른다는 걸 알게되었습니다.

지금까지 전 막연히 그래픽환경이라면 글씨가 아닌 그림이란 생각 때문에 프로그램을 띄우면
프로그램마다 다른 모양의 예쁘장한 스킨이 직접 뜨는 그 눈에 보이는 아이콘을 프로그램이라고 여겨왔거든요.

한마디로 말하면 엠에스 윈도우즈나 리눅스의 엑스윈도같이 그래픽을 지원하는 기본 바탕위에서 동작하는 프로그램들이 gui 프로그램인 것이죠.

하지만 제가 geexbox 란 쓸만한 유틸을 받아서 쓰고 있기 때문에 약간의 혼란이 생겼습니다.
전 geexbox를 씨디로 만든 후에 그 씨디로 부팅해서 영화같은 걸 보는데 사용하고 있습니다.
이 긱스박스란 걸 실행해보면 이건 엑스윈도가 뜨지않은 상태에서도 눈에 프로그램의 겉모습이 보입니다.
스킨도 아주 예쁘죠.. 이것도 분명히 그래픽아닌가요?

분명히 엑스윈도를 이용한 것이 아닙니다. 제가 예전에 티비아웃되는 구닥다리 ati카드로 티비아웃을 했을 때 티비로 화면이 잘 뿌려졌습니다.
하지만 리눅스로 부팅해서 엑스윈도를 띄우면 티비로 화면이 전송되지 않더군요.
알고 봤더니 그 카드가 엑스윈도상에선 티비아웃이 지원되지 않는 악질카드였던 겁니다.
따라서 긱스박스는 분명이 엑스윈도위에서 돌아가는 프로그램이 아닙니다.

일반 엑스윈도위의 그래픽 프로그램들과 다른 점이라면 마우스 클릭이 안되고 키보드 화살표나 단축키로 실행시킨다는 겁니다.

이렇게 마우스를 이용못하는 환경이면 이게 바로 텍스트 환경인 건가요?
그럼 텍스트 환경에서도 글씨 말고, 그래픽적인 요소인 영화나 그림들을 감상할 수 있단 이야기가 됩니다.
하긴 atie(정확한 이름을 잘 몰라 죄송합니다)님의 글을 보니 인터넷도 가능하더군요.

텍스트환경이란 것이 이 geexbox같이 편리한 것인가요?
아참 그리고 보니 우분투에도 LinM 이란 프로그램이 있어서 그것도 제가 아주 유용하게 쓰고 있습니다.
LimM 도 마우스 쓸 일이 없이 키보드만으로 편리하게 사용이 가능한 프로그램이네요.

만약 모든 텍스트환경 프로그램들이 geexbox 나 LinM같이 편리하다면 당장이라도 텍스트환경으로 전환하고 싶습니다.

텍스트환경으로 전환하기 위해서 뭘 해야 할까요?
일단 먼저 한글이 깨지지 않아야 할테니 폰트문제가 중요할 테고, 그 외에 또 어떤 걸 감안해야 할까요?

텍스트 환경에서 유용하게 쓸 수 있는 프로그램도 추천 바랍니다.
인터넷을 비롯해서 필요한 프로그램들이 많겠지만 되도록이면 LinM이나 geexbox 같이 쉬운 인터페이스면 좋겠습니다.

비록 텍스트 환경일지라도 타이핑하는건 부담스러워요.
키보드의 방향키나 몇몇 단축키만으로 이용할 수 있을 만큼 편한 인터페이스를 갖춘 프로그램을 선호합니다.

ps:
제가 가진 씨디중에 고스트가 들어었는 씨디가 있는데, 고스트도 오에스 부팅전에 실행되어
백업이나 복구 작업을 실행합니다만 이건 키보드뿐만 아니라 마우스 클릭으로도 동작하는군요.

이것도 마우스를 이용할 수 있으니 gui라고 본다면, 엑스윈도나 엠에스 윈도 같은 곳 위에서 동작하는
프로그램만이 gui 프로그램이라고 생각한 제 판단이 틀리게 됩니다.

그리고 또 생각해보니 고스트 말고도 파티션매직이라든지 다른 여러가지 프로그램들이 오에스 부팅전에 동작하면서 마우스로 클릭을 통해 프로그램을 실행할 수 있는 것들이네요.

텍스트환경과 그래픽환경을 어떻게 구분해야 할 지 점점 어렵고 아리송해져 갑니다.

JuEUS-U의 이미지

TUI가 아니고 CUI 입니다. (Character based User Interface)

그리고 굳이 둘을 나눌 필요는 없다고 봅니다.
휴먼 인터페이스나 그래픽을 다루는게 특별한 영역이 아니기 때문입니다.
그 작업들 역시 명령어의 나열일 뿐이기에
필요하다면 코드를 추가해 줌으로써 바꿀수 있기 때문입니다.

텔넷으로 작업할 때라던지 제약이 있는 경우에는 따져야겠지만
보면 딱 느낌이 오지 않습니까 -_-;;; 이게 될까 안될까...

굳이 기준을 두자면 그래픽 모드를 쓰냐 안쓰냐 정도 되겠군요...

pamisu1의 이미지

제가 컴퓨터를 뒤늦게 안 사람이라서 잘 몰랐습니다.. 상당히 민망하네요.

아무튼 엑스윈도같은 그래픽환경이 아닌 텍스트환경으로 전환하려면 어떤 폰트설정과 프로그램들이 필요할까요?

jg의 이미지

CLI (Command Line Interface) 가 더 정확한 명칭입니다.

키보드를 사용하는 것은 역시 약간의 교육이 필요합니다만
그 비용만큼 효율이 좋아지니까 공들일만 하지요.

이미 아실 것 같지만, 터미널에서는 screen 이라는 프로그램이 거의 필수적입니다.
이것만 사용하시면 하나,둘 터미널용 프로그램으로 전환하기 시작할 겁니다.

저는 대체로 그냥 GUI 프로그램을 쓰는 편이라 특별히 추천할 건 없네요.
채팅용으로는 BitchX 를 주로 썼었구요. irssi 가 더 깔끔한 것 같습니다.

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

체스맨의 이미지

geexbox 는 MPlayer 를 기본 쉘으로 해서, 리눅스 프레임 버퍼에 화면을 출력합니다.

CLI 냐 아니냐를 구분 짓는 것은, 마우스나 그래픽 모드 문제가 아니라, 사용자가 원하는 명령이 그래픽적인 요소 ( Widget ) 를 통해 전달되느냐, 아니면 텍스트 명령을 파싱해서 전달되느냐로 구분된다고 봅니다.

그래서 그래픽 모드에서 작동하는 Xterm 은 CLI 입니다.
geexbox 는 Mplayer 를 기반으로한 GUI frontend 입니다.

텍스트 모드에서 작동하더라도 그것이 그래픽적 요소를 사용해서 사용자의 명령을 받아들인다면 GUI 쪽에 가깝습니다. 도스의 터보C 나 리눅스용 MC ( 미드나잇 커맨더) 같은 경우는 GUI 쪽으로 봅니다.

Orion Project : http://orionids.org

지리즈의 이미지

곰곰히 생각해 보니...

그런것도 같다는 생각이 드네요.

초창기 M$ 윈도우즈 1.0을 떠 올리려 보면,
터버C,MC 수준이면 훌륭한 GUI일 수도 있다는 생각이 드네요.

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

gamdora의 이미지

텍스트 모드에서 돌아가는 매우 훌륭한 GUI 풀그림을 알고 있습니다.

바로 "vi"지요. :)

pamisu1의 이미지

프로그램의 성격에 따라 gui를 구분 짓는 거라면 굳이 엑스윈도 없이도
gui프로그램들을 이용하고 실행시킬 있다는 뜻이군요.

그렇다면 시스템 자원을 낭비하면서까지 엑스윈도를 쓸 일이 있을까요?

사람들이 진짜 gui라고 여기는 것은 마우스를 이용해서 바로 그래픽적으로 결과를 보여주는 프로그램들이라고 생각합니다..이런 이유로 엑스 윈도 시스템이 생겼다고 봅니다.
눈으로 보는 걸 바로 마우스나 터치패드로 클릭해서 반응을 얻을 수 있는 것이 진정한 gui일 것 같네요.

체스맨님 말씀대로 긱스박스나 린엠이 gui일 수도 있다는 생각은 못해봤습니다.

어쨌거나 그 프로그램들이 gui이건 아니건 제가 막연히 상상하던 콘솔환경보단 훨씬 더 쉽고 편리한 인터페이스를 제공해 준다는 겁니다.

콘솔상태에시 이렇게 편리하게 이용할 수 있는 프로그램들이 많이 있나요?
굳이 표현하자면 콘솔환경 gui 프로그램들인데, 마우스를 쓸 수 있으먼 더 좋고, 마우스가 아닌 키보드만 지원된다고 해도,
GEEXBOX 나 LinM 정도의 인터페이스만 갖춰진다면 전 진짜 감사하게 잘 쓸 것 같습니다.

익명 사용자의 이미지

Midnight Commander나 Turbo C++같은 경우 또한

눈으로 보이는 걸(창, 파일, 메뉴) 마우스(포인터)로 클릭해서 반응을 얻을 수 있습니다.

redneval의 이미지

wikipedia의 정의에 따르면,

TUI와 CLI는 다른 것이라고 하는군요.

CLI는 프롬프트상에서 사용자의 입력을 한줄씩 입력하는 방식이고,

TUI는 CLI를 포함하는 개념으로 MS-DOS Shell같이,

입력방식에는 상관없고, (마우스 사용도 포함)

출력방식에 있어서 GUI와의 차이점은 text만을 이용한다는 것입니다.

그러므로 텍스트 모드로 돌아가는 프로그램들은 TUI입니다.

그래서 vi나 터보C는 TUI이면서 CLI는 아닙니다.

맨 처음 질문에 답을 하자면 geexbox는 text외에도 각종 그래픽 요소를 사용하므로 GUI가 맞습니다.

TUI : Text User Interface
CLI : Command Line Interface
GUI : Graphical User Interface

출처 : http://en.wikipedia.org/wiki/Text_user_interface

사족 : 저도 CUI가 맞는줄 알았는데 TUI가 맞는 용어군요.

사족2 : GUI/TUI에 대한 정의는 사람마다 다르겠지만 wikipedia에 있는 내용이니 이것이 통설이라고 봅니다.

체스맨의 이미지

이렇게 나옵니다.

http://en.wikipedia.org/wiki/Text_user_interface

TUI short for: Text User Interface or Textual User Interface (and sometimes Terminal User Interface), is a retronym that was coined sometime after the invention of graphical user interfaces, to distinguish them from text based user interfaces.

GUI 중 Text 기반 인터페이스와 구분하기위해 도입한 개념이라고 돼 있지요. 그래서 일단 TUI 는 GUI 의 일부라고 보는 게 좋습니다. NCURSES 로 만들어진 프로그램을 TUI 라고 부를수도 있지만, Semi-GUI 라고 부르는 경우도 있거든요.

TUI 개념을 도입하면, 정의하기에 따라 다르겠지만, 모호한 부분이 생겨납니다. 왜냐면, '사용자 인터페이스' 라는 것은 말 그대로 사용자의 명령을 어떻게 처리하느냐의 관점에서 봐야한다고 생각하기 때문입니다.

Orion Project : http://orionids.org

redneval의 이미지

번역을 약간 잘못하셨네요. GUI를 text based user interfaces와 구분하기 위해서, text based user interfaces를 TUI로 보통명사화했다고 합니다. 그러므로 wikipedia에서의 정의에 따르면 TUI와 GUI는 배타적인(exclusive) 관계가 되는 거죠. '사용자 인터페이스' 라는 것을 사용자의 어떤 명령을 어떻게 처리하는지는 상관없이 사용자에게 어떻게 보여주느냐의 관점에서 접근한거죠.

1. 입출력이 모두 textual -> 이건 당연히 TUI
2. 입력은 graphical, 출력은 textual -> TUI로 정의하자.
3. 입력은 textual, 출력은 graphical -> GUI로 정의하자.
4. 입출력이 모두 graphical -> 이건 당연히 GUI

이렇게 네 가지로 나누어 보면 2번 3번이 문제가 되는 건데,

어떻게 보느냐에 사람마다 생각이 다를 수 있는거죠.

누군가는 2번을 semi-GUI로 부를 수도 있을 거구요.

저도 wikipedia의 정의가 맘에 드는 건 아니지만,

나름대로 고심 끝에 내린 결론이니 그냥 그러려니 합니다.

체스맨의 이미지

번역 잘 못된 건 인정합니다. 나중에 알았는데 그냥 뒀어요...
어찌됐는 GUI 개념이 나오고 TUI 와 구분한 한 것이니까요. 그걸 구분하게 됐다는 얘기는 어떤 면에서는 두가지가 유사한 면이 있었다는 겁니다. 그 유사점은 바로 '사용자 명령을 어떤 방식으로 처리하는가' 라는 관점에서 볼 때 그렇습니다. 그리고 차이점은 '작동하는 환경' 입니다.

TUI 라 하면 모호해지는 것이, TUI 처럼 생긴것을 TUI 라고 할 때는 윈도의 아웃룩 익스프레스 같은 프로그램도 TUI 입니다. 터보C 화면 그대로를 윈도 환경에서 구현하면 그것도 TUI 라고 봐야됩니다.

또는 작동하는 모드에 따라 구분한다고 보면 텍스트 모드란 것이 모호하게 정의되는 리눅스의 프레임 버퍼 같은 환경도 있고, 그래픽 환경에서라도 터미널 에뮬레이션을 통하는 경우, 또는 터미널 에뮬레이션과 흡사한 환경을 직접 구현한 경우 등을 생각해볼 수 있구요. 텍스트 모드를 80*24 해상도의 그래픽 모드로 볼 수도 있다는 점도 고려해보셨으면 합니다.

프로그램이 작동하는 환경이 분류 기준이 되면 '사용자' 인터페이스라는 본연의 의미에 따라 분류되지 못한다고 봅니다.

위키피디아에 나오는 내용 중 정설로 받아들이기에는 어려운 것이 많습니다.

Orion Project : http://orionids.org

pamisu1의 이미지

상당히 끌리고 있습니다..
지금은 시간이 깊었으니 잠을 자고 내일 쯤 그 스크린이란 것 부터 설치해서 한번 도전해 보기로 했습니다.

어디 텍스트환경에 도움될만한 곳 좀 없을까요?
내일 텍스트 환경에 도전했을 때 제발 한글이 제대로 나오길 기원하고 있습니다.
일단 가장 기본적으로 폰트부터 제대로 잘 잡혀야 나머지 부분도 좀 더 용이하겠죠?

keizie의 이미지

IRC 프로그램 weechat이나, RSS 리더 snownews가 기억나네요.

찾아보면 온갖 변태적인-_-; 텍스트 기반 프로그램들이 많습니다. 웹 브라우저는 말할 것도 없고, MSN 클론도 있고 말이죠. -_-;;

한글은 jfbterm에 libhangul 적용한 걸 써봤는데 잘 됐던 걸로 기억합니다.

warpdory의 이미지

마우스로 명령을 내리면 GUI
키보드로 명령을 내리면 TUI(CLI...)
입니다.

그러니깐 스타크래프트는 GUI
예전 삼국지 1,2,3 .. 는 TUI ...

---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.
http://akpil.egloos.com


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

ydhoney의 이미지

d......9 님의 글로 오해할 소지가 있습니다.

=3=33
 
====================여기부터 식인어흥====================
어흥 몰라 어흥? 호랑이 어흥!! 떡 하나 주면 어흥!! 떡 두개 주면 어흥어흥!!

lovian의 이미지

보면 볼수록 애매해지는군요.
지금까지 GUI,TUI는 Graphic Mode, Text Mode의 차이라고 생각하고 있었는데.
꼭 그렇지 않다는 생각이 듭니다.
입력장치의 차이로 보기도 힘들고. ( pulldown 메뉴로 구성된 프로그램은 거의 마우스의 기능정도만 이용하는 것이니.. )

마음 같아서는
텍스트 입/출력을 하는 프로그램을 TUI로 보고 싶어지네요.

아아 복잡해!!

-----------------
한글을 사랑합니다.

-----------------
한글을 사랑합니다.

cronex의 이미지

음 저도 다시 한번 생각해보게 하는군요.

단순히 마우스/키보드로 구분하기에는 문제가 있을 거 같습니다.

저는 윈도우에서도 왠만한 건 키보드로 해결하는 편이니까요...

반대로 예전에 DOS 시절에 쓰던 노턴 커맨더와 같은 프로그램은

마우스를 이용해서 메뉴를 클릭하는 방법으로 사용하는 것도 가능했습니다.

제가 생각하는 CLI나 TUI에 비교해서 GUI를 구별해주는 점이라면 바로 ICON이 아닐까 합니다.

물론 GUI에서도 ICON에 대한 설명을 TEXT로 달아놓기는 합니다만.....

글자를 읽어야 하는 것과 그림만 보고 알아차리는 건 엄청난 차이죠.

GUI에서는 TEXT를 읽기보다는 눈에 익숙한 그림을 찾아서 그것을 클릭함으로써

사용자가 좀더 직관적으로 사용할 수 있다는 것이 장점이 아닐까 합니다.

그에 비해 CLI나 TUI에서는 사용자가 익숙하다면 빠른 조작이 가능하다는 거겠죠.

쉘에 익숙하신 분이거나 온갖 단축키를 이용해서 Mdir이나 vi/emacs를 쓰시는 분이시라면 아실겁니다.

확실히 마우스보다 키보드가 더 빠른 입력장치 입니다.

아니 두세 손가락만으로 조작하는 마우스보다 열 손가락을 모두 사용하는 키보드가 빠른 것은 어쩌면 당연할 겁니다.

하지만 이 GUI는 그 직관성 때문에 사용자가 쉽게 접할 수 있다는 점이 장점이겠죠.

클릭, 드래그 앤 드롭만으로 모든 것을 다 할 수 있는(약간 오버해서...)

것과 자판 배열부터 배워야 하고 죽어라 연습해야 느는 키보드를 사용하는 것과는

처음 배우는 입장에서는 엄청나게 큰 차이 입니다.

------------------------------------------------------------
이 멍청이~! 나한테 이길 수 있다고 생각했었냐~?
광란의 귀공자 데코스 와이즈멜 님이라구~!

------------------------------------------------------------
이 멍청이~! 나한테 이길 수 있다고 생각했었냐~?
광란의 귀공자 데코스 와이즈멜 님이라구~!

세이군의 이미지

윈도 플랫폼에서 보면

1. copy, move와 같은 명령어 들이 CLI
2. mdir, 터보C 2.0 IDE와 같은 녀석이 TUI
3. 새로운 창이 뜨는 메모장, 워드패드, 엑셀 과 같은 녀석들이 GUI라고 보면 될 듯 합니다.

리눅스에서라면
1. yum, rpm, cp처럼 쉘 프롬프트에서만 사용가능한 명령이 CLI
2. aptitude,아나콘다 텍스트모드, 커널의 menuconfig 등등이 TUI
3. 반드시 X윈도가 떠 있어야만 실행가능한 모든 명령이 GUI

예를 들면 mplayer는 CLI이지만, gmplayer는 GUI프로그램이 되는 식입니다.

한 걸음 더 가까이

keedi의 이미지

저는 작업 환경에 3차원의 개념(리얼 3D냐의 문제가 아니라
X, Y, Z축의 개념이 들어간다는 거죠.)과 복수개로 존재하는
창이라는 개념이 들어가면 기본적인 GUI예 조건을 충족한다고 생각합니다.
그 뒤로는 완성도와 추상 정도의 차이겠죠...

예를 들면 이전의 창(윈도우)이 나중의 창에 의해서 가려지거나
일부만 보여진다거나와 같이 말이죠.
창에서 메뉴를 누르거나 하면 아래의 내용이 가리죠?
그러다보니 커서에 대응하는 포인터가 나왔을테고...
(물론 포인터가 꼭 GUI의 필수 요소라고 생각하지는 않지만요...)

어떻게 보면 창이라는 곳 안에서 하나의 작업을 하기 때문에
이 창이라는 개념이 있으면 GUI라고 보아야하지 않을까요?
그 창이 ASCII문자나 특수문자로 외곽선이 그려진다고 GUI가
아닌 것은 아니겠죠.

---------------------------
Smashing Watermelons~!!
Whatever Nevermind~!!

Kim Do-Hyoung Keedi

----
use perl;

Keedi Kim