[웹프로그래밍응용] node.js 소개
웹서버의 역할
웹서버 기능
- 클라이언트로부터 요청받아 HTML형태의 데이터를 전송해준다.
- 클라이언트와 HTTP를 사용하여 통신한다.
- 서버가 요청을 받으면, 다른 응용 서버에 요청하거나 데이터 베이스에서 데이터를 취합하여 처리한다.
- PHP, JSP와 같은 서버 사이드 스크립트 언어를 지원한다.
주요 웹 서버
- Apache2
- IIS (마이크로소프트 사 - 윈도우에서 사용)
- NginX
node.js 란?
특징
- 오픈소스로 웹 서버에 제공되는 소프트웨어 플랫폼이다.
- 운영체제에 구애받지 않는다.
-
PHP, JSP와 상관없이 자바스크립트로 웹서버 동작이 가능하다.
- Asynchoronous Programming 비동기식 프로그래밍으로, 요청을 받으면 그 다음 요청은 대기하는 방식과 달리, 요청을 받으면 다른 응용 서버에 작업을 지시하고 바로 다음 요청을 받아 처리한다.
주요 역할
- 웹서버 기능 수행
- 동적인 웹을 생성한다.
- 서버의 데이터베이스에 접근하고 실행할 수 있다.
node.js 모듈
모듈 : 일종의 자바스크립트 라이브러리
- 내장모듈 : 시스템에서 기본적으로 제공하는 기능
- 사용 :
변수 = require('모듈이름')
➡️ ex.http = require('http');
- 호출 :
변수.함수이름
➡️ ex.http.createServer();
- 사용 :
- 사용자 정의 모듈 : 사용자가 직접 입맛에 맞게 구현한 뒤 포함시켜 사용
- 정의 :
exports.함수이름 = function(){...}
- 함수를 저장한 파일이름이 모듈 이름
- 정의 :
코드 예제
http 모듈 사용해보기
var http = require('http');
http.createServer(function(res, req){
res.writeHead(200, {'Content-Type':'text/html'});
res.end();
}).listen(8080);
사용자 정의 모듈 사용해보기
// mymodule.js
exports.DateTime = function(){
return Date();
}
var http = require('http');
var date = require('./mymodule');
http.createServer(function(res, req){
http.writeHead(200, {'Content-Type':'text/html'});
http.write("Date and Time : " + date.DateTime());
http.end();
}).listen(8080);
write( ) / writeHead( )
write는 그대로 문자열을 출력함
http.write("<h2>hello<h2>");
➡️ <h2>hello<h2>
가 출력됨
http.writeHead(200, {'Content-Type':'text/html'});
http.write("<h2>hello<h2>");
➡️ hello
가 출력됨. 즉 html이 번역되어 출력됨
http.createServer(function(res, req){
http.writeHead(200, {'Content-Type':'text/html'});
http.write(req.url);
http.end();
}).listen(8080);
➡️ 주소가 출력됨.
파일시스템 다루기
-
var fs = require(‘fs’);
- 파일 읽기 : fs.readFile();
- 파일 생성 : fs.appendFile();
- 파일 갱신 : fs.writeFile();
- 파일 삭제 : fs.unlink();
- 파일 이름 변경 : fs.rename();