Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodeJs uses v8 chrome engine that runs javascript in browser
engine: takes code, running in the web, compiles javascript to machine code
v8 is written in c++
node.js's role (in web development)
Run server : Create server and Listen to incoming Requests
Business Logic: Handle Requests, Validate Input, Connect to Database
Responses: Return Responses(Rendered HTML, JSON, ...)
프로그래밍 언어가 구동되는 환경. 어느 환경을 기반으로 프로그래밍이 동작하고 있는지에 대한 환경을 의미한다. JavaScript Runtime은 Javascript 환경을 기반으로 프로그래밍이 동작한다는 의미이다.
Weakly Typed Language
데이터의 자료형(type)이 정해져있는 것이 아니라, 유동적이다.
즉, 처음에 선언하기를 배열로 했어도 추후 문자열, 숫자 등으로 변경될 수 있다.
Object Oriented Language
객체 지향 언어. 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 객체들의 모임으로 파악하고자 하는 것이다.
각각의 객체는 메세지를 주고받고, 데이터를 처리할 수 있다. 자바스크립트는 코어(core)에 Math, Object, Array, String 등의 객체가 있는 언어이다.
Versatile language
Browser 뿐만 아니라 Server에서도 실행, 또는 수행이 가능한 언어이다.
Weakly Typed Languagle - No explicit type assignment. Data types can be switched dynamically
Object-Oriented Language - Data can be organized in logical objects, Primitive and reference type
Versatile language - Runs in browser & directly on a pc/server, can perform a board variety of tasks