dukDukz

21.04.19 Node JS 본문

웹 개발/Node JS

21.04.19 Node JS

헤일리_HJ 2021. 4. 19. 16:51

Node JS

서버 개발하기 쉬움

 

Server - Client

 

server

국밥집

점원에게 요청

국밥 줌

 

하는 역할 : 요청

요청 받은 값을 주는 기계가 서버

 

상황 : naver 홈페이지 접속

 

(브라우저)

클라이언트      Naver           서버         

reQuest         -->           responce

[reQ]                         [res]

(요청)          <--

                HTML css javascript 를 준다.

 

 

 

Node js 서버의 특이점

일반적인 서버 일을 하나씩 처리함
혹은 요리사의 수를 늘려서 일을 처리함

1 요청 -> 1초
4 요청 -> 4초
NodeJS 서버


 논블로킹,
 이벤트 처리

주문을 하나씩 받아서 끝나는 순서대로 준다.
동시에 실행이 가능하다는 뜻 - 논블로킹
예시 SNS, 채팅 프로그램

가능한 이유: NodeJS 는 이벤트 기반이기 때문이다.

이벤트가 발생 할 때마다 서버에 요청한다는 뜻

 

 

서버를 이제부터 만들거야

누가 url 접속하면 .page/index.html 페이지를 보내줘

누가 url/interview 에 접속하면 .page/interview.html 페이지를 보내줘

 

+

 

누가 url 접속하면 DB 서버에 접속해서 특정 데이터 보여줘

 


 

<라이브러리 다운 받는 방법>

 핵심 - 터미널에 입력하는 값들

npm init
npm install express
끝까지 엔터침 (entry point 에서만 server.js 쳐준다.)

1. npm을 사용할 수 있게 한다 (npm init)

2. npm을 통해 experess를 설치한다

 

코드 실행 위해서, 라이브러리 필요함

npm 으로 express를 다운받은 것이다.

 

 

 

<서버 실행시키는 방법>

 node server.js         // 서버 on
 ctrl + c                 
// 서버 off

package.json 에 있는

"start": "node server.js"   --> start 하려면 이렇게 치라는 뜻

이대로 터미널에 치면

server is listening at localhost:3000 가 나오면 성공

--> 이게 console.log(`server is listening at localhost:${port}`); // 이 부분임

 

 

 

<터미널 열린거 확인하는 법> 

인터넷 주소창에 
localhost::3000

① localhost::3000

터미널 실행 시키고

크롬 켜서 주소창에

localhost::3000

치면 아까 입력했던 hello world가 뜸

app.get('/',(req,res)=>{
    res.send('hello world');
});

 

② localhost::3000/hello

주소창에 뒷부분에 추가로 hello 작성,

이렇게 하면 hello world2 가 나온다

app.get('/hello',(req,res)=>{
    res.send('hello world2');
});

 

안되면 서버를 껐다가 켜야 함.

ctrl + c 하고 다시 node server.js  치면 껐다 킨게 됨

 

코드를 수정하면 서버를 무조건 껐다가 켜야 적용이 된다.

(코드 수정은 server. js에서 함)

 

 


코드설명

server.js

const express = require('express');     // express를 생성함
const app = express();                  // app에 express 객체를 담는다.  --> 이 두 줄은 외워야 함
const port = 3000;                      

app.get('/',(req,res)=>{
    res.send('hello world');
});

app.get('/hello',(req,res)=>{
    res.send('hello world2');
});

app.listen(port,()=>{
    console.log(`server is listening at localhost:${port}`);    // 이 부분은 터미널 콘솔에 뜬다.
});

 

설명

더보기
const express = require('express');     // express를 생성함
const app = express();                 
const port = 3000;                      

1) express 생성

2) app에 express 객체를 담는다.  

--> 이 두 줄은 외워야 함


1. 서버를 만들거라는 뜻

app.listen(port,()=>{
    console.log(`server is listening at localhost:${port}`);
});

app 객체에서 listen() 매서드를 호출함 

listen 매서드에는 2가지 매개변수 or 인자값이 들어간다.

.listen(port, ( )=>{  })

 

①  port

 

컴퓨터는 5만개의 구멍이 있다. 즉 5만번까지 포트가 존재한다는 것이다.

만약 zoom 을 사용한다고 할때, zoom 이 인터넷에서 port 3000 을 사용한다고 가정하자
내가 입력한 server.js도 3000을 사용한다.
그러면 실행 불가함 - 이미 내가 3000 port를 사용하고 있기 때문

 

② 코드가 실행되었을 때 콜백함수가 들어간다.

 

 

 


 

2. 처리부분 처음 내 서버에 오면 hello world를 내보낼거야

app.get('/',(req,res)=>{
    res.send('hello world');
});

app.get('/hello',(req,res)=>{
    res.send('hello world2');
});

app = express 에 대한 객체

app.get() 는 url 변동에 대한 이벤트임

 

app.get() 어떻게 실행되는가?

2가지 매개변수가 있다.

 

app.get('/', (요청,응답)=>{})

1. 경로 '/' => localhost:3000

2. 콜백함수 ()=>{

    두가지의 인자값이 존재함->요청과 응답

    응답 : 서버는 요청 받은 내용을 토대로 응답해주는 기계

 

    응답.보냄('뚝배기');

    res.send('hello world');

}

 

 

 

추가 내용

더보기

*** 중요한거 get, post

get  : 읽기
url 주소에 직관적으로 보임
눈에 보이는 data

post : 쓰기
로그인 혹은 회원가입 할 때 사용한다.
눈에 안보이는 data


put  : 수정
delete : 삭제

 

 


 

PIP -> Python
NPM -> NodeJS

노드 패키지 매니저

어떤 특정 url에 들어가서 다운로드 버튼 누른것과 같다
그래서 install 파일을 다운받아서 설치까지 한거랑 같다

설치 다해주는게
NodeJS 설치하면 자동적으로
npm 패키지 매니저가 설치된다.
npm install []


브라우저에서 작동하는 javascript