JavaScript

박선규's avatar
Feb 19, 2024
JavaScript

JAVA와 JAVASCRIPT의 차이점

📌
JAVA는 컴파일 언어로 하드웨어에 JVM이 내장 돼있어야지 실행이 가능한데 JAVASCRIPT는 인터프리터 방식으로 별도의 컴파일 없이 바로 실행 할 수 있다. 웹 브라우저에서 자바 스크립트 엔진을 내장하고 있어 브라우저에서 직접 실행 가능하다.

비동기적 실행

📌
손님도 받는 동시에 커피도 만들어 전달하는 방식이다. JavaScript로 예시를 들면 모든 일을 이벤트 루프에 쌓아 놨다가 메인 스레드가 본인 할 일이 끝나면 이벤트 루프에 쌓아 놓은 일 처리를 FIFO순으로 한다. 결론 이벤트 루프에 일을 저장하지 실행하지 않고 메인 스레드가 본인 할일 이 끝난 다음에 다시 이벤트 루프로 일 처리를 하러 가기 때문에 비동기다.
  1. “이동”이 적힌 팝업창의 확인을 누르자마자 setTimeout이 이벤트 루프에 등록된다 (이 때부터 3초 카운트 시작).
  1. 1이 실행되는 중간에 “안녕”이 적힌 팝업창이 뜬다.
    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

p4rksk