8/22_8일차

자햐·2024년 8월 22일

교육

목록 보기
8/51

Node.js 소개 및 설치

node.js란
자바스크립트를 스크립트 언어 이상으로 프로그래밍 언어 역할을 할 수 있도록 지원하는 플랫폼. node.js를 통해 자바스크립트로 백엔드를 구현할 수 있다.

node.js라는 운동장(플랫폼)에서 자바스크립트가 뛰어놀며 백엔드에 관여할 수 있게 함

백엔드의 구조

<웹서버 - 웹 어플리케이션 서버 - 데이터베이스>

node.js로 웹 어플리케이션 서버를 만들 수 있음

node.js로 웹서버 만들기

require() : 이미 만들어져 있는 node.js의 모듈(예시 : http)를 부르는 함수(모듈 가져온 것)

createServer() : 서버 만드는 함수

HTTP 템플릿

<코드 설명>
let http = require('http');
-> 'http'라는 값을 가지고 있는 모듈을 불러온다는 의미

http.createServer(onRequest).listen(8888);
-> http 모듈을 통해 서버를 만들었는데 onRequest함수로 통신을 할 것이고, 클라이언트와 이야기할 때에는 8888이라는 주파수로 맞출 것이다.

response.writeHead(200, {'Content-Type' : 'text/html'});
-> 웹서버가 클라이언트에게 응답을 해줄 때, head를 적을 것인데, 200코드라는 내용을 적을 것이고, 내가 너에게 줄 response의 타입은 html타입이다.

response.write('Hello Node.js');
-> 바디에 들어갈 내용은 이렇다.

response.end();
-> 전송!


포트번호(port number)
클라이언트와 서버가 대화를 하고 싶다면, 같은 주파수를 맞춰야 함

HTTP 프로토콜 템플릿
[head][body] : 웹 페이지 화면에 뿌려질 내용을 담음

head에 들어가는 내용 :
1. 통신 상태가 어떤지 알려줌
예시 : 200 - 정상이다
404 - 클라이언트가 원하는 걸 못 찾겠다.
500 - 서버가 이상하다.
이 숫자들을 http (status) code 라고 부른다.
2. 응답이 어떤 형태인지 적어줌. 예시 : html

server.js 모듈화

현재 서버의 유연성이 떨어짐
만들어진 우리 서버도 모듈화하여 편하게 쓸 수 있게 해보자.

내가 만든 server을 모듈처럼!
node.js가 미리 만들어둔 모듈을 우리가 require('모듈 이름'); 이렇게 사용한 것처럼, 우리가 만든 server도 모듈처럼 다른 javascript파일에서 사용할 수 있다.

exports.start = start; <- 바깥에서도 start함수 모듈을 사용할 수 있도록 함

URL 읽어내기

Uniform Resource Locator
인터넷 상에서 웹 페이지가 어디있는지 "위치"를 알려주는 주소.
쉽게 말해 웹 페이지 주소임.

console.log를 통해 콘솔에 pathname을 찍어보면, pathname은 8888뒤에 나오는 경로를 뜻함을 알 수 있다.

localhost : 내 컴퓨터 주소

서버는 다른 역할을 할거고, pathname은 누가 전달을 해주는 역할을 할 것인가? : router

router : 경로를 정해주는 친구

((어려워..))

Url에 따라 다른 콘솔 찍기

server와 router의 역할

Server : request를 받습니다.
Router : request의 url에 따라 루트(route)를 정해줍니다. = 어디로 갈지 길만 정해준다.

그렇다면 각 루트(route)에서 할 일은 누가 하는가?

index.js -> server.js -> router.js -> ???

((다시))

Url에 따라 프론트엔드에 다른 response 보내기

(WEBSTART code 확인)

과제 제출!!

profile
산업과 예술의 만남에 있는 예비 개발자..

0개의 댓글