[DAY2] Node.js로 웹 서버 만들기

m1njae·2022년 1월 4일
0

22 Basic Challenge

목록 보기
2/25
post-thumbnail

DAY2

DAY2의 과제는 Node.js를 통해서 웹 서버를 만드는 과정이었다. 실습과정은 유튜브 채널 생활코딩님의 영상을 참고했다.

웹 브라우저와 웹 서버가 있으면 우리는 웹 브라우저에서 주소를 입력해서 요청을 한다. 웹 서버는 그 요청에 따른 정보를 찾아서 응답해주는 관계에 있다. Node.js는 웹 서버의 기능을 내장하고 있기 때문에 웹 서버로 사용이 가능하다. 이러한 특성들을 고려하여 Node.js를 통해 웹 서버로 구동시켜 보도록 하려고 한다.

소스 코드를 다운받아서 미리 생성해놓았던 nodejs 폴더로 이동시킨다.

그리고 서버를 구동하기 위한 공유 소스코드를 생성한 main.js 파일에 작성한다. 아직 소스코드를 이해할 수 없다 하하

var http = require('http');
var fs = require('fs');
var app = http.createServer(function(request,response){
    var url = request.url;
    if(request.url == '/'){
      url = '/index.html';
    }
    if(request.url == '/favicon.ico'){
      return response.writeHead(404);
    }
    response.writeHead(200);
    response.end(fs.readFileSync(__dirname + url));
 
});
app.listen(3000);

명령 프롬프트에 main.js를 실행시킨 다음, 웹 브라우저 주소 창에 localhost:3000으로 접속을 하게 되면 홈페이지가 뜨면서 웹이 구동되는 것을 볼 수 있다.

Ctrl+C를 통해 웹 서버를 종료시키면 해당 주소로 접속되지 않는 것을 확인할 수 있다. 이를 통해 Node.js가 웹 서버로서 동작하고 있다는 것을 알 수 있다.

코드로 돌아와서 response.end() 안을 '22 Basic challenge:'+url로 작성하여 수정한 후 웹을 구동시키면 아래 그림과 같이'22 Basic challenge:'와 브라우저에서 접근할 때 전달된 /index.html 이 나오게 된다.

Node.js는 response.end() 부분에 어떤 코드를 작성하느냐에 따라서 사용자에게 전송하는 데이터가 바뀐다라는 것이다. 프로그래밍적으로 사용자에게 전송할 데이터를 생성하는 것이 Node.js가 가지고 있는 특징이라고 할 수 있겠다.

정리

Node.js와 Javascript에 대해서 무지하지만 간단한 코드를 가지고도 충분히 스스로 웹 서버를 구동할 수 있다는 것을 경험하면서 흥미를 가지게 되었다. 내일부터는 본격적으로 Javascript 언어를 다루게 되어 기대가 된다. 챌린지를 진행하면서 많이 배우고 성장할 수 있도록 노력해야겠다.

profile
할 수 있는 것부터 차근차근, 항해자의 공부 기록공간

0개의 댓글