JAVA와 JAVASCRIPT의 차이점
JAVA는 컴파일 언어로 하드웨어에 JVM이 내장 돼있어야지 실행이 가능한데
JAVASCRIPT는 인터프리터 방식으로 별도의 컴파일 없이 바로 실행 할 수 있다.
웹 브라우저에서 자바 스크립트 엔진을 내장하고 있어 브라우저에서 직접 실행 가능하다.
비동기적 실행
손님도 받는 동시에 커피도 만들어 전달하는 방식이다.
JavaScript로 예시를 들면 모든 일을 이벤트 루프에 쌓아 놨다가 메인 스레드가 본인 할 일이 끝나면 이벤트 루프에 쌓아 놓은 일 처리를 FIFO순으로 한다.
결론 이벤트 루프에 일을 저장하지 실행하지 않고 메인 스레드가 본인 할일 이 끝난 다음에 다시 이벤트 루프로 일 처리를 하러 가기 때문에 비동기다.
- “이동”이 적힌 팝업창의 확인을 누르자마자 setTimeout이 이벤트 루프에 등록된다 (이 때부터 3초 카운트 시작).
- 1이 실행되는 중간에 “안녕”이 적힌 팝업창이 뜬다.
→ 3초 전에 팝업의 확인버튼을 누르면 남은 초를 마저 세고 이동한다.(나중에 이동하는 것처럼 보이게 된다.)
ex. 1초 지나고 확인 버튼을 누르면, 2초 뒤에 이동한다.
→ 3초 뒤에 팝업의 확인버튼을 누르면 바로 test3.html로 이동한다.
⇒ 스레드와 다르다.
동기적 실행
순차적인 실행으로
손님 주문 받고 커피 다 만들고 전달한 뒤에 다음 손님의 주문을 받는 식이다.
동기적 프로그램:손님 주문 받고 커피 다 만들고 전달한 뒤에 다음 손님의 주문을 받는 식이라 생각하면 된다.
자바는 컨텍스트 스위칭이 일어나므로 스크립트가 훨신 일 처리 속도가 빠르다.
- 결론:컨텍스트 스위칭(동기적 실행)이 UX는 좋지만 일처리 속도는 비동기적 실
톰캣이 멀티 스레드 기반. node.js는 단일 스레드 기반.
→ db에서 조회를 하는 것들은 스레드가 wait가 걸린다(I/O가 있어서)
→ 웹에 가장 최적화 된 것은 단일 스레드
JavaScript
JavaScript를 사용하는 목적은 html에 이벤트(동적)으로 만들려고 하는거다.
(get요청과(select), post요청(insert,delte,update)
→Java(JVM)으로 실행 되 듯 Javascritp(Browser)로 실행된다.
→script는 엑터가 필요한데 여기서 얘기하는 배우는 html이 된다.
→뒤에 script가 붙는 언어들은 다 혼자서 독립적으로 존재하지 못하는 누군가 에게 의존이 필요한 언어다.
→자바 스크립트는 HTML에게 의존한다.
→JavaScript는 인터브리터 언어다
인터브리터
: 코드를 한줄 씩 읽고 해석하는 방식을 의미한다.
값이 들어가면서 변수의 타입이 정해진다Node.js
브라우저의 v8엔진이라고 있다.(javascript의 runtime 환경)
v8만 분리 시켜서 Node.js가 만들어졌는데
Node.js는 웹 브라우저 바깥에서 자바 스크립트 코드를 실행 할 수 있다.
모든 언어는 모든 코드를(buffuer, soket 등) 구현 가능 하지만 jre가 없는 것 들이 있기 때문에 불편하다.
(실행방식)
javascript → Node.js → os
nod.js는 정확히 자바에게 jvm이 있다면 javascript의 런타임이다.
JavaScript 단축키
‣
• Windows : Shift + Alt + F :자동 정렬
Share article