[런타임이란]
- 프로그래밍 언어가 구동되고 있는 환경
- 자바스크립트 런타임
1) 웹브라우저 : 웹 자원에 접근하기위한 클라이언트 사이드 계층 구조(런타임)
2) node.js : 자바스크립트 런타임, V8엔진 등장(속도 향상, 크롬 브라우저의 V8 기반 nodejs를 특정 모듈을 사용해 웹서버 구축)
- 이벤트 기반 비동기 I/O 처리 서버
=> 클라이언트 요청을 이벤트로 처리 : 이벤트 큐 -> 이벤트 루프 -> 응답
=> 이벤트 루프(싱글쓰레드)가 큐에 담긴 이벤트 처리 후 응답, 긴 I/O 경우 별도 쓰레드풀(worker)에서 처리 후 큐에 리턴, 루프 처리
- 런타임 구성 : 런타임 라이브러리 / 런타임 환경으로 구성됨
1) 런타임 라이브러리 : 프로그램(js)을 관리하기위한 특정 컴파일러, 가상머신이 사용하는 기본 코드의 라이브러리, 프로그램
2) 런타임 환경 : 프로그램이 실행되는 동안 프로세스나 프로그램을 위한 소프트웨어 서비스를 제공하는 가상 머신의 상태
[코어와 쓰레드]
- 코어 : CPU에 내장된 처리회로의 핵심 부분, cpu 당 1코어가 당연했으나 요즘은 멀티코어(듀얼, 쿼드, 헥사, 옥타)
- 멀티코어 : 싱글 코어라면 2번 처리해야할 것을 듀얼 코어는 1번에 끝낼 수 있음
=> 소프트웨어가 싱글코어 연산 처리 작업만 지원한다면 오히려 싱글코어가 빠를 수 있음
- 프로세스 : 프로그램이 실행되기위해 메인 메모리(램)에 저장된 상태
1) OS는 효율적인 프로세스 관리를 위해 프로세스 제어 블록을 같이 생성하는데, 이것이 쓰레드
2) OS가 A라는 프로세스 수행 도중 B 프로세스를 수행할 때 수행 도중이었던 프로세스의 정보를 쓰레드가 가짐
3) 프로그램은 디스크에 저장된 파일과 같은 수동적인 개체, 프로그램이 메인 메모리에 적재되어 처리를 시작할 때 프로세스가 됨
- 쓰레드 : 데이터의 실행 흐름(통로), 코어가 일을 수행할 때(프로세스 내 존재) 팔과 다리의 역할
1) 싱글쓰레드라면 코어가 처리를 할 때 하나의 길로 송 수신을 한다는 것
2) 4코어 8쓰레드 : 1코어당 2쓰레드로 처리, 송수신 길이 다른 것
[기타 - 자바스크립트 단점]
- 스크립트 언어로서 실행될 때까지(코드 수행) 에러 확인을 하기가 어렵다는 단점
- 동적 언어의 단점 : 동적 타이핑, this 바인딩 등 - 타입스크립트로......?!
'javascript' 카테고리의 다른 글
[자바스크립트] ECMA6 - let, const 블록 레벨 스코프 (0) | 2017.06.16 |
---|---|
[자바스크립트 자료구조] List (0) | 2017.06.13 |
[자바스크립트] 비동기처리 Promise (0) | 2017.05.30 |
[자바스크립트] 객체지향 프로그래밍하기 (0) | 2017.05.26 |
[API] nodejs 파일 업로드 모듈 (0) | 2017.05.23 |
댓글