Javascript와 Nodejs

이규황·2021년 11월 17일
0

개발 공부 정리

목록 보기
4/14

JavaScript는 독립적인 언어가 아니라 스크립트 언어

특정한 프로그램 안에서만 동작을 할 수 있습니다.

자바스크립의 발전에 가장 큰 변곡점이라 할 수 있는 것은 과저 구글에서 개발한 gmail입니다.

gmail은 순수한 자바스트립트와 html로만 개발했음에도 뛰어난 성능을 보여줬고, 그 이후 구글은

크롬이나 자바스크립트 V8 엔진등을 선보이며 웹 개발에 많은 영향을 끼치게 되었습니다.

자바스크립트는 특정 프로그램 안에서만 사용가능했기 때문에,

단점

크롬, 파이어폭스, 사파리, 익스플로러 등 이런 웹 브라우저가 없으면 사용할 수 없는 단점이 공존했습니다.

이에 따라 client개발을 위한 용도로만 국한되어 있었습니다

한계 극복

그래서 이 한계를 극복하기 위해서 NODE.js 가 등장하게 되었습니다. node.js 대한 이해는 먼저 자바스크립트를 배워야 합니다. 그 이유는 node.js는 JavaScript 기반으로 개조하여 사이드 언어로 만들어졌기 때문입니다.

Node.js

Node.js의 등장은 터미널 프로그램(원도우 cmd, mac terminal 등)에서 node를 입력하여 브라우저 없이도 실행할 수 있게 됐습니다.

JavaScript를 크롬(Chrome)같은 브라우저에서만 쓰는 것이 아닌 브라우저 밖. 즉, 내 컴퓨터에서 다양한 용도로 확장하기 위해 만들어진 것이 바로 Node.js입니다.

Node.js를 이용하면 내 컴퓨터에서 File System를 이용할 수 있고, 서버를 만들 수도 있고 크롤링도 할 수 있습니다.

여기서 중요한 것은 Node.js를 통해 서버를 만들 수 있다는 점에서 차별점이 있었습니다.

이전까지는 server-clint 웹사이트를 만들 때 웹에 표시된 부분은 JavaScript를, 서버는 루비나 자바 등을 이용해야만 했는데,

마침내 한가지 언어로 전체 웹페이지를 만들 수 있게 되었습니다.

Node.js 자체는 웹서버가 아니다.

Node.js를 이용하여 Express같은 라이브러리를 이용해서 서버를 만들곤하지만, Node.js 자체는 웹서버가 아닙니다. 위에 말씀드렸다싶이 Node.js는 자바스크립트 런타임(JavaScript Runtime)으로 Node.js는 웹 서버를 만들 수 있는 하나의 방법에 불과하다.

크롬(Chrome)과 Node.js는 따라서 같은 엔진(Google의 V8 엔진)을 공유하지만, 다른 런타임(runtime) 환경입니다. 즉 크롬(Chrome)과 Node.js라는 다른 실행 환경을 가지고 있다고 할 수 있습니다.

Node.js의 장점

1. 비동기 처리로 인해 매우 빠른 고성능 서버 구현

2. 한 가지 언어만으로도 서버-클라이언트 모두 개발

  1. 구글의 최신화된 VB Engine을 이용

  2. 적은 양의 자원으로 일을 처리

  3. 높은 커뮤니티 이용율 및 참여율

정리

앞서 말한 자바스크립트와 노드js를 정리하면

자바스크립트는 자체적으로는 브라우저에서만 동작하며 document를 다룹니다.

node.js 데스크탑에서 동작하며 JS언어로 서버개발이 가능하도록 해주는 환경이라고 할 수 있습니다.

express

node.js가 나오면 항상 같이 나오는 개념으로 express가 있습니다

Express는 Node.js의 framework입니다.

framework라는 것은 어떠한 직업을 쉽게 완성하기 위한 라이브러리 집합체입니다.

작업을 시작부터 끝까지 라이브러리로 지원하는 점이 단순한 라이브러리와 차이가 나는 부분입니다.

특히 익스프레스는 가볍고 유연하게 웹 프레임웍을 구성할 수 있는 장점이 있는데,

자바스크립트 코드로 작성된 다양한 기능의 미들웨어는

개발자가 필요로 한 것만 선택해 익스프레스와 결합해서 사용할 수 있는 장점을 가지고 있습니다.

크롤링

크롤링이란 web상의 존재하는 Contents를 수집하는 작업을 말합니다.

  1. html페이지를 가져와서, html/css등을 파싱하고, 필요한 데이터만 추출하는 기법
  2. open api를 제공하는 서비스에 open api를 호출해서, 받은 데이터 중 필요한 데이터만 추출
profile
도전중

0개의 댓글