Programming/etc.

[Interface] GUI, CLI, TUI

코딩뽀시래기 2021. 3. 18. 14:49
728x90

GUI와 CLI를 비교하거나, GUI와 TUI를 비교한 건 공부를 했는데 CLI와 TUI는 무슨 차이가 있는지, 같은 것인지 다른 것인지 궁금하여 찾아보게 되었다.

 

1) GUI (Graphic User Interface)

: 그래픽 화면에서 마우스를 사용하는 환경

 

2) CLI (Command Line Interface)

: 키보드로 Command(명령어)를 줄 단위로 입력해서 사용하는 방식

ex) 윈도우의 cmd(명령 프롬프트), 리눅스의 터미널, 유닉스 셀, 도스

 

3) TUI (Text User Interface)

: CLI와 구분하기 위해 GUI 발명 이후 만들어진 단어. 문자의 의미 표현 뿐 아니라 레이아웃의 표현에도 이용함. CLI와 GUI의 중간 성격을 가진 인터페이스.

ex) 리눅스의 vi, 바이오스, Emacs, w3m(웹 브라우저)

 

● CLI와 TUI의 차이

· CLI

- 문자를 오로지 의미의 표현에만 이용. (화면의 모든 문자는 의미를 가지고 있다.)

- 줄 또는 문자열을 한 버퍼의 단위로 이용한다. (화면상에 표시할 때 줄 또는 문자열의 추가가 효율적)

 

· TUI

- 문자의 내용으로서의 의미 뿐만 아니라 화면 위 레이아웃의 표현에도 이용한다. 즉, 문자를 이용한 그래픽 사용자 인터페이스라고 할 수 있다. (문자를 이용해서 아래와 같은 모습을 만드는 것이 레이아웃의 표현인 듯 하다.)

oooooooooooooooooooooooooooooooooooooooooooooooooooooooo
o                                                      o
o                                                      o
o                                                      o
o           --------------------------------           o
o           |                              |           o
o           |                              |           o
o           |                              |           o
o           |                              |           o
o           |         Version 2.5          |           o
o           |                              |           o
o           --------------------------------           o
o                                                      o
o                                                      o
o                                                      o
oooooooooooooooooooooooooooooooooooooooooooooooooooooooo

- 화면 전체를 한 버퍼의 단위로 이용한다. 버퍼의 용량이 매우 큰 대신 버퍼의 좌표와 화면의 실제 좌표를 1대1로 대응시킬 수 있다.

-상하좌우 방향키를 모두 사용할 수 있다.

 

+) 버퍼란?

- 한 곳에서 다른 곳으로 데이터를 이동할 때 임시적으로 그 데이터를 저장하기 위해 사용되는 물리적인 메모리 저장소의 영역

- 모니터의 버퍼는 그래픽 카드가 처리한 프레임 데이터를 저장 한 후 순차적으로 프레임 단위의 데이터를 화면에 출력.

=> 입출력이 있을 때, 입력한 데이터를 버퍼에 저장하고, 버퍼에 저장된 입력을 가져와서 출력하는 구조인듯.

=> A라는 입력이 있을 때 B라는 출력, 행동을 수행해야 한다고 했을 때, A가 입력 되면 버퍼에 그 내용이 저장되었다가 저장된 A를 넘겨주어 B라는 행동을 하게 되는 구조. 소프트웨어 또는 하드웨어가 둘 이상일 때 전달 작업이 필요해서 이러한 구조로 이루어짐.

=> 임시 저장 공간이라고 생각! ex) 클립보드

 

+) CUI(Character(or Console) User Interface)와 NUI(Natural User Interface)도 있다! 나중에 공부해 볼 것.

728x90