용어 정리
컴파일
•
소스코드를 실행하기에 앞서 기계어로 번역하는 행위
컴파일러
•
컴파일을 수행하는 소프트웨어
•
컴파일 언어 : 컴파일을 수행하는 프로그래밍 언어
◦
C, C++, Java, Objective C
인터프리터 언어
•
프로그램을 한 줄마다 기계어로 번역해서 실행하는 프로그래밍 언어
•
JS, LISP, Perl, Ruby, Python
인터프리터
•
프로그램을 번역해서 실행시키는 소프트웨어
절차적 언어
•
절차를 순서대로 작성해 나가는 언어
객체 지향 언어
•
처리와 관련된 데이터와 절차를 하나로 묶어, 객체 단위로 관리하는 언어
함수형 언어
•
프로그램을 함수로 조합하여 구현해 나가는 언어
논리형 언어
•
데이터 사이의 관계와 논리를 설명해 나가는 언어
자바스크립트는
인터프리터 언어
동적 프로토타입 기반 객체 지향 언어
•
JS는 프로토타입을 상속하는 프로토타입 기반 객체 지향 언어이다.
•
객체를 생성한 후에도 property와 method를 동적으로 추가하거나 삭제할 수 있다.
동적 타입 언어
•
JS는 변수 타입이 없다 → 프로그램을 실행하는 도중에 변수에 저장되는 데이터 타입이 동적으로 바뀔 수 있다 → 동적 타입 언어
함수가 일급 객체다
•
JS의 함수는 객체이며, 함수에 함수를 인수로 넘길 수 있다 → JS의 함수가 일급 객체인 이유
•
고차 함수를 구현할 수 있어, 함수형 프로그래밍 가능해진다
함수가 클로저를 정의한다
•
JS의 함수는 클로저를 정의한다
JS의 기술적 요소
ECMAScript (코어 언어)
클라이언트 측 JS의 고유한 기술 요소
•
Window 인터페이스
◦
JS로 브라우저 또는 창을 조작하는 기능을 제공
•
DOM
◦
JS로 HTML 문서의 요소를 제어하는 기능을 제공
•
XMLHttpRequest
◦
서버와 비동기로 통신하는 기능을 제공
서버 측 JS의 고유한 기술 요소
•
Node.js
◦
구글이 개발한 JS 실행 환경
•
Rhino
◦
오픈 소스로 개발되어 현재는 모질라가 관리하고 있는 JS 실행 환경
•
Aptana Jaxer