과거 컴퓨터에 명령을 넣기 위해선
천공카드를 사용하거나
아예 플러그를 G에 꼽고 O에 꼽아서
'Go'를 인식시켜야 했습니다.
그런 개노가다에 성질난 개발자들은 타자기에
착안하여 G라는 버튼을 누르면 G가 찍히게 하는
혁명적 물건인 키보드를 내놓습니다.
이제 컴퓨터에게 A 프로그램을 실행하라고 할때
A에 플러그 꼽고, E에 플로그 꼽고 x에... (생략)
할 필요없이
키보드로 Excute A 라고 치기만 하면 실행이 되는
신세계가 열릴랑 말랑했죠.
왜 확 안열렸냐면..
당시엔 모니터란게 없었거든요.
출력장치라고는 영수증처럼 결과를 종이로 출력하거나
자기테이프에 기록하는 방식이었습니다.
괜히 옛날 영화에서 컴퓨터들에 온갖 둥근 테이프들이
달려있었던게 아니죠.
여튼 모니터가 없으니까 키보드로 치면서 입력을
확인을 할 수가 없었습니다.
그래서 당시 키보드는 입력장치에 넣을 천공카드에
구멍만 내주는 펀치기계 같은거였고
사람들은 입력이 제대로 되었나는 천공카드를 보고
확인했습니다.
(이거 생각하시면 됨)
그러다가 모니터가 등장하게 됩니다.
모니터는 즉각 입력과 출력을 보여주게 되었고
이제 키보드는 구멍뚫는 짓 할 필요없이 전기적 신호를
바로 컴퓨터로 전달, 모니터로 보여주게 되었습니다
키보드로 명령만 입력하면
컴퓨터가 실행하는 신세계가 열린거죠
(이제 구멍 안뚫어도 됨)
하지만 사람들은 그것에 금방 익숙해지고
명령어를 죄다 치는 것이 귀찮아졌습니다.
그래서 excute A 는 exe A 라고 줄여쓰고
디렉토리(폴더) 변경은 Change Directory 에서 cd로
줄여씁니다.
이는 그 과정을 아는 사람들에게는 매우 편리했지만
새로 진입하는 사람들에게는 외계어가 되는 부작용이 있었습니다.
또한 컴퓨터를 사용할려면 그 명령어들을 필수적으로
외어야만 했죠.
그러한 전문가틱한 시대는
GUI와 마우스의 등장으로 막을 내리게 됩니다.
GUI (Graphical User Interface)
이 GUI의 등장으로
존나 전공서적 뺨때리던 재수없던 컴퓨터가
어느날 갑자기 화사한 그림책으로 나타나게 됩니다.
(아직도 이 녹색은 무슨센스인지 알 수가 없다)
그리고 키보드가 아니라 마우스로 그림을 콕콕
찍으면 놀랍게도 명령어 없이도 명령이 실행되죠.
이제는 일반사용자들이 명령어를 외울필요가 없어진겁니다
하지만 그렇다고 키보드로 명령어를 치는 방식(CLI)이
사라진 것은 아니였습니다.
(CLI : Command Line Interface)
당장 윈도우에서도 띄울 수 있죠.
Win키+R 이후 cmd라고 치고 엔터치면
쉽게 접할 수 있습니다.
그것은 그것 나름의 장점이 있기 때문입니다.
가장 큰 이유는 화면에 예쁜 그림을 그려줄 필요가 없어서
속도가 빠르고 안정적이라는 것입니다.
열라 화려한 그래픽의 게임이 왜 버벅거리는가를
생각하시면 됩니다.
그래픽이라는 것이 컴퓨터의 속도에
미치는 영향은 지대합니다.
그래서 글픽 카드 성능이 무지 중요하죠
명령어 환경(CLI)는 그래픽이 없기 때문에
당연히 훨씬 빠르게 됩니다.
특히나 서버는 속도가 매우 중요한데
사용자에게 보여지는 부분이 없죠.
당연히 GUI를 쓸 이유가 없습니다.
그래서 리눅스서버는 거의다 이 명령어 환경(CLI)입니다.
그리고 명령어 환경이다보니 명령어를 조합해서
여러 작업이 가능합니다.
예를들어 폴더를 10개 만들어라 이런 식으로 말이죠
이걸 GUI에서 할려면 오른쪽 클릭 -> 새폴더 -> 오른쪽..
이짓을 10번이나 노가다 뛰어야합니다.
혹은 오버워치 설치 이렇게만 명령어를 쳐도
다운로드와 설치를 자동으로 해버립니다. (지원한다면)
윈도우에서 할려면 사이트 접속부터해서
설치프로그램 어쩌구.. 꽤나 복잡하죠
마지막으로 GUI는 사용자 입장에선 좋습니다.
하지만 만드는 사람입장에선 거지 같은 면이 있습니다
메인프로그램 그려줘야죠. 색칠해줘야죠.
안눌린 버튼, 눌린 버튼 따로 그려줘야죠..
(요즘은 그것도 프로그래밍툴에서 자동화가 됩니다만..)
(보통 버튼하나 만들려면 세장 그려줘야됨
누르기 전, 누를때, 누른 후)
그래서 굳이 판매용 범용 프로그램이 아닌이상
봇 같은 경우
거의 GUI로 만들지를 않습니다.
속도도 훨씬 빠르고 명령어로 샤샥 치면 그만이니
굳이 초보자들을 위해 고생해서 그래픽 그려줄 이유가 없죠
저 역시 명령어 방식은 별로 익숙하지 않습니다.
제가 리눅스를 안쓴 이유가 그거고요.
하지만 아이콘을 클릭하느냐
명령어를 치느냐
차이는 그냥 이렇습니다.
그러니 코인계에 얹힌이상
그 정도는 알아놓는 것도 나쁘지 않겠죠.
(예를들어 신규코인의 지갑 같은건
GUI가 아니라 CLI 인게 많음)