지난번에 node.js의 http 내장 모듈로 웹 서버 만들기를 알아봤다.
이번에는 아주 살짝 변화를 준 웹 서버 만들기 코드다.
일단 코드부터 공개하겠다. 파일 이름은 app.js다
이 코드를 작성한 후에 node app.js를 터미널에서 실행하면
이런 화면이 뜬다.
지난 글과 비교해 보자.
2023.11.18 - [개발일기/node.js] - http 내장 모듈로 웹 서버 만들기_01
기존에 'http'인수를 넣은 require메서드의 반환값을 할당한 상수 http의 createServer메서드 안에 콜백함수를 호출했다.
여기서 이 createServer는 EventEmitter를 상속받았기에 listen 메서드를 호출해 그 인수로 포트 번호와 콜백함수를 삽입했다. 포트번호 8080에 들어가는 이벤트가 요청되면 즉, 웹 브라우저 주소창에 localhost:8080을 치고 들어가면 화면에 들어갈 수 있다.
결국 지난 글은 딱 하나의 http.createServer 메서드로 웹서버를 만드는 과정을 보여줬지만 코드의 가독성이 현저하게 떨어진다.
이번 코드에서 눈에 띄는 점은 상수 http 밑에 또 다른 상수 server를 만들었다. 즉, 상수 server에 http.createServer라는 함수이자 객체를 할당한 것이다.(참고로 자바스크립트에서 함수는 일급객체이다.)
그러면 확연히 차이가 드러날 것이다. 내부 소스를 없앤 껍데기 코드 블록을 비교해보자.
뭔가 아래 코드가 훨씬 더 깔끔해졌다고 볼 수 있다. 상수 server 객체 안에 있는 listen메서드에 포트번호 8080을 number타입으로 넣은 후 server.on()이라는 이벤트 메서드를 호출했다. 인수로 'listening'이라는 이벤트를 넣고 그다음 인수로 서버 대기를 확인하는 콜백함수를 넣었다.
맨 밑에 있는 server.on 안에 있는 인수 'error'도 마찬가지로 이벤트에 속한다.
물론 자바스크립트가 많이 익숙하신 분들은 위, 아래 코드 전부 다 상관없이 편하게 읽거나 작성할 수 있겠지만 초보자인 경우는 아래코드로 조금씩 Node.js를 익히고 자바스크립트도 익혀나가자.
이 글에서 제대로 설명하지 못한 이벤트 메서드, EventEmitter 등은 차차 내가 완전히 숙지한 다음에 포스팅을 해야겠다.
'개발일기 > node.js' 카테고리의 다른 글
Node.js - path모듈과 static미들웨어 (1) | 2023.12.17 |
---|---|
Node.js - http 내장 모듈로 웹 서버 만들기_01 (0) | 2023.11.18 |
리눅스(LINUX)에 node.js 설치하기-centOS (0) | 2023.08.14 |
Node.js란 무엇일까? (0) | 2023.04.15 |
node.js 시작 (0) | 2023.04.09 |