CLI와 GUI 차이점

CLI(Command Line Interface)와 GUI(Graphical User Interface)는
사용자 인터페이스의 두가지 유형이다.
CLI(Command Line Interface)
CLI는 텍스트 기반 인터페이스로 키보드를 통해 명령어를 입력하여 컴퓨터와 상호작용한다.
주로 프로그래밍, 서버 관리, 시스템 관리 등과 같은 고급 작업에 사용된다.
명령어와 구문이 복잡할 수 있고 학습 곡선이 높을 수 있지만,
배치 작업을 자동화하고, 복잡한 작업을 빠르게 처리할 수 있다는 장점이 있다.
CLI는 GUI보다 시스템 자원을 적게 사용하므로, 시스템이 느려질 가능성이 적다.
GUI(Graphical User Interface)
GUI는 그래픽 기반 인터페이스로 마우스를 통해 메뉴, 버튼, 아이콘 등의 그래픽 요소를 클릭하여 컴퓨터와 상호작용한다.
GUI는 일반적인 사용자들에게 보다 직관적이고 친숙하다.
그래픽 요소를 사용하여 사용자가 쉽게 컴퓨터와 상호작용할 수 있도록 지원하며, 주로 응용프로그램에서 사용된다.
GUI는 보통 시각적인 요소가 많기 때문에, CLI보다 더 많은 시스템 자원을 사용할 수 있다.
CLI와 GUI 모두 각각의 장단점이 있으나 사용하는 상황에 따라 선택이 필요하다.
일반적으로 고급작업을 수행하거나 자동화가 필요한 경우엔 CLI를
보다 직관적이고 시각적인 요소가 필요한 경우 GUI를 사용한다.
● CLI (Command Line Interface)

CLI는 Command-Line-Interface의 약자로, 입출력만을 이용하여 컴퓨터와 소통한다.
컴퓨터는 다양한 입력(input)과 출력(output)으로 이루어지며, 이를 I/O라 표기한다.
# 대표적인 CLI : Window의 cmd, Mac과 리눅스의 terminal
# 키보드와 명령어로 사용 가능하다.
# 입출력만으로 컴퓨터를 조작한다.
● GUI (Graphical User Interface)

GUI는 Grapic User Interface의 약자로 사용자가 눈에 보이는 아이콘을 이용하여 컴퓨터를 조작한다.
우리가 흔히 사용하는 바탕화면 폴더 아이콘을 더블클릭하고 마우스를 이용해서 폴더를 생성하는 모든것이 해당된다.
편리하고 우리에게 익순한 GUI를 사용하면 되는데 왜??
개발자들은 CLI와 친해져야 할까?
GUI의 편리함도 크지만, CLI는 여러 측면에서 유리하다.
예를 들면 AWS를 사용할 경우 원격서버에 접속해야하는 일이 발생하는데,
직접 서버 컴퓨터에 찾아갈 필요 없이 효율적으로 CLI를 이용해 접속하고 데이터를 활용할 수 있다.
※ 활용 명령어
| 명령어 | 설명 |
| pwd (print workin directory) | 현재 위치 확인 |
| mkdir [폴더명] (make directories) | 폴더 생성 |
| ls (list) | 특정 폴더에 포함된 파일이나 폴더 확인 |
| ls -l | 파일의 포맷을 전부 표현하라는 의미 |
| # drwxr-xr-x // 앞의 d는 directory를 의미한다. # -rw-r--r-- // 앞의 -는 file을 의미한다. |
|
| ls -a | all 이라는 의미로, 숨겨진 폴더나 파일까지 포함하여 출력한다. |
| open . (현재 위치 폴더) open [폴더명] (해당 폴더) | 폴더 열기 |
| cd [폴더명] 또는 cd [경로] (change directory) | 폴더 진입 |
| touch [파일명.확장자] | 파일 생성 |
| cat [파일명.확장자] | 파일 내용 터미널에 출력 |
| rm (remove) | 파일 삭제 |
| rm -rf | 폴더 삭제시 |
| # 옵션 r (recursive) 폴더를 지울 때 사용 # 옵션 f (force) 질문을 받지 않고 지울 때 사용 |
|
| mv (move) | 폴더나 파일의 이름 변경 또는 위치 이동 |
| # mv [파일명.확장자 또는 폴더명] [폴더명] 폴더/파일을 해당 폴더로 옮긴다. # mv [파일명.확장자 또는 폴더명] [변경할 이름] |
|
| cp (copy) | 폴더나 파일 복사 |
●CLI 와 GUI 의 장단점
- CLI의 장점
- GUI 보다 정확하고 섬세하다.
- CLI의 단점
- CLI는 명령어에 대한 지식이 필수적이다.
- 오타 하나가 굉장히 큰 차이를 만들 수 있다.
- 명령어들이 직관적이지 않다.
- GUI의 장점
- 사용법이 쉬워 누구나 쉽게 배우고 사용할 수 있다.
- 매우 직관적이고 학습 곡선도 높지 않다.
- 명령어들을 암기해야 할 필요가 없으며, 복잡하지 않다.
- GUI의 단점
- CLI에 비해 세밀함이 떨어진다.
- 어떤 일련의 절차들을 반복하거나 복사하기 힘들다.
● CLI와 GUI의 차이점
| Category | CLI | GUI |
| 기본사항 | 명령어를 통한 입력 | 창, 스크롤, 이미지 등을 통한 입력 |
| 사용장비 | 키보드 | 마우스, 키보드 |
| 메모리 소비 | 낮음 | 높음 |
| 속도 | 빠름 | 느림 |
| 작업 수행 난이도 | 어려움 | 쉬움 |