1 minute read

웹서버의 역할

웹서버 기능

  • 클라이언트로부터 요청받아 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();