[개발자 역량 키우기] 터미널(Terminal)
컴퓨터 조작 방식 (인터페이스Interface)
인터페이스(Interface)란, 서로 다른 두 개의 장치(혹은 시스템)가 정보를 주고받을 때의 접점을 말합니다.
즉, 컴퓨팅에서 컴퓨터 시스템끼리 정보를 교환하는 공유 경계인 셈입니다.
이러한 공유는 소프트웨어, 하드웨어, 사람 간에서 복합적으로 이루어집니다!
조금 더 쉽게 이해하기 위해, 인터페이스의 세 가지 종류를 알아보겠습니다.
1) CLI 방식 (Command - Line Interface)
CLI는 글자의 입출력만으로 사용자와 컴퓨터가 커뮤니케이션할 수 있는 방식입니다.
대표적인 방법으로는 윈도우의 CMD 창입니다.
단순히 새카만 화면에서 키보드로 입력하는 명령어만으로 컴퓨터의 수많은 동작을 제어할 수 있는 방식입니다.
CLI 방식은 컴퓨터를 원격으로 제어할 수 있고, 그래픽으로 전환해주지 않기에 속도 면에서도 매우 빠르다는 장점이 있습니다.
하지만 별도의 명령어 학습이 필요해 진입장벽이 있는 컴퓨터 제어 방식입니다.
2) GUI 방식 (Graphical - User Interface)
GUI는 아마 사람들에게 가장 익숙한 방식일 것입니다.
그래픽을 이용하여 컴퓨터와 사용자가 소통하는 방식으로, 우리가 흔히 보는 그림, 아이콘 등을 이용해서 컴퓨터를 제어합니다.
마우스로 파일을 클릭(Click)하거나, 드래그 앤 드롭(Drag & Drop) 방식으로 화면 상의 파일을 폴더로 끌어다 놓는 등의 직관적으로 제어하는 방식입니다.
누구든 쉽게 접근할 수 있고, 이해할 수 있다는 점에서 컴퓨터가 널리 보급되게하는 계기가 되었지만,
CLI 방식에 비해 속도가 느리고(아무래도 일일이 그래픽으로 표현하다 보니) 원격 조종에는 한계가 있다는 단점이 있습니다.
3) NUI 방식 (Natural - User Interface)
NUI 방식은 기술의 발달에 따라 최근 들어 발달한 인터페이스 방식입니다. 이름 그대로 자연스러운 신체 움직임으로 컴퓨터와 직접적으로 소통하는 방식으로,
우리가 흔히 쓰는 스마트폰의 터치스크린도 TUI(Touch - User Interface)로서 NUI의 일종이라고 할 수 있습니다.
NUI 방식은 적은 학습으로, 거부감 없이 자연스럽게 컴퓨터와 직접 소통할 수 있다는 장점이 있습니다.
향후 기술이 진화함에 따라 더욱 인간친화적인 방식으로의 발전이 기대되는 방식입니다!
터미널(Terminal)
돌고 돌아 결국 종착지인 터미널에 왔습니다.
개발자라면 터미널과 함께 개발한다고 해도 과언이 아닐 정도로 다방면으로 활용하는 터미널은 앞서 언급한 CMD창 처럼 대표적인 CLI 방식입니다.
개발자는 프로젝트를 진행하며 팀 단위의에서의 협업을 많이 하는 만큼, 컴퓨터의 원격 제어 능력이 필수적입니다.
따라서 터미널를 잘 다룰 수 있는 능력은 개발자의 필수 덕목이라고 할 수 있습니다.
다음은 자주 쓰이고 기본적으로 알아야 할 터미널 명령어들입니다.
터미널 명령어(Terminal Command)
pwd (print working directory)
현재 위치(경로)를 출력해주는 명령어
~
'home 디렉토리'를 가리키는 명령어
ls (list)
현재 디렉토리의 구성요소들을 출력해주는 명령어
ls -al : 숨겨진 파일들까지 리스트 형태로 보여줌
cd (change directory)
현재 디렉토리를 이동하게 해주는 명령어
mkdir (make directory)
디렉토리를 생성해주는 명령어
rmdir (remove directory)
디렉토리를 제거해주는 명령어
touch
파일을 생성해주는 명령어
cp
파일이나 디렉토리를 복사해주는 명령어
tree
파일들을 계층적인 tree형식으로 출력해주는 명령어 (\*별도 설치 필요)
clear
터미널 화면을 초기화해주는 명령어
mv (move)
파일 이름을 변경시키거나, 다른 디렉토리로 이동시키는 명령어
'개발자 역량' 카테고리의 다른 글
[개발자 역량] 인증&인가 : (2) 인가(Authorization) (feat. JWT) (0) | 2022.05.21 |
---|---|
[개발자 역량] 인증&인가 : (1) 인증(Authentication) (feat. Key Stetching, bcrypt) (0) | 2022.05.19 |
[개발자 역량] Linux & Terminal (1): 리눅스 (Linux) (0) | 2022.05.04 |