세인드의 블로그

어떤 것을 배울 때 그것의 역사부터 알아보는 것이 배움에 도움이 된다고 생각하여 자바스크립트의 역사를 간단히 알아보고자 합니다.


자바스크립트의 탄생

자바스크립트(JavaScript)는 넷스케이프 브라우저에서 동적인 웹페이지를 구현하기 위해 1955년 넷스케이프사의 Brendan Eich가 만든 언어입니다. 처음에는 LiveScript라는 이름으로 개발되었지만 한창 인기를 끌었던 Java의 명성에 숟가락을 얹으려고 JavaScript로 이름을 바꾸게 됩니다. 두 언어는 C언어로 개발되었다는 점 외에 공통점이 매우 적지만 이름이 비슷하다는 이유로 현재까지도 큰 혼란을 야기하게 됩니다.


그 후 마이크로소프트는 익스플로러에서 구동되는 JScript를 발표하게 됩니다. JScript는 자바스크립트와 대부분 호환 가능했지만 익스플로러 브라우저에서만 지원되는 문법을 포함시키는 등의 행위로 자바스크립트 생태계를 어지럽히게 됩니다. 결국 1997년 넷스케이프는 국제 표준화기구인 ECMA 인터내셔널에 자바스크립트 표준화 문서를 제출하였고 ECMAScript라는 표준이 탄생하게 되며, 그것이 현재 자바스크립트의 토대가 됩니다.


자바스크립트를 사용하는 이유

자바스크립트는 스크립트 언어의 일종으로 자바스크립트 그 자체만으로는 동작할 수 없습니다. 자바스크립트를 구동시키기 위해서는 반드시 자바스크립트 엔진을 내장하고 있는 어플리케이션이 필요합니다. 


현대 웹 브라우저들은 기본적으로 자바스크립트 엔진을 내장하고 있으며 자바스크립트가 웹 페이지를 제어하기 위한 API를 제공해줍니다. 웹 페이지는 HTML로 구조가 정의되고 CSS를 이용하여 꾸며집니다. 이는 사용자에게 변하지 않는 문서를 보여주기만 하며 사용자의 반응에 아무런 응답도 할 수 없습니다. 자바스크립트를 이용하면 정적인 상태를 벗어나 사용자의 요청에 따라 웹 페이지의 내용을 변경해주는 등 동적인 컨텐츠를 만들 수 있습니다. 



과거 자바스크립트는 클라이언트측에서만 작동되었습니다. 즉, 사용자가 웹페이지를 여는 순간 사이트에서 제공하는 자바스크립트 코드들이 다운로드되고 사용자의 브라우저는 다운로드된 코드를 해석하여 사용자에게 보여주었습니다. 다운로드된 소스코드는 그 로직이 모두 사용자에게 공개되어서 악의적인 사용자는 소스코드를 임의로 변경하여 브라우저가 실행하게끔하였습니다. 이는 심각한 보안문제를 일으킬 수 있으므로 보안과 관련된 로직은 자바스크립트로 개발하지 않아서 자바스크립트의 응용 범위는 한정적이었습니다.


하지만 2009년에 Node.js가 개발되면서 자바스크립트는 PHP, ASP, Python 등의 언어와 같이 서버측에서도 작동하게 되면서 사용자에게는 로직을 공개하지 않고 서버에서 전처리 후 결과값만 사용자에게 보여주는 행위가 가능해졌습니다. 


이로인해 자바스크립트는 클라이언트측 프로그램과 서버측 프로그램을 동시에 개발할 수 있는 강력한 언어가 되었고 빠른 속도로 서버 시장을 장악하는 중입니다. 뿐만 아니라 다양한 라이브러리, 프레임워크들이 등장하면서 데스크톱 앱, 안드로이드 앱, ios 앱, 데이터베이스 등 다양한 분야에서 자바스크립트를 사용할 수 있게 되었습니다.