티스토리 뷰
메인페이지 브라우저 화면 캡처


백엔드의 구조
웹 서버의 역할
: 웹 서버는 정적 페이지에 대응합니다. 동적 페이지에 대한 처리는 직접 처리하지 않고, 웹 어플리케이션 서버에게 전달합니다.
*정적 페이지란, 화면의 내용/데이터 등의 변동이 없는 페이지를 말합니다.
*동적 페이지란, 데이터 처리/연산을 통해 화면의 내용, 데이터가 변하는 페이지를 말합니다.
웹 어플리케이션 서버
: 웹 어플리케이션 서버는 동적 페이지를 처리합니다. 필요한 데이터 연산을 위해 데이터베이스와 연결되어 있으며 데이터 조회/수정/삭제에 대한 처리를 요청합니다.
*데이터베이스란, 데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체를 말합니다.
node.js란?
: node.js는 자바스크립트를 스크립트 언어 이상으로 프로그래밍 언어 역할을 할 수 있도록 지원하는 플랫폼입니다.
즉, 우리는 node.js를 이용해서 자바스크립트로 백엔드를 구현할 수 있습니다.
node.js로 웹서버 만들기

- 웹 서버를 만들기 위한 http 모듈을 불러옴
- 클라이언트(브라우저)가 요청하면, onRequest 함수가 실행되며
- 응답 상태를 200(성공)으로 설정하고,
- 응답 형식은 HTML이라고 알리며,
- 클라이언트에게 "hello node.js"를 보냄.
- 서버를 8888번 포트에서 실행하고, 클라이언트 요청을 기다림
- localhost:8888에 접속하면 "hello node.js"가 화면에 나타남!
=onRequest 함수가 클라이언트의 요청을 받아서 응답을 처리한다.
클라이언트는 **포트 번호(예: 8888)**를 통해 서버에 요청을 보낸다
./ : 현재 디렉토리와 같은 폴더에 들어있는 경로


port 번호 : 클라이언트와 서버가 대화를 하고 싶다면, 같은 주파수를 맞춰야 함
http 프로토콜 템플릿
- head
1. 통신상태가 어떤지 알려준다.
ex) 200 :정상
404: 클라이언트가 원하는 걸 못 찾겠다.
500: 서버가 이상하다.
-->HTTP (status)code
2. 응답이 어떤 형태인지 적어줘요. 예를들어 html이다.
- body
내가 만든 server를 모듈처럼
./ : 현재 디렉토리와 같은 폴더에 들어있는 경로
Node.js가 미리 만들어둔 모듈을 우리가 require('모듈이름'); 이렇게 사용한 것 처럼,
우리가 만든 server도 모듈처럼 다른 javascript파일에서 사용할 수 있다.


자동으로 실행되는 것이 아닌 start를 눌렀을 때만 실행되도록 하기



자바스크립트에서 만든 함수는 이 파일 안에서만 함수역할을 할 수 있는데, 밖으로 빼내고 싶으면
exports.start = start;
uniform resourcen Locator
: 인터넷 상에서 웹 페이지가 어디있는지 위치를 알려주는 주소입니다.
쉽게 말해, 웹 페이지 주소이다.



server와 router의 역할
index.js : 코드를 구동시키는 역할
router.js : 경로를 찾는 역할, 경로를 분배하여 알려줌
server.js : 요청, 응답 하는 역할
server : Request를 받습니다.
Router : Request의 URL을 따라 루트(route)를 정해줍니다. = 어디로 갈지 길만 정해줘요!
각 루트
각 루트에서 할 일은 누가?
requesthHandler.js : router.js가 경로를 분배하여 각 경로로 왔는데 뭐 해야 할지 알려주는 역할
오류 ;

