Server 는 무엇이냐
클라이언트가 요청을 하면 서버가 그에 응답하여 요청한 내용을 보내주는 프로그램
예를들어
호프집 손님: 클라이언트
호프집 알바생:서버
호프집 사장님(호프집 알바생 메이커): 서버개발자
서버개발자가 짜는 코드 방식
어떤 사람이 www.google.com 으로 접속하면
메인 html을 전송해주라
서버: 요청을 받으면 요청한 내용을 보내주는 프로그램
여기서 요청이 뭐냐?
HTTP 요청이라는건데
크게
1. 읽기(GET): "~~ 페이지 읽고싶음" 라고 요청
2.쓰기(POST): "새로운 글을 생성해 주세요" 라고 요청
3.수정(PUT): "~~글 수정해주세요" 라고 요청
4.삭제(DELETE): ""~~글 삭제해주세요" 라고 요청
네가지 형식이 있다.
이 네가지 형식을 통해서 사용자(클라이언트) 가 서버에 요청할 수 있다.
그래서 서버개발자(Node.js) 가 하는일은 뭐냐
Node.js 를 이용해서 JS문법으로 서버를 짜는 일을 한다.
그러면 Node.js 는 뭐냐?
Node.js 는 무엇이냐
Node.js 를 알기 전엔 JavaScript 를 알아야 한다.
자바스크립트라는 언어는 HTML을 조작하기 위해서 만든 언어 였다.
웹페이지를 다이나믹하게 바꿔주기 위해 만든 언어
그런데
자바스크립트를 누가 동작시키냐면,
브라우저들이 자바스크립트라는 언어를 해석해서 동작시킨다.
브라우저는 해석한 내용을 동작시키기 위해서 각자 엔진을 가지고 있는데,
대표적으로
구글 크롬의 V8,
모질라의 스파이더몽키,
익스플로어의 차크라
등이 있다.
여기서 구글 크롬의 V8 을 눈여겨 봐야하는데
구글 크롬의 V8 엔진은 무지하게 빠르다. 그래서 요즘사람들은 대부분 익스플로어 안쓰고 크롬으로 옮겨갔다.
자바스크립트 해석을 잘해서 그렇다.
이 V8 을 엔진을 브라우저에서 쏙 빼내서 엔진 자체에 살을 좀 붙여서 엔진만 출시하였는데
그게 Node.js 다.
Node.js 는 자바스크립트를 브라우저 말고도 다른 환경에서 실행(런타임)할수 있게 만들었다.
이 Node.js덕분에 자바스크립로 여러가지 PC프로그램 을 만들수 있게 되었고, 서버 도 만들 수 있게 되었다.
Node.js 로 서버를 만드는 이유 (Node.js 의 특징)
서버는 요청을 처리하는 기계(프로그램)이다.
이 서버를 Node.js로 만들면 Node.js의 특징을 활용해서 쉽게 개발이 가능하다.
Node.js의 장점
Node.js 는 전통적인 서버와는 다르게 들어오는 요청을 즉시 처리하는게 아닌 요청이 들어오는것을
Non-blocking I/O 라는 특성이 있어
모든 요청을 한번에 먼저 받고 처리속도가 빠른것부터 처리한다.
이것은 Node.js의 강점 으로 볼 수 있는데 ,
요청이 매우 많은 서비스를 한꺼번에 처리하기 좋다.
(일반 서버도 물론 스케일 업을 통해 처리가 가능하다)
또한,
코드가 매우 짧고 쉬워서 빠른 개발이 가능하다. (아직 제대로 배워보지는 않았는데 그렇다고함)
빨리 설치하고 배워봐야겠다.
Node.js 설치
구글에 검색해서 LTS 다운받으면 됨 (최신버전은 오류가 날 수있으니까 LTS 추천)
터미널에서 node-v 라고 쳐보면 설치된 버전이 나옴
node 라고 치면 잘실행된다.
이제 VScode 에서 터미널 실행해서 잘 쓰면됨
express
자바 -> 스프링 이 공식이면
노드 -> 익스프레스 다.
익스프레스는 서버를 쉽게 만들어주는 라이브러리다.
express 를 설치하기전에 터미널에
npm init
을 실행 해서 내가 어떤 라이브러리를 설치했는지
package.json 이라는 파일에 저장해둔다.
entry point 에 내가 원하는 파일명으로 적어주면됨.
나는 서버 만들거니까 server.js 로 만듬
엔터엔터 연타하면
package.json 파일이 생성된다.
이제 익스프레스 를 설치 해보자
npm i express
yarn 써도됨
설치가 잘 되었으면 package.json 에 추가된 모습이 보인다.
또한 node_modules 라는 폴더가 생성되고 그안에 익스프레스와 관련된 모든 라이브러리들이 들어간다.
설치가 끝났으니 본격적으로 GET 요청을 처리해보자..
파일 하나 만들고 코딩시작
express 초기 설정
8080에 만들었으니까 잘 들어오는지 확인하려면
브라우저에
localhost:포트번호
로 확인가능
GET 요청 처리
처리잘됨.
(터미널에서 서버 껏다가 다시 켜야됨 )
1일차 끝
'개발 일지 > Node.js' 카테고리의 다른 글
Node.js [4/50]일 (1) | 2023.01.21 |
---|---|
Node.js [3/50]일 (0) | 2023.01.20 |
Node.js [2/50]일 (1) | 2023.01.18 |
Node.js 입문 [0/50]일 (0) | 2023.01.17 |