TIL(03.16/ 1W 1D/ Mon)

Seokhwan Yi·2020년 3월 23일
0

TIL

목록 보기
1/9

Today I Learned

오늘부터 하나씩 쌓아 나가렵니다.
Let's get it.

JavaScript runtime?

도대체 런타임은 무슨말인가 그래서 위키형님께 물어봤다.

런타임(영어: runtime→실행시간)은 컴퓨터 과학에서 컴퓨터 프로그램이 실행되고 있는 동안의 동작을 말한다. "런타임"이라는 용어는 컴퓨터 언어 안에 쓰인 프로그램을 관리하기 위해 특정한 컴파일러나 가상 머신이 사용하는 기본 코드의 라이브러리나 프로그램을 가리키는 런타임 라이브러리라고도 일컫는다.
런타임 환경(영어: runtime environment)은 컴퓨터가 실행되는 동안 프로세스나 프로그램을 위한 소프트웨어 서비스를 제공하는 가상 머신의 상태이다. 운영 체제 자체에 속하는 경우도 있고 운영 체제에서 작동하는 소프트웨어를 뜻할 수도 있다.
지금부터 쌓아올릴 JS의 런타임 환경은 웹 브라우저와 Node.js겠군.

어떻게 사용하니?

  1. 웹 브라우저에선 script 태그 내에 작성함.
  2. 콘솔에서 실행시키는 방법
// 2. 
// runNode.js
const testFunc = function(arg) {
  console.log("Arg is : ", arg);
}
testFunc(20);
$ node runNode.js
// => "Arg is : 20"

그래서 NVM 은 뭐니?

Node Version Manager 라고 하며 말 그대로 노드의 버전 관리를 해주는 친구다.
nvm 설치 방법 / link

Package.json은 뭐야?

내가 만든 프로그램을 나 혼자만 개발하고 사용한다면 큰 문제가 되지 않을 수 있지만, 우리는 대부분 다른 사람과 함께 개발하고 사용하게 됩니다. 그럼 다른 사람에게 이 프로젝트에 대해 알려주어야겠죠?! 그 역할을 하는 것이 바로 package.json 입니다.

그래서 npm install 명령어를 입력하면, package.json에 필요하다는 모듈을 다운받을수 있다.
npm install 명령어를 입력하시면, package.json에서 필요하다고 하는 모듈을 다운받습니다. npm install이 완료되면 node_modules 디렉토리 가 생긴 걸 확인하실 수 있습니다.

Package.json에 대해 더 알아보자.

1. dependencies

이 프로젝트가 돌아가기위해 반드시 필요한 모듈들 명시.

"dependencies": {
		"react": "^16.8.6",
 }

2. devDependencies

프로젝트 개발 환경에서 필요한 모듈들. 모양을 잡아주는 lint나 testing module처럼 실제 프로젝트 동작에 직접적으로 영향을 주지 않는 모듈들.

"devDependencies": {
    "jest": "^2.3.0",
  	"eslint" : "^2.0.0"
 }

3. scripts

npm 으로 실행시킬 수 있는 명령어를 정의합니다.
명령어를 입력하면 어떤 동작을 해야하는지가 적혀 있습니다.
예를들면 npm test 명령어를 입력하면 "test파일을 node 에서 실행시켜라!" 하는 내용들이 들어있습니다. 만약 npm test와 같은 명령어를 실행시켰는데 정의되지 않은 명령어 라는 오류 메시지가 나오면, package.json 파일 scripts 에 해당 명령어가 정의되어 있는지를 확인해 보시면 됩니다.

"scripts": {
    "start": "node app.js",
    "test": "node test.js",
  }

어? npm 은 또 뭐야?

Node Package Manager로 일종의 앱스토어입니다. 필요한 모듈을 다운로드할 수 있는, 모듈들이 모여있는 모듈 스토어입니다. node.js 생태계의 중심은 npm이 있다.
관련사이트: npmjs

profile
위대한 한잔을 좋아 합니다.

0개의 댓글