HappyCoding/JavaScript

[JavaScript] NodeJS : JS런타임 환경

목차

  1. node.js란 무엇일까?
  2. 왜 node.js를 배워야 하지
  3. node의 특징 4가지
  4. node 동작 방식, 내부 구조 살펴보기
  5. 전통적인 서버와 node 서버의 장점 단점

node.js란 무엇일까?

  • html, css만으로 웹사이트 만들었는데, 95년 js가 도입되면서 많은 브라우저에 javascript engine이 탑재된다.
    • 사파리(JavaScriptCore), 파이어폭스(SpiderMonkey), MS 인터넷 익스플로러(Chakara), 크롬(V8, JIT: Just-in-time compilation), MS에지(2021, V8차용)
  • JS와 JS엔진 성능이 좋아지고, 웹 시장 전 세계적으로 호응도 얻게 되면서 많은 개발자들이 JS 배우고 웹사이트 웹 애플리케이션 만들게 된다.
  • 1981 Ryan Dahl
    • JS로 모든 걸 다 하면 얼마나 좋을까?
    • 2009년에 node 개발 출시
  • Node.js
    • node.js is a JavaScript runtime built on Chrome's V8JavaScript engine.
    • open-source
    • 백엔드에서도 사용할 수 있는 자바스크립트 런타임 환경이다.
    • 브라우저 밖에서도 js 코드로 모든 걸 할 수 있게 해주는 런타임 환경
    • "JavaScript everywhere"문구 첫걸음
  • JavaScript
    • browser 위 : 동적인 웹사이트, 웹 애플리케이션 만들 수 있다.
    • node.js 위 : 노드가 설치된 모든 컴퓨터에서
      • backend&server(serverside rendering)
      • front-end
      • Scripting & automation (이전엔 python, shell script)
  • 사용 예
    • netflix : sever side rendering( powerful SPA)
    • media, real-time chat, e-commerce, IOT payment processing, crowdFunding 등 enterprise web service
  • javascript
  • frontend
    • JavaScript 언어는 문법만 정의
      • 브라우저 위에서 동작하려면 브라우저에서 제공하는 WebAPIs 이용해야 함
    • WebAPIs 예
      • DOM APIs : 요소들을 동적으로 제어
      • Network APIs : 네트워크 요청, 응답
      • 그 외 Audio/Video APIs, Storage APIs
        • web api 브라우저 환경에서 어떻게 동작하는지 궁금하다.
  • Node.js
    • Node.j API
      • Console, Crypto, HTTP, File, OS, Path, Stream 등
    • node api에 대해 공부하자.
  • 프로그래밍 언어 : 프로그램을 만들기 위해 필요한 기본적인 문법
  • 그 외에 다양한 동작을 하기 위해서는 platform에서 제공하는 API 사용해야겠지.!
    • node.js와 같은 런타임 환경에서 제공하는 api들! 잘 배워두자