원래 자바스크립트는 브라우저만 해석할 수 있었다 (html, css도 마찬가지)
브라우저는 자바스크립트를 컴파일 해서 인터프리터 모드로 실행 시킴
자바스크립트를 실행시키는 런타임 환경
⇒ 브라우저에서 해석되는 것이 아니기 때문에 응용 어플리케이션을 만들 수 있다 (앱도)
⇒ 브라우저에서만 돌아가는 것이 아닌, 모든 것을 만들 수 있다
자바 스크립트로 소켓을 짜면 웹 서버도 만들 수 있다
자바 스크립트는 소켓 없는데?????
-OS가 들고 있는 소켓을 빌려오면 됨 : 시스템 콜 (shell 언어로 커널한테 명령)
shell( 사용자) → 커널 (OS)→ 하드
⇒ 자바 스크립트로 모든 걸 할 수 있게 된다
또는 express 라이브러리를 이용해 서버를 만들수도 있어
node js 왜 쓰나요?
: 자바 스크립트는 브라우저가 아닌 node 에서 돌리기 위해!
그말인 즉슨, *cmd 열어서 node 명령어로 .js 파일을 실행할 수 있다는 것
node js 내부적으로 v8Engine을 가지고 있다
v8Engine : V8은 웹 브라우저를 만드는 데 기반을 제공하는 오픈 소스 자바스크립트 엔진
리액트는 node 위에서 돈다
express 는 node 를 기반으로 돌고 있는 웹서버
어떤 식별자로 요청이 들어오면 그냥 응답하는 것이 아니고 react 한테 전달,
react 가 무언가를 변형해서 응답함 (transform)
또 요청이 들어왔고, 파일을 찾아서 react 한테 던져주면