Study/Node.js

[Node.js_study] 서버에 GET 요청 처리 해보기

갈푸라떼 2022. 4. 15. 17:42

서버를 띄우기 위해 작성할 기본 템플릿

 

* express 라이브러리 사용법

(server.js 파일)

const express = require('express');
const app = express();

app.listen(8080, function() {
    console.log('listening on 8080')
})

 

* 첫 두줄은 express 라이브러리 첨부와 사용

밑에 app.listen()은 원하는 포트에 서버를 오픈하는 문법이라고 보시면 됩니다.

 

* listen() 함수 안엔 두개의 파라미터가 필요합니다. 

listen(서버를 오픈할 포트번호, function(){ 서버 오픈시 실행할 코드 })

 

* 터미널을 켜서 node server.js를 입력하면 서버 실행된다.

브라우저에서 localhost:8080 이라고 접속하면 확인가능 

 


Port(포트)란??

 

컴퓨터는 항상 외부 컴퓨터와 통신할 수 있게 설계되어있습니다.

랜선을 꽂거나 와이파이를 켜거나 하시면 다른 사람이 여러분 컴퓨터로 접속을 요청할 수도 있고 그렇습니다.

 

 

컴퓨터는 외부와 통신할 수 있는 통로가 총 65536개가 존재합니다. 그리고 이걸 'Port(포트)'라고 부릅니다. 

평상시엔 막혀있는데, 여러분이 외부 컴퓨터 접속을 허가하려면 포트를 열어야합니다. 

 

우리는 무작위로 하나 고른 8080번째 포트를 사용해서 서버를 띄웠으며 

이제 외부 컴퓨터가 여러분 아이피 주소:8080이라고 입력하면 여러분 컴퓨터로 들어올 수 있는 것입니다.

 

1) Well-Known Ports ( 잘 알려진 포트 ) : 0번 ~ 1023번

 

 

2) Registered Ports ( 등록된 포트 ) : 1024번 ~ 49151번

 

3) Dynamic Ports ( 동적 포트 ) : 49152번 ~ 65535번

 

  • 사용자가 임의로 사용가능한 포트 번호

Callback function(콜백함수)에 대해

function 함수이름( ){ }

보통 이렇게 만들어서 사용합니다.

 

그런데 위에서 작성한 코드는 이렇게 되어있습니다. 

.listen(서버를 오픈할 포트번호, function(){서버 오픈시 실행할 코드})

여기서 중요한 문법적 개념 중 하나가 바로 function(){} 부분입니다.

1. 그런데 위의 예제 코드에선 함수명을 작명하는 부분이 없고 function(){} 이렇게 사용하고 있고

2. listen()이라는 함수 안에 함수를 집어넣는 형태로 사용하고 있다.

이걸 자바스크립트에선 '콜백함수'라고 부릅니다. 

정의는 함수안에 들어가는 함수입니다.

 

콜백함수를 왜 사용할까?

자바스크립트에서 뭔가 순차적으로 실행하고 싶을 때 사용한다.(순차적 실행이 목적)

listen() 이라는 함수를 동작시킨 다음에 function(){} 내에 있는 코드를 실행해주세요. 라는 뜻으로 사용한 것입니다.

Node.js 특성상 코드를 연달아서 2개 적는다고 그 코드가 순차적으로 실행된다는 보장이 없기 때문에 뭔가 순차적으로 실행할 때 '함수안에 함수를 집어넣는 콜백함수'를 꼭 사용합니다.  

 


* GET 요청을 처리하는 기계

서버는 요청을 처리하는 기계이다.

그럼 요청을 어떻게 하냐면, 바로 브라우저를 켜서 주소창에 URL을 입력하시면 됩니다.

이 요청은 전문용어로 GET 요청이라고 합니다. 간단하게 주소창에 URL을 넣어 요청할 수 있는 것이다.

 

누군가 우리 서버의 /hello 경로로 접속하면 '안녕하세요' 라는 안내메세지를 띄워주는 서버를 만들 경우(연습)

app.get('/hello', function(req, res) { 
  res.send('안녕하세요')
})

 

이렇게 server.js 하단에 추가하면 된다.

그럼 브라우저 켜서 localhost:8080/hello 라고 접속하면 '안녕하세요'라는 멘트가 뜬다.