명령줄 인터페이스 (CLI)
Command Line Interface.
— 사용자가 키보드를 사용해 직접 문자 형식으로 명령을 입력하는 전통적인 유저 인터페이스 사양
일반 유저에게는 도스 시절 흑역사 화면으로 조롱받지만, 마우스 더블클릭 노가다 속에서 탈출하려는 전 세계 고급 개발자들의 강력한 보검. 사실상 인턴 첫날 터미널 켜고 화려하게 명령어 쳐대며 똑똑한 척 기를 죽이는 용도의 최고 데코레이션 패션(...)
1. 개요
명령줄 인터페이스(Command Line Interface)의 약자로, 사용자가 마우스 포인터 기반의 시각적 그래픽 화면(GUI) 대신 오직 키보드로 영문 문자 명령어를 직접 입력하여 운영체제 커널 및 프로그램과 교류하고 제어하는 입출력 통신 인터페이스를 통칭한다.
2. 마우스를 뛰어넘는 텍스트 연쇄력
GUI(Graphical User Interface)는 초보자에게 친절하지만, 대규모 반복 수술이나 복잡한 인프라 관리에서는 기어 다니는 속도로 작동한다. 예컨대 폴더 100개를 만들고 각각에 특정 텍스트 문서를 집어넣으려면 마우스를 수천 번 노가다 클릭해야 한다. 하지만 CLI 환경에서는 mkdir project{1..100}이라는 마법 같은 텍스트 한 줄만으로 0.1초 만에 깔끔 정합 수리 처리된다. 특히 터미널(terminal)과 셸(shell)의 강력한 파이프 기호(|)를 사용하면, 앞 명령어의 결과를 뒤 명령어로 우주선 도미노처럼 연결해 대용량 원격 인프라 데이터 가공을 무중단 집행할 수 있다.
3. 관련 밈 및 드립
3.1. GUI 뉴비 비웃기 밈
깃 저장소 조작 시 소스트리나 깃허브 데스크톱 같은 이쁜 GUI 툴을 켜고 마우스로 커밋 푸시를 정갈하게 날리는 주니어 동료를 뒤에서 지켜보던 고인물 시니어가, '에잉 쯧쯧, 상남자는 툴 안 쓰고 터미널 켜서 git commit -am으로 한 땀 한 땀 쳐서 올리는 법이다'라며 혀를 차며 CLI 우월주의를 뽐내는 애정 섞인 풍자 드립이다.(...)
4. 여담
- CLI는 대화형 인터프리터다: CLI 프롬프트에서 엔터를 치는 행위는 셸 인터프리터 언어의 REPL(Read-Eval-Print Loop)에 소스코드를 한 줄씩 넣어 실시간 컴파일 실행시키는 행위와 한 치의 오차도 없이 일치한다.
- CLI 최후의 요새, 서버 인프라: 아마존 웹서비스(AWS) 등 원격에 떠 있는 클라우드 서버는 이쁜 UI 화면을 서버 내에 띄워두지 않는다. 모니터 없는 깡통 서버를 네트워크 대역폭 낭비 없이 제어하기 위해 모든 아키텍트들은 SSH(ssh)를 가동해 CLI 텍스트 프롬프트만으로 지구 반대편 서버를 정교하게 쥐락펴락한다.
- 최초의 원초적 CLI: 고대 컴퓨터 조작 방식은 스위치를 물리적으로 켜고 끄던 형태였으나, 전신 타자기(Teletype) 종이에 텍스트 명령을 타격해 입력하고 종이에 인쇄되어 나오던 Teletype 인터페이스가 현대 모니터 속 터미널 에뮬레이션으로 전사적으로 승계 정립되었다.