본문 바로가기

Back-End/Node.js

Node.js.48. API와 CreateServer

반응형

API

: Application Programming Interface

웹 애플리케이션은 Node.js가 가진 기능을 호출하여 동작하게 된다.

 

fs.readFile에 대해 생각해보자. 이 함수는 누가 만들었을까? Node.js 개발자들이 만든 것이다.

이 함수가 어떻게 동작하는지 우리는 모른다. Node.js를 만든 개발자들은 Node.js를 이용하는 개발자들에게 파일을 읽을 때에는 readFile을 사용하라고 사용설명서를 통해 말한다. 즉, readFile 함수의 이름과, 파라미터, 리턴값은 이 함수를 만든 Node.js개발자들과 이 함수를 사용하는 Node.js를 이용하는 개발자들 사이의 약속된 조작장치이다. 이런 조작장치를 Interface라 한다. 우리는 interface인 readFile함수를 실행시켜서 애플리케이션을 만들 수 있게 되는 것이다.

이처럼 애플리케이션을 프로그래밍하기 위해서 제공되는 interface를 API라고 한다. 언어가 가진 조작장치들이 궁금하다면 API를 찾거나 검색을 통해 문제를 해결할 수 있다.


 

CreateServer

Node.js의 API문서를 살펴보자.

 

Index | Node.js v12.18.3 Documentation

 

nodejs.org

우리가 작성한 코드를 보면, http 모듈을 가져와 createServer()함수를 사용하고 있다. 이를 Nodejs 문서를 통해 찾아보자.

requestListener <함수>. 그래서 createServer의 첫 번째 인자로 함수를 입력하였다.

createServer()함수를 이용하여 웹 서버를 만들었다. 그리고 웹 서버로 외부에서 요청이 들어올 때마다 function을 호출하면서, 웹 브라우저로부터 들어오는 요청에 대한 정보를 담고 있는 request를 첫 번째 인자로, 함수 안의 구현을 통해 사용자에게 전송하고 싶은 정보를 담고 있는 response를 두 번째 인자로 주기로 약속을 했다.

return값으로 http.Server를 반환한다. 그래서 변수 app에 서버 객체가 담겨있는 것이다. 그럼 app에는 어떤 값이 담겨 있을까?

 

app.listen(3000);

위 코드는 우리가 만든 웹 애플리케이션의 마지막 코드이다.

요청에 대해 응답할 수 있도록 HTTP를 구동시킨다. 

 

Net | Node.js v12.18.3 Documentation

Net# The net module provides an asynchronous network API for creating stream-based TCP or IPC servers (net.createServer()) and clients (net.createConnection()). It can be accessed using: const net = require('net'); IPC support# The net module supports IPC

nodejs.org

server.listen()의 형태들이다.

여러 형태 중 마지막을 보면, port는 생략가능하다고 되어 있다. 우리의 경우 3000번 포트를 사용하고 있으므로 작성했다.

따라서 우리가 3000번을 작성하게 되면 3000번 포트에 귀기울이고 있다가 웹 브라우저로부터 접속이 들어올 때 3000번 포트로 들어오면 우리가 만든 애플리케이션이 이에 대해 응답하고 동작하게 된다.

반응형