본문 바로가기

Back-end & Server/Node.js

[Node.js] index.js 파해쳐보기

728x90
반응형

Index.js

Node.js 프로젝트를 생성하고 Backend Server를 구동 시킬 때 예시 코드이다.

const http = require("http");

const hostname = "127.0.0.1";
const port = 3000;

const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader("Content-Type", "text/plain");
    res.end("Hello World");
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});

이 코드를 하나하나 분석해보자.

 

 

require

const http = require("http");

require은 무슨 의미를 가질까?

 

require은 Node.js에서 모듈을 불러오는데 사용한다. 기능은 다음과 같다.

  • 모듈 불러오기 : 다른 파일(.js, .json, .node)에서 정의한 모듈을 불러올 수 있다. 모듈은 파일 또는 디렉토리로 표현될 수 있다.
  • 모듈 캐싱 : 한 번 불러온 모듈을 메모리에 캐싱한다. 같은 모듈을 여러번 불러오더라도 파일 시스템에 로드되는 작업은 최초 한번만 수행된다.
  • 모듈 내보내기 : module.exports 객체를 사용하여 모듈을 외부로 내보낼 수 있다.
  • 모듈 가져오기 : require 메서드로 다른 파일에서 해당 모듈을 가져올 수 있다.

 

이 코드에서 require 안에 'http'은 모듈인 것을 알 수 있다. http 모듈에 대해서 간략하게 알아보자

 

http 모듈은 HTTP 프로토콜을 사용하여 웹 서버를 만들고 웹 클라이언트를 요청하는 기능을 제공한다.

  • HTTP 서버 생성 : 'http.createServer()' 메서드를 사용하여 HTTP 서버를 생성할 수 있다. 이 메서드는 요청(request)과 응답(response)를 처리하는 콜백 함수를 인자로 받는다.
  • 요청과 응답 처리 : HTTP 요청을 처리하고, HTTP 응답을 생성하여 클라이언트에게 보낼 수 있다.
  • 웹 서버 구동 : 'server.listen()' 메서드를 사용하여 웹 서버를 특정 포트로 구동시킬 수 있다.
  • 웹 클라이언트 요청 : 'http.request()' 메서드를 사용하여 웹 클라이언트로서 다른 서버에 HTTP 요청을 보낼 수 있다.

 

 

createServer

createServer()를 사용하면 서버를 만들 수 있다. 이 함수는 클라이언트로부터 요청이 들어올 때마다 콜백 함수를 실행한다.

const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader("Content-Type", "text/plain");
    res.end("Hello World");
});

코드를 살펴보면 http 모듈 객체로 HTTP 서버를 생성하는 코드이다.

createServer 함수는 콜백함수를 매개변수로 받는데, 콜백함수는 req, res를 매개변수로 받는다.

 

req : request 객체로 클라이언트의 요청 정보를 담고 있다. 예를 들어 요청 URL, 요청 메서드, 헤더 등의 정보를 확인할 수 있다.

res : response 객체로 서버가 클라이언트에게 보낼 응답을 생성하는데 사용, 콜백 함수 내부에서 res 객체의 메서드를 사용하여 응답을 설정하고 보낼 수 있다.

 

콜백 함수 내부를 살펴보자.

res.statusCode = 200;

이 코드는 statusCode 속성을 사용하여 HTTP 응답의 상태 코드를 200으로 설정한다. 200은 OK를 의미하며 클라이언트에게 요청이 성공적으로 처리되었음을 의미한다.

 

res.setHeader("Content-Type","text/plain");

setHeader() 메서드를 사용하여 응답의 헤더를 설정한다. "Content-Type" 헤더를 "text/plain"으로 설정하여 응답 본문의 데이터 타입이 일반 텍스트임을 알린다.

res.end("Hello World");

end() 메서드를 사용하여 응답 본문을 설정하고 클라이언트에게 응답을 보낸다. 이 경우 "Hello World"라는 텍스트를 클라이언트에게 보내고 응답을 종료한다.

 

 

server.listen

server.listen()을 사용하여 서버를 지정한 호스트와 포트로 실행한다.

서버가 시작되면 콜백 함수가 실행된다.

 

호스트와 포트를 지정한다.

const hostname = "127.0.0.1";
const port = 3000;

서버를 실행하고 실행 시 실행할 콜백 함수를 지정한다.

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});

서버가 실행되면 콘솔에 'Server running at http://127.0.0.1:3000/'이 출력된다.

 

 

전체 코드를 살펴본 결과 localhost 3000번 포트에 클라이언트가 요청을 하면 Hello World를 응답으로 보내는 Node.js 서버를 실행하는 코드이다.

728x90
반응형

'Back-end & Server > Node.js' 카테고리의 다른 글

[Node.js] Event Loop  (0) 2023.07.29
[Node.js] Callback Function  (0) 2023.07.29
[Node.js] Node.js의 핵심 기능  (0) 2023.07.28
[Node.js] package.json 알아보기  (0) 2023.07.28
[Node.js] Node.js 시작하기  (0) 2023.07.28