웹어플리케이션에서 프론트앤드를 담당하는 개발자라면 누구나 기본적으로 알아야할 프로그래밍 언어가 있다면 바로 "자바스크립트"가 아닐까싶다. 이 포스트부터 이어지는 "자바스크립트" 관련 포스트들은 내 공부를 위해 "자바스크립트"를 기초부터 전반적으로 정리하는 것들이다. 참고한 문장들에 각주 번호는 생략할 것이며, 참고한 사이트들은 포스팅 하단에 출처를 표시할 것이다.

1. 자바스크립트의 탄생

90년대 중반 무렵의 웹 브라우저 시장은 "넷스케이프 커뮤니케이션즈"(Netscape comunications, 이하 "넷스케이프")가 지배하고 있었다. 넷스케이프는 정적인 HTML을 동적으로 표현하고자 했고, 넷스케이프에서 일하고 있던 “브랜든 아이크”(Brendan Eich) 가 경량의 프로그래밍 언어 “자바스크립트”를 개발했다. (웹브라우져 Firefox도 개발했다. 세상에는 천재들은 많다...)

자바스크립트는 1996년 3월 웹브라우져 “Netscape Navigator 2”에 탑재되어 “Mocha”로 명명되었고, 그해 9월 “LiveScript”로 이름이 변경되었고, 12월 최종적으로 “JavaScript”라고 명명되었다.

🤔 자바스크립트와 자바는 관련이 있는가?

“JavaScript” 는 “Java” 와 어떤 관련이 있는 걸까? 당시에 자바의 인기가 아주 높은 상황이었기에, 관련인들은 자바스크립트를 자바의 ‘동생’ 격인 언어로 홍보하면 도움이 될 것이라는 의사결정을 내리고 이름을 바꿨다고 한다. 결국 이름은 자바에서 차용해 왔지만, 자바스크립트는 자바와는 독자적인 언어이다.

2. 자바스크립트란?

  1. 정적인 웹페이지에 생동감을 불어넣기 위해 만들어진 언어이다. 즉, 자바스크립트는 개발자가 대화식 웹 페이지를 만들기 위해 사용하는 프로그래밍 언어이다.
  2. 자바스크립트로 작성한 프로그램을 스크립트(script) 부른다.
  3. 스크립트는 웹페이지의 HTML 안에 작성할 수 있는데, 웹페이지를 불러올 때 스크립트가 자동으로 실행된다. 스크립트는 특별한 준비나 컴파일 없이 보통의 문자 형태로 작성할 수 있고, 실행도 할 수 있다.
  4. 자바스크립트를 사용하면 브라우저는 사용자 상호 작용에 응답해서 웹 페이지의 콘텐츠 레이아웃을 변경할 수 있다.(ex. 이미지 슬라이드쇼, 클릭하면 표시되는 드롭 다운 메뉴 등)
  5. 자바스크립트는 AJAX 같은 기술을 이용하여 서버와 비동기 통신으로 서버에 요청을 보내거나 파일을 업로드, 다운로드 할 수 있다.

🤔 스크립트 언어? 인터프리터 언어?

프로그래밍 언어의 한 종류로, 기존에 이미 존재하는 소프트웨어(애플리케이션)를 제어하기 위한 용도로 쓰이는 언어이다. 일반적으로는 개발자가 짠 코드를 기계어로 변환하는 "컴파일" 과정을 거친 후 앱이 실행이 된다. 예를 들어, 자연어 "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% 이상이 인터프리터 방식이라고 한다. 스크립트 언어는 이러한 인터프리터 방식에서 파생된 것으로 보인다. 인터프리터와 컴파일은 개념적으로 명확한 대조를 이루는데, 스크립트 언어는 개념적으로 아직 명확한 것은 아닌 것 같다. 이 부분은 좀더 공부가 필요하며 세 가지 방식들 간 차이점에 관한 자세한 내용은 이 포스트의 범위를 넘어서기 때문에 차후 다른 포스트에서 다루도록 하겠다.

여하튼, 자바스크립트는 컴파일 과정을 거치지 않는 "인터프리터 언어"로 분류되기도 하며, 웹브라우저(이미 존재하는 응용프로그램)을 제어한다는 측면에서 "스크립트 언어"로 분류하기도 하는 것 같다.

출처:

profile
즐거운 게 즐거운 것

0개의 댓글