김숭늉 마음대로

Node JS, Node JS 설치방법? - 코딩챌린지 47일차 본문

IT/웹개발 (100일 도전)

Node JS, Node JS 설치방법? - 코딩챌린지 47일차

김숭늉이 2023. 9. 5. 12:59
728x90

 

 

 

 

안녕하세요. 오늘도 김숭늉입니다.

이번글에서는 Node JS에 대해 알아보겠습니다.

레쓰고~

 

 

 


Node JS란? 

 

원래는 html에서 작은 기능 역할을 하던것이 자바스크립트 였으나, 이 자바스크립트라는 프로그래밍 언어를 발전시키고 업데이트 시켜서 만든것이 바로 Node JS이다. 즉 브라우저 말고 다른 환경에서도 실행하기 위한 실행창 혹은 실행 환경이다. (이를 통해 브라우저 외부의 자바스크립트를 실행함)

 

 

그렇다면 Node JS를 통해서 서버를 만드는 이유는 뭘까?

 

첫번째는 코드가 짧고 쉽다. 따라서 프로토타입을 만들기 아주 좋다 (피벗팅 하기 아주 좋음)

 

그리고,

 

두번째는 Non-blocking I/O이다

(요청이 다수일때 가장 처리속도가 빠른것부터 먼저 처리해서 보내고, 오래 걸리는 요청건은 제껴두는 방식).  이런 특성때문에 sns나 채팅과 같은 웹서비스에서 많이 사용한다.)

 

**이미지처리나 수학, 통계처리의 경우는 파이썬을 더욱 추천한다

 


그럼 Node JS 설치방법은?

 

 

1. 먼저 아래 사이트로 접속한다

https://nodejs.org/ko

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

https://nodejs.org/ko/docs

(홈페이지의 docs메뉴에서 사용할수 있는 기능과 패턴을 확인 할수 있고, 자바스크립트와 같은 규칙을 사용하지만 브라우저를 사용하지 않기때문에 사용할수 있는 DOM이 없습니다. 즉 node js는 독립실행형으로 사용되는 코드입니다.)

 

2. 아래 버전중 원하는 버전으로 다운을 받아주면 끝

node js 다운로드

 

3. 위 사이트에서 설치한후 맥은 terminal에서, 윈도우는 커맨드창에서 node 자바스크립트 창을 열수가 있다

       (맥은 스포트라이트에서 terminal을 검색 / 윈도우는 command를 검색 )

        맥 : https://academind.com/tutorials/terminal-zsh-basics 

        윈도우 : https://www.makeuseof.com/tag/a-beginners-guide-to-the-windows-command-line/

        - cd 커맨드로 파일위치를 잘 이동한후 실행해야함

 

하지만! 이렇게 terminal 에서 이용을 해서 창을 열수도 있지만 이런방식은 갱장히 불편하기 때문에 비쥬얼 스튜디오 코드라는 에디터를 사용하기로 한다! (+비쥬얼 스튜디오 코드에서 터미널을 열면 바로 프로젝트 파일로 이동하기에 편리하다)

 

비쥬얼스튜디오 코드 터미널 > 뉴터미널

터미널에 명령어만 입력하면 자바스크립트 파일 자동으로 실행됨 

 

        [엔트리]

       node - v 버전정보를 볼수있음

       node 자바스크립트 런타임이 뜸 (실행창)

      node 파일명 ex) node app.js 

      ctrl + c 를 누르면 서버를 끔

 

node js 실행

 

const userName = "seungyein";

console.log(userName);

 

node js 파일 실행

이렇게 자바스크립코드가 실행된다.

 

 

const http = require("http");

function handleRequest(request, response) {
response.statusCode = 200;
response.end("<h1>Hello World!</h1>"); // 야기에 html이 들어감
}

const server = http.createServer(handleRequest);

server.listen(3000);
 

(컨트롤 씨를 하면 서버가 중지됨)

 

localhost:3000

 

개발자도구 네트워크

개발자도구에서 네트워크를 확인해보면 노드JS로 설정한 3000 포트에서 h1태그를 가지고 오고, 이외 나머지 html은 자동으로 생성되어 웹에서 표현되는것을 볼수 있다.

 

 

url 주소에 따라서는 새로운 경로를 아래와 같이 지원할수 있다

const http = require("http"); node js에 포함된 패키지 http패키지가 반환됨 / 요청과 응답을 처리함 => 

function handleRequest(request, response) {
if (request.url === "/currenttime") {
response.statuseCode = 200;
response.end("<h1>" + new Date().toISOString() + "</h1>");
} else if (request.url === "/") {
response.statuseCode = 200;
response.end("<h1>Hello world!</h1>");
}
}
// localhost:3000/currenttime
// localhost:3000
const server = http.createServer(handleRequest);

server.listen(3000); // 개발중에는 포트를 이것저것 시도해보면 됨 // 포트 3000에서 들어오는 요청을 수신하려고 함 / 실제 원격컴퓨터로 옮기게 되면 80 443

// amazon.com -> sen a reqeuest to amazon's server
// amazon.com:443 (포트이름을 세미콜론 뒤에 붙임 ) // 대부분의 포트는 최소한으로 열려있음 80이 기본값임

서버 상태 코드 (status codes)

 

서버 상태별로 코드명(숫자)가 구분 되어있습니다.

 

 

 

그럼 오늘도 좋은하루 보내세요~

 

 

 🤍 이글은 udemy의 100일 코딩챌린지 강의로 학습하며 정리하여 공유하는글 입니다.🤍

 

 

 

728x90
반응형