백엔드(2) Node.js
Node.js, 모듈, 라이브러리, 프레임워크
Node.js
- 라이브러리.
- react. view와 같은 프론트엔드 프레임워크가 node.js 기반이다.
-
Node.js 덕분에 자바스크립트 모듈을 만들고 사용할 수 있음.
ex) exports.route = route; //모듈 만들기
node.js는 js가 스크립트 언어 이상으로 프로그래밍 언어 역할을 할 수 있도록 지원하는 플랫폼이다.
특징
- 싱글 스레드
- 요리사가 한 명.
- 논 블로킹 I/O
-
요리를 순차적으로 하는게 아니라 비는 시간이 있으면 다른 요리를 한다.
function first(){ console.log("첫 번째") } function second(){ console.log("두 번째") } function third(){ console.log("세 번째") } first(); setTimeout(second,2000); //setTimeout(실행시킬 함수, 초); third(); /* 결과 ---------- 첫 번째 세 번째 두 번째 */
-
ex) 라면을 끓일 때 10분 걸리는 데 물 끓는 시간이 5분. 뒤에 볶음밥 주문이 들어왔는데 볶음밥은 5분 걸린다. → 라면 물 끓여놓고 → 볶음밥 요리 한 뒤→ 라면을 완성한다.
-
- 이벤트 기반
- 주문이 들어와야만 일을 한다 즉, 주문이 없으면 일을 안한다
변수 타입
- var: 전역변수 (어디에서나 쓸 수 있다)
- let: let은 변수. 지역변수로 선언된 블록(공간) 내에서만 사용 가능. 업데이트는 가능하나 재선언은 불가
- const: 상수. 선언된 블록 내에서만 사용 가능. 업데이트, 재선언 불가
템플릿 문자열
- ``로 감싼 뒤, 변수를 &{}안에 넣으면 된다
${num1} +
${num2} =${num3}
모듈, 라이브러리, 프레임워크
모듈
- 다른 개발자가 만들어 놓은 코드 덩어리
- 기본으로 내장된 내부 모듈
- 외부 모듈
- package.json 의 depecencies에 표시되어있다.
- package.json file이 없으면
npm init
을 하면 생성된다!
- package.json file이 없으면
- npm i 모듈명 -g: -g 는 global이므로 내 컴퓨터에 있는 모든 프로젝트에 설치한다. 따라서 권장사항은 아님.
- 삭제
- npm uninstall [패키지 네임]
라이브러리
- 사람들이 만들어 놓은 코드를 찾아서 빌려다가 적용시킬 수 있는 것.
- 장점: 내가 원하는 걸 빌릴 수 있다.
- 단점: 고르기가 힘들다.
프레임워크
- 내가 만들고 싶은 서비스를 구현하는 데 필요한 모든 일을
틀
안에서 하는 것. - 필요해보이는 라이브러리(모듈)를 미리 ‘틀’ 안에 다 넣어뒀다.
- ex) Express.js(Node.js) , React.js (Javascript), Spring (java)
npm(Node Package Manager)
- 외부 모듈을 내가 원하는 프로젝트에 설치 등 관리해주는 곳.
- https://www.npmjs.com/ 위 사이트에서 원하는 패키지를 찾은 뒤, 설치 가이드에 따라 설치하면 된다!