on
JavaScript TypeScript
JavaScript TypeScript
자바스크립트
인터프리터 언어
동적 타입 언어
런타임에 타입이 결정되는 언어
클라이언트 측 스크립팅 언어
타입스크립트
자바스크립트에 타입을 부여한 언어
자바스크립트와 달리 브라우저에서 실행하려면 파일 변환(컴파일)이 필요한 컴파일 언어
정적 타입 언어
컴파일 언어라서 미리 타입을 체크하여 오류를 방지할 수 있음
https://velog.io/@pluviabc1/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%99%80-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%B0%A8%EC%9D%B4%EC%A0%90
+) PHP와 JavaScript 비교
출력값은 같지만 JS는 입력값+출력값 모두가 결과로 나오고, PHP는 출력값만 나온다.
PHP는 서버 사이드 언어라서 PHP 인터프리터 엔진 에게 파일 처리 맡겨서 PHP를 해석한 다음에 그 결과를 웹서버에 보내주면 그걸 다시 웹 브라우저에게 전달해주는 것
Client가 .php파일을 서버에 요청하게 되면 서버에서는 .php보고
php interpreter(혹은 php engine)에게 넘긴다.
php interpreter는 php의 content를 해석해서 결과를 웹서버에게 넘겨주고
웹서버는 해석된 file을 웹브라우저에게 전달한다.
출처:
https://icandooit.tistory.com/17
JS는 웹 브라우저가 해석하는 언어. 클라이언트 동작 언어라서 모두 볼 수 있다고 함
+) 엔진의 동작 원리
엔진이 어떻게 동작하는지 이해하려면 상당한 시간을 쏟아부어야 합니다.
하지만 기본 원리는 다음과 같이 간단합니다.
- 엔진(브라우저라면 내장 엔진)이 스크립트를 읽습니다(파싱).
- 읽어 들인 스크립트를 기계어로 전환합니다(컴파일).기계어로 전환된 코드가 실행됩니다.
- 기계어로 전환되었기 때문에 실행 속도가 빠릅니다.
엔진은 프로세스 각 단계마다 최적화를 진행합니다. 심지어 컴파일이 끝나고 실행 중인 코드를 감시하면서, 이 코드로 흘러가는 데이터를 분석하고, 분석 결과를 토대로 기계어로 전환된 코드를 다시 최적화하기도 합니다. 이런 과정을 거치면 스크립트 실행 속도는 더욱 더 빨라집니다.
출처: https://ko.javascript.info/intro
인터프리터, 컴파일러
1. 인터프리터
- 인터프리터는 고급 언어로 작성된 프로그램을 한줄 단위로 받아들여 번역하고, 번역과 동시에 프로그램을 한줄 단위로 즉시 실행시키는 프로그램이다.
- 프로그램이 직접 실행되므로 목적 프로그램이 생성되지 않는다.
- 줄 단위로 번역, 실행되기 때문에 시분할 시스템에 유용하며 원시 프로그램의 변화에 대한 반응이 빠르다.
- 번역 속도는 빠르지만 프로그램 실행 시마다 매번 번역해야 하므로 실행속도는 느리다.
- CPU 사용 시간의 낭비가 크다.
2. 컴파일러
- 컴파일러는 고급 언어로 작성된 프로그램 전체를 목적 프로그램으로 번역한 후, 링킹 작업을 통해 컴퓨터에서 실행 가능한 프로그램을 생성한다.
- 번역과 실행 과정을 거쳐야하기 때문에 번역 과정이 번거롭고 번역 시간이 오래 걸리지만, 한번 번역한 후에는 다시 번역하지 않으므로 실행 속도가 빠르다.
출처: https://velog.io/@dongwon2/TypeScript%EB%A5%BC-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-%EC%A0%84%EC%97%90-%EC%9D%B4%EC%A0%95%EB%8F%84%EB%8A%94-%ED%95%B4%EC%A4%98%EC%95%BC%EC%A7%80
from http://mnmhbbb.tistory.com/370 by ccl(A) rewrite - 2021-11-24 12:00:31