상세 컨텐츠

본문 제목

시베리안 허숙희의 자바스크립트 비기닝 3

자바스크립트

by e7e 2023. 5. 30. 17:29

본문

비기닝2까지 기본 내장 모듈인 http를 이용해서 정적 웹서버의 초 기본 기능을 구현해 보았는데,

이 모든 기능 + 알파를 가진 express 모듈을 이용하면 소스는 더욱 더 간단해 진당.

자바의 스프링에  비유하면 mvc 프레임워크라 할 만하당.

 

이것은 기본 모듈이 아니라서 설치해야 한당

설치하는 김에 서버의 디렉토리 내용을 눈에 보이게 해주는 serve-index 모듈도 괜히 설치하장

아래 명령어로 설치하고서, package.json 파일에 어떤 변화가 있는지 눈으로 꼬옥 확인하장!

npm i express serve-index

 

자바에 maven repository가 있다면, node에는 npmjs 사이트가 있당! 

나중에 자주 방문해서 모듈을 검색하게 될 것이당. 모듈이 기본 사용법이 적혀 있어 아주 훌륭하당!

 

express - npm search

 

www.npmjs.com

 

아래 코드를 node server.js 로 실행한 뒤에 브라우져에서 localhost:272로 내용을 확인하장

import express from 'express';
import serveIndex from 'serve-index';

const serverPort = 272;

const app = express();

app.use('/',express.static("./public"),serveIndex('./public',{icons:true}));

app.listen(serverPort,()=>{
    console.log(`server is running on ${serverPort}`);
});

 

아래처럼 쪼메만 고치고 다시 실행시키고,  브라우져에서 localhost:272/e7e 의 결과를 확인해보장!

import express from 'express';
import serveIndex from 'serve-index';

const serverPort = 272;

const app = express();

// 요기가 쪼메 고친 부분
app.use('/e7e',express.static("./public"),serveIndex('./public',{icons:true}));

app.listen(serverPort,()=>{
    console.log(`server is running on ${serverPort}`);
});

느낌이 왔어야 하는뎅!!!~~~ 왔을 것이당!

serveIndex 부분을 지우면 파일리스트가 감춰지고,

일일이 정확하게 주소줄에 경로에 맞게 파일명을 적어줘야 한당!

 

이것으로 자바스크립트를 배운지 얼마 안 되신 분들은 혼란스럽겠지만(괜찮당!~~)

브라우져에서 자바스크립트를  공부할 수 있는 초 간단 정적 웹서버가 완성되었당!

 

서버(Server)란 무엇일까? 

    => 말 그대로 서비스 하는 사람을 의미한당. 현실에 비유하면 사장님이 되시겠당!

    => 물건을 팔 수도(쇼핑몰), 정보 서비스를(오픈 API) 할 수도 있당!

    => 컴퓨터 세계에서 서버프로그램의 서비스는 눈에 보이진 않지만 백그라운드에서 

         실행되고 있다해서 데몬(DAEMON - 악마)이라고도 부른당

   =>  악마는 눈에 보이진 않지만, 우리 맘속에 항상 같이 살고 있당!~~

 

고객(Client)이란 무엇일까?

  => 서비스를 요청하고 소비하는 사람이당

  => 웹 프로그램에선 브라우져가 서버에 요청을 보내고, 서버응답을 받아서 소비하니

        브라우져가 클라이언트라 하겠당!  

 

그럼 정적 웹서버란 무엇일까?

  =>  편의점에서 파는 포장된 김밥에 햄을 더 넣어주세요! 란 요구는 미친짓이당

        그냥 이미 가공된 대로 사야 한당!, 편의점은 정적 서버당!

 

 =>  중국집에서 짜짱면을 시키면서(서비스요청), 양파는 빼줘용(커스터마이징 요청) 하면

        주방장님께서 요리(응답 작성)시에 양파를 뺀 짜장면을 완성한당(응답 완성)

        요따구로 서버에서  사용자요청에 맞추어 응답을 커스터마이징(서버 프로그램언어 사용)

        할 수 있다면 그거슨 동적 서버당!

        톰캣은 자바를 주방장처럼 사용하는 동적서버라 하겠당!

        Node로 만든 서버는 자바스크립트로 커스터마이징 가능하니, 역시 동적서버다앙!

        곧 정적서버에 서버쪽 프로그램을 할 수 있는 언어(주방장)를 붙이면 동적서버가 된당

 

 =>  편의점 사장님(서버)이 중국집에 가서 턍슉을 시킨당

       요따위 상황은 편의점 사장님을 중국집 클라이언트로 맹근당!

       곧 서버는 다른 서버의 클라이언트가 될 수도 있당!

 

구멍 숭숭 난 부분은 점차 메워 나가도록 하장!, (메꿔 질깡?)

내 경우엔 김밥 보단 떡뽁이나 라뽁이가 더 땡긴당!

(주변의 오해와 강압으로 난 김밥을 더 자주 먹는당!, 가끔 킹받을 땐 냉면을 먹고 해장하장!)

 

https://www.youtube.com/watch?v=0zGDQ9r36p4 

 

관련글 더보기