오늘은 CLI의 기본적인 명령어, node.js와 npm의 사용법에 대해 공부했다.
그리고 간단한 실습도 Pair Programming으로 진행했다.
CLI란 말 그대로 Command Line을 이용해 입력되는 글자와 출력되는 글자로 컴퓨터와 사용자가 소통하는 Interface이다.
GUI가 없던 시절에도 CLI는 컴퓨터를 다루기 위해 존재했고, 따라서 GUI로 할 수 있는 모든 작업은 CLI로 가능하다.(다만 불편할 수 있다...)
터미널을 실행해 프롬프트에 명령어를 작성하여 CLI를 사용할 수 있다.
CLI의 기본적인 명령어(Mac OS)
pwd: print working directory의 약자로 현재 작업중인 폴더의 위치를 출력한다.
mkdir: make directories의 약자로 현재 위치에 새로운 폴더(디렉토리)를 생성한다. (ex: mkdir [폴더이름])
ls: list의 약자로 하위폴더의 리스트를 출력한다.
open .:GUI를 지원하는 경우 현재위치를 GUI의 탐색기로 열어준다.
cd: change directory의 약자로, 현재 작업공간을 다른 폴더로 변경한다. (ex: cd [이동할 폴더의 경로])
touch: mkdir은 새로운 폴더를 생성하고, touch의 경우는 새로운 파일을 생성한다. 확장자명까지 입력해야한다.
cat: 파일의 내용을 확인할 수 있다. (ex: cat [파일이름])
rm: 폴더나 파일을 삭제해준다. (ex: rm [파일이름], rm -rf [파일이름])
mv: 폴더나 파일의 이름을 변경하거나 위치를 변경한다. (ex: mv [원본파일이름] [변경할파일이름], mv [이동될파일이름] [변경될위치/파일이름])
cp: copy의 약자로 폴더나 파일을 복사한다. (ex: cp [원본파일이름] [복사할파일이름])
sudo: 다른 사용자의 보안권한과 관련된 프로그램을 구동할 수 있게 관리자의 권한을 부여한 명령을 내릴때 사용된다.
명령어 뒤에 -을 붙일경우 옵션을 적용할 수 있다.
.는 현재위치, ..은 현재위치의 상위 디렉토리, ~는 홈디렉토리를 의미한다.
node.js는 웹 페이지의 동적인 영역을 처리하기 위해 개발된 자바스크립트가 웹브라우저 밖에서 서버를 구축하는 등의 코드를 실행할 수 있게 해주는 런타임 환경이다.
런타임 환경이란 프로그래밍 언어가 구동되는 환경으로 런타임은 프로그래밍 언어로 코드를 작성해 실행할 때 실행되는 곳을 의미한다. (웹 브라우저도 대표적인 자바스크립트의 런타임이다.)
nvm(Node Version Manager)은 node.js의 다양한 버전을 쉽게 설치하고 사용할 수 있게 해주는 프로그램이다.
nvm을 이용해 node.js를 설치하고 터미널에서 node [실행할파일] 명령을 실행하면 자바스크립트 파일(.js)이 실행된다.
npm(Node Package Manager)은 Node.js에서 사용할 수 있는 모듈들을 패키지화 하여 모아둔 저장소 역할과 패키지 설치 및 관리를 위한 CLI를 제공한다.
모듈이란?
프로그램을 구성하는 구성요소의 일부로 관련된 함수나 변수 또는 클래스를 모아놓은 파일이다.
모듈은 다른 프로그램에서 불러와서 사용할 수 있다.(기능별로 분리 -> 개발효율성과 유지보수성의 향상)
npm을 이용해 다양한 모듈을 설치하고 다양한 모듈을 자바스크립트 파일에 불러와 사용할 수 있다.
npm install [패키지이름]
Node.js를 이용하면서 많은 패키지(모듈)을 사용하게 되고 사용되는 패키지들도 빈번하게 버전이 업데이트 되므로 프로젝트가 의존하고 있는 모든 패키지를 일괄 관리할 필요가 있다.
npm은 package.json파일을 이용해 프로젝트의 정보와 패키지의 의존성을 관리한다.
npm init 명령을 이용해 현재 프로젝트의 package.json파일을 생성할 수 있다.
JSON이란?
속성-값(attribute-value),키-값(key-value)쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 텍스트를 사용하는 개방형 표준 포맷이다. 인터넷에서 자료를 주고 받을 때 그 자료를 표현하는 방법으로 알려져 있다. 자료의 종류에는 크게 제한이 없으며, 컴퓨터 프로그램의 변수값을 표현하는데 적합하다.
package.json파일의 형식
{
"name": "",
"version": "",
"keywords": [],
"description": "",
"main": "index.js",
"scripts": {
“name”: “CLI command”
},
"author": "",
"license": "",
"dependencies": {},
"devDependencies": {}
}
npm run [스크립트이름] -> CLI에서 스크립트이름을 키로 갖는 값의 명령이 실행된다.)npm install -> 해당 디렉토리의 package.json에 정의된 모든 의존성 모듈을 설치하라는 명령)