CLI, Node.js

moono·2023년 1월 21일
0

JavaScript

목록 보기
6/23

CLI(Command-Line Interface)

터미널로 프롬프트(Prompt) 에 원하는 명령어를 입력해 컴퓨터와 소통할 수 있다.

CLI 명령어

  • pwd : 현재 위치 확인하기

  • mkdir : 새로운 폴더 생성하기

mkdir helloWorld // helloWorld 라는 폴더 생성
  • ls : 특정 폴더에 포함된 파일이나 폴더 확인
    - ls -l : 파일이나 폴더의 포맷을 확인
    - ls -a : a는 all 이라는 뜻(숨어있는 폴더나 파일을 모두 출력)
    - ls -al 또는 ls -la
    drwxr-xr-x // d로 출력된 경우 폴더
    -rw-r--r-- // -로 출력된 경우 파일

  • cd : 폴더에 진입하기

  • touch : 파일 생성하기

touch hi.txt // hi.txt 의 빈 텍스트 파일을 생성

  • cat : 파일의 내용을 터미널에 출력
cat hi.txt // hi.txt 의 파일 내용 출력

  • rm : 폴더나 파일 삭제하기(이렇게 삭제한건 휴지통 거치지 않고 삭제)
    - rm -rf : 옵션 f는 질문을 받지 않고 지울 때 사용

  • mv : 폴더나 파일을 이동하거나 이름을 변경할 때 사용

mv bye.txt bye/ // bye.txt 의 파일을 bye 폴더로 옮김
mv bye.txt hello.txt // bye.txt 파일명을 hello.txt 로 바꿈

  • cp : 폴더나 파일 복사
cp -rf bye hi // bye 폴더를 복사해서 hi라는 새로운 폴더 만듬
// -rf 는 rm 처럼 질문을 받지 않겠다 뜻

컴퓨터가 파일을 옮기거나 복사하는 방법
⇒ 파일의 내용을 잠시 저장 > 원래 위치의 파일 삭제 > 도착 폴더에 잠시 저장한 내용으로 새로운 파일 생성


  • ~
~/helloWorld/hello/bye/
//  ⇒ /Users/[username] 가 ~ 에 있는 것(간략하게 표시)

  • . : CLI 에서의 . 은 현재 폴더, .. 은 현재 폴더보다 앞에 있는 폴더를 가르킴

  • ./ : 현재 폴더 아래의 폴더로 진입하고자 할 때

cd ./hi // 현재 폴더 아래의 hi 폴더로 진입하는 명령

  • ../ : 현재 폴더의 상위 폴더로 진입하고자 할 때

관리자(root) 권한

관리자 영역을 실수로 변경하면 크으은일!!
절대 경로의 기준점인 루트 폴더(/)는 Linux의 관리자 영역
함부로 폴더를 생성하거나 삭제 등을 할 수 없음

  • whoami : 현재 로그인된 사용자를 확인하는 명령어

  • sudo : 관리자 권한을 일시적으로 획득하는 명령어
mkdir justMkdir // 일반으로 생성한 폴더
sudo mkdir sudoMkdir // 관리자 권한으로 생성한 폴더
password:  // 타이핑을 해도 출력이 없음. 출력되지 않더라도, 입력되고 있음

ls // justMkdir sudoMkdir
****
// ls 로 보이는 폴더 정보
// drwxr-xr-x  2  로그인사용자이름  staff  64  3  29  19:47 justMkdir
// drwxr-xr-x  2  root         staff  64  3  29  19:47 sudoMkdir


nano

터미널에서 사용하는 에디터
VScode 같은 에디터인데, 나중에 AWS 와 같은 원격 서버 환경에서 원격으로 텍스트 파일을 편집해야 하는 경우 사용. => 터미널에서 자유자재로 다룰 수 있는 에디터가 하나쯤은 있어야 함

  • nano로 js 파일 실행
nano hello.js // hello.js 를 nano에서 열기

  • VScode 로 js 파일 실행
code hello.js // hello.js 를 nano에서 열기


nvm & node.js

node.js

Node.js는 JavaScript 런타임

  • Node.js라는 새로운 JavaScript 런타임이 등장하면서 웹 브라우저가 아닌 곳에서도 JavaScript를 실행될 수 있게 됨
  • JavaScript를 통해 웹 페이지를 구성하는 것을 넘어 서버를 구축하는 등 활용폭이 크게 확장
  • Node.js에서 JS를 실행시키기 위해서는 Node.js 를 설치해야 함
  • 패키지 매니저처럼 node.js의 버전을 관리할 수 있도록 nvm 로 설치 (별도의 프로그램으로도 설치 가능)

설치 관련 참고 링크


nvm (Node Version Manager)

nvm 은 Node.js의 다양한 버전을 관리하는 프로그램

  • Node.js의 버전을 손쉽게 관리할 수 있는 프로그램
  • 기존에 사용하던 Node.js를 삭제&재설치할 필요 없이 쉽게 다른 버전으로 변경 가능
  • 사용하고자 하는 Node.js의 버전이 12.18.3이고, 설치가 되어 있는 상태라면, nvm use 12.18.3 이라는 명령어로 버전을 변경할 수 있다.


npm & package.json

우리보다 잘하는 사람들이 만들어놓은 검증된 코드(모듈)을 Node.js 에서는 npm 모듈 이라고 하며, 이에 대한 정보를 담아둔 곳이 package.json
=> 필요한 모듈을 전부 전달해주는게 아니라 package.json 으로 알려주고, npm을 이용해 다운

npm (Node Package Manager)

  • node.js 환경에서 외부 라이브러리를 다운로드하기 위해 사용하는 대표적인 방법
  • 일종의 앱스토어로 필요한 모듈을 다운로드할 수 있는 모듈들이 모여있는 모듈 스토어

package.json

  • 프로그램을 실행시키기 위해 필요한 모듈들이 무언지, 프로그램을 실행시키는 방법, 테스트하는 방법 등이 명시
  • But 이 프로그램을 실행시키기 위한 실제 모듈은 따로 node_modules 라는 폴더에 저장
  • package.json 은 어떤 모듈인지만 적혀있으며, 제품 카탈로그 같은 느낌

사용방법

  • npm init : 새로운 package.json 파일 생성
    생성 후 파일에 들어갈 정보를 직접 입력해주어야 함.(입력하지 않으면 ()괄호 안의 기본값으로 생성)

  • npm init -y : 위 과정을 모두 생략하면서 package.json 생성

  • npm install : package.json에서 필요하다고 하는 모듈을 다운

devDependencies

이 프로젝트를 개발하는 환경에서 필요한 모듈들이 무엇인지가 적혀 있다.
ex) 코드 모양을 잡아주는 lint나 테스팅 모듈처럼, 실제 프로젝트 동작에 직접적으로 영향을 주지 않는 모듈들을 명시

특별히 개발이나 실행에 해당 모듈을 의존 한다고 해서, 의존성(dependency) 이라고 부름

JSON 형식에서 키에 적힌 것은 모듈 이름, 값은 버전

{
  "devDependencies": {
    "@mochajs/json-file-reporter": "^1.2.1",
    "chai": "^4.2.0",
    "mocha": "^8.2.0", // 테스트를 위해 필요
    "sinon": "^9.0.3"
  }
}

  • npm install로 npm에 있는 모듈을 설치할 수 있는데 이때 --save-dev 옵션과 함께 설치하면, 자동으로 devDependencies에 추가
$ npm install mocha --save-dev

dependencies

devDependencies와는 다르게 이 프로젝트가 돌아가기 위해 반드시 필요한 모듈들이 무엇인지가 적혀 있음.
ex) underscore 나 이후 배울 React 같은 것

npm install react

script 항목

CLI에서 사용 가능한 명령을 기술
npm run 스크립트 이름 으로 실행

  • npm run start : node.js 앱 실행
  • npm run test : 테스트 실행
  • npm run lint : 코드 검사
    (위 작업들이 항상 모든 프로젝트에 있는 것은 아님)

0개의 댓글