웹어플리케이션에서 프론트앤드를 담당하는 개발자라면 누구나 기본적으로 알아야할 프로그래밍 언어가 있다면 바로 "자바스크립트"가 아닐까싶다. 이 포스트부터 이어지는 "자바스크립트" 관련 포스트들은 내 공부를 위해 "자바스크립트"를 기초부터 전반적으로 정리하는 것들이다. 참고한 문장들에 각주 번호는 생략할 것이며, 참고한 사이트들은 포스팅 하단에 출처를 표시할 것이다.
90년대 중반 무렵의 웹 브라우저 시장은 "넷스케이프 커뮤니케이션즈"(Netscape comunications, 이하 "넷스케이프")가 지배하고 있었다. 넷스케이프는 정적인 HTML을 동적으로 표현하고자 했고, 넷스케이프에서 일하고 있던 “브랜든 아이크”(Brendan Eich) 가 경량의 프로그래밍 언어 “자바스크립트”를 개발했다. (웹브라우져 Firefox도 개발했다. 세상에는 천재들은 많다...)
자바스크립트는 1996년 3월 웹브라우져 “Netscape Navigator 2”에 탑재되어 “Mocha”로 명명되었고, 그해 9월 “LiveScript”로 이름이 변경되었고, 12월 최종적으로 “JavaScript”라고 명명되었다.
“JavaScript” 는 “Java” 와 어떤 관련이 있는 걸까? 당시에 자바의 인기가 아주 높은 상황이었기에, 관련인들은 자바스크립트를 자바의 ‘동생’ 격인 언어로 홍보하면 도움이 될 것이라는 의사결정을 내리고 이름을 바꿨다고 한다. 결국 이름은 자바에서 차용해 왔지만, 자바스크립트는 자바와는 독자적인 언어이다.
프로그래밍 언어의 한 종류로, 기존에 이미 존재하는 소프트웨어(애플리케이션)를 제어하기 위한 용도로 쓰이는 언어이다. 일반적으로는 개발자가 짠 코드를 기계어로 변환하는 "컴파일" 과정을 거친 후 앱이 실행이 된다. 예를 들어, 자연어 "Hello World"가 있다고 치자. 개발자는 이를 아래와 같이 코딩한다.
public class A {
void printStr() {
String str = "Hello World";
System.out.println(str);
}
public static void main(String[] args) {
A a = new A();
a.printStr();
}
}
이 코드는 컴파일 과정을 거쳐 컴퓨터가 이해할 수 있는 기계어(011000101 같은 이진수)로 변환된다. 하지만 수정이 빈번해질 때 매번 컴파일 과정이 귀찮아지는 것은 개발자라면 누구나 느끼는 감정일 것이다. 따라서 전체 문장을 컴파일 하기 보다 소스코드를 한줄 한줄 읽어(컴파일하여) 바로바로 실행하는 인터프리터 방식(대표적으로 Python) 이 많은 주목을 받고 있다. 현재 고급 프로그래밍 언어의 70% 이상이 인터프리터 방식이라고 한다. 스크립트 언어는 이러한 인터프리터 방식에서 파생된 것으로 보인다. 인터프리터와 컴파일은 개념적으로 명확한 대조를 이루는데, 스크립트 언어는 개념적으로 아직 명확한 것은 아닌 것 같다. 이 부분은 좀더 공부가 필요하며 세 가지 방식들 간 차이점에 관한 자세한 내용은 이 포스트의 범위를 넘어서기 때문에 차후 다른 포스트에서 다루도록 하겠다.
여하튼, 자바스크립트는 컴파일 과정을 거치지 않는 "인터프리터 언어"로 분류되기도 하며, 웹브라우저(이미 존재하는 응용프로그램)을 제어한다는 측면에서 "스크립트 언어"로 분류하기도 하는 것 같다.
출처: