HTTP method는 HTTP 메시지가 어떤 목적을 가지고 있는지를 나타낸다.
주로, 다음과 같은 method들이 있다.
Node.js는 스크립트 언어인 자바스크립트를 프로그래밍 언어 역할을 할 수 있도록 지원하는 플랫폼(런타임 환경)이다.
Node.js는 백엔드에만 사용되는 플랫폼이 아니다.
Node.js와 연결하여 React나 vue 등에 연동하여 프론트엔드의 JS 프레임워크에도 사용할 수 있다.
Node.js의 대표적인 특징으로 3가지 존재한다.
1. 싱글 스레드 : 한번에 하나의 작업을 수행한다.
2. 이벤트 기반 : 이벤트(요청)가 발생해야 동작한다.
3. 논블로킹 I/O : 어떤 작업을 수행하는데 10분이 소요되고, 10분 중 5분은 대기하는 등의 의미없는 동작이 있다면, 이 5분동안 유연하게 다른 동작을 수행하도록 한다.
논블로킹의 예시는 다음과 같다.
function first (){
console.log("1")
}
function second (){
console.log("2")
}
function third (){
console.log("3")
}
first();
setTimeout(second, 2000); // 2초 지연시키기
third();
결과:
1
3
2
setTimeout()이라는 빈 시간에, third() 가 먼저 실행되는 것을 확인될 수 있다.
모듈은 다른 개발자들이 미리 만들어 둔 코드 덩어리를 의미한다.
모듈에는 크게 두 종류가 존재한다.
라이브러리라는 단어도 들어보았는데,
모듈과 라이브러리는 거의 유사한 개념이다.
라이브러리 vs 프레임워크
라이브러리란, 사용자가 필요로 하는 정보들이 정리되어 있는 집합이다. 라이브러리에서, 사용자가 필요한 함수나, 기능들을 찾아서 사용할 수 있다.
프레임워크란, 구조,틀의 의미가 강하다. 프레임워크는 이 틀 안에 필요한 라이브러리, 모듈들을 모두 가지고 있고, 사용자는 틀에 맞춰서 코드를 작성해야 한다.
먼저, npm이란 Node Packager Manager의 약자로, 모듈을 관리해주는 패키지 관리자이다.
주로 npm install 모듈명 의 방식으로 사용한다.
figlet이라는 외부 모듈을 설치해서 사용해보도록 하자.
우선 npm 공식 홈페이지 에 접속하여 figlet 모듈을 검색해본다.
해당 모듈의 페이지에 들어가면 개발자가 설치 방법, 사용 예시 등의 정보를 게시해 놓은걸 확인할 수 있다.
안내된 사항에 따라, 로컬의 vscode 터미널에 npm i figlet 을 입력하여 설치한다.
해당 터미널의 위치에 node_modules라는 폴더가 생성되며,
package.json, package-lock.json 이라는 파일이 생성됨을 확인할 수 있다.
package.json 에는, dependencies 라는 key가 생기고, 그 안에 또 figlet이라는 key와 version을 값으로 갖는 value가 생성된다.
// `package.json`
{
"dependencies": {
"figlet": "^1.7.0"
}
}
package-lock.json 에는, 이보다 더 자세하게 작성되어 있으나, 사용자가 굳이 확인할 필요는 없어보인다. 추가된 정보는 모듈의 설치 위치, 주소, requires 등 다양한 속성이 존재한다.
이렇게 npm install 을 통하여 외부 모듈을 사용할 수 있게 되었다.
figlet 공식 페이지의 예제를 이용해서 코드에 대해서 알아보자.
var figlet = require("figlet"); // require이라는 내장 모듈의 함수로, figlet이라는 모듈을 불러온다.
// figlet("문자열" , 콜백함수)
figlet("Hello World!!", function (err, data) {
if (err) {
console.log("Something went wrong...");
console.dir(err);
return;
}
console.log(data);
});
/* 작동 순서 :
1. 모듈 불러오기
2. 해당 모듈의 함수 사용 (figlet())
2-1. 해당 함수에 입력된 문자열로 아스키 아트를 생성.
2-2. 콜백함수 실행
3. 출력
*/
외부 모듈을 설치할 땐 npm install figlet 을 사용했다.
그렇다면 안쓰는 모듈을 삭제할 땐 어떻게 할까?
삭제할 땐 npm uninstall figlet 을 사용한다.
삭제 후 해당 모듈의 함수들을 사용해보면, 오류가 출력되는 것을 확인가능하고, 정상적으로 삭제되었음을 알 수 있다.
figlet 페이지에서,
npm install -g figlet-cli 라는 커맨드가 있는 것을 확인할 수 있다.
여기서 -g의 역할이 모든 프로젝트 폴더에 모듈을 적용시켜 설치하겠다는 의미이다.
하지만, 사용하지 않는 불필요한 모듈은 충돌 등의 문제가 발생할 수 있기 때문에 가지고 있지 않는 편이 권장된다.