자바스크립트

내위키
Dennis (토론 | 기여)님의 2024년 8월 13일 (화) 14:08 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

JavaScript.

프로그래밍 언어. 특히 웹 환경에서는 절대 지존의 자리를 차지하고 있다. 동적인 웹페이지를 위해서는 대안 없는 원톱이고 서버 사이드에서도 Node.js 덕택에 강력한 세력을 구축했다. 일렉트론 프레임워크를 활용하면 크로스 플랫폼 데스크톱 응용프로그램을 만들 수 있고[1] 아파치 코르도바, 리액트 네이티브로 모바일 앱도 개발할 수 있다. 이쯤 되면 정말로 만능이다.

이렇게 막강한 영향력을 가진 자바스크립트는 브랜든 아이크가 넷스케이프 내비게이터 브라우저를 위해 단 열흘만에 설계했다. 이전까지는 웹 페이지는 정적이었고, 페이지가 한번 로딩되고 나면 더 이상 변화가 없었다. 여기에 동적인 변화를 가능하게 하기 위해 넷스케이프는 두 가지 방안을 생각했는데, 하나는 자바를 브라우저에 안아서 자바로 동적인 웹 페이지를 구현하는 것이고, 다른 하나는 새로운 언어를 개발하는 것이었다. 이를 위해 브랜든 아이크를 채용했는데, 결국 넷스케이프는 후자를 채택했고 자바스크립트 개발을 추진했다.

처음에는 모카(Mocha)라는 이름을 붙였다가 라이브스크립트(LiveScript)로 바뀌었고, 다시 자바스크립트로 바뀌었다. 자바스크립트라는 말 때문에 자바 개발사[2]에서 만든 거 아닌가 싶지만 자바와는 관계 없고[3] 자바가 새로운 프로그래밍 언어로 아주 잘 나가고 있었기 때문에 그 명성에 그냥 묻어가려고 그렇게 이름 붙인 것. 그렇다고 무단으로 쓰는 것은 아니고 썬에게 허락을 받있다. 이후에 썬을 인수한 오라클도 계속 사용권을 인정하고 있다.

1995년에는 마이크로소프트가 인터넷 익스플로러를 내놓음으로써 첫 웹 브라우저 전쟁이 시작된다. 당시 MS는 넷스케이프 내비게이터를 역엔지니어링해서 자체적인 자바스크립트 구현체를 만들었고 이를 JScript라고 이름 붙였다. 둘 다 자바스크립트이긴 하지만 제공되는 라이브러리나 동작 방식에 차이가 있었기 때문에 내비게이터에서는 잘 돌아가는 코드가 IE에서는 에러가 나거나 그 반대의 현상이 일어나는 일이 잦았다.

자바스크립트의 진정한 파워가 빛을 낸 것은 AJAX. 이걸 처음 들고 나온 건 구글이지만 아이러니하게도 기반을 만든 건 웹 세계를 난장판으로 만들었던 MS였다. 원래는 1999년에 아웃룩에서 쓰였던 XML request 기능을 제공하는 IXMLHTTPRequest라는 함수였다. 이 함수를 쓰면 웹 페이지 안에서 자바스크립트로 원격 서버에 XML 형식의 데이터를 요청해서 받아올 수 있다.[4] 모질라 측도 이 기능을 2002년에 포함시켰다. 그런데 구글이 이 기능을 사용해서 웹 페이지를 다시 로드하지 않고도 자바스크립트를 이용해서 서버와 통신하고, 받아 온 데이터를 가지고 DOM을 업데이트하는 방식으로 웹 페이지를 업데이트하는 기능을 선보인게 AJAX. 이 방식을 활용한 구글 지도가 센세이션을 일으키면서 자바스크립트의 활용도는 다시 한번 급상승하고, 웹 페이지에서 이전에는 생각도 못했던 별의 별 기능들을 다 구현할 수 있게 되었다. 이를 통해 페이지 로딩 없이 데이터만 가져와서 DOM을 업데이트 하는 단일 페이지 애플리케이션 개념이 발전했다.

다시 한번 자바스크립트의 활용도를 대폭 상승시킨 것은 jQuery. 세련된 웹 페이지 인터페이스를 허탈할 만큼 간단하게 구현할 수 있도록 돕는 라이브러리인 jQuery의 뒤를 이어 리액트, Angular, Vue.js와 같은 라이브러리들이 등장했다. 이 바람에 오히려 원조인 jQuery가 대세에서 밀려나서 뒷방 늙은이 신세로 전락했다.

한편으로는 웹 페이지, 즉 프론트 엔드만이 아니라 백 엔드에서도 자바스크립트를 활용하려는 시도가 있었고, 대박이 난 게 Node.js다. 자바스크립트로 웹 서버를 돌릴 수 있게 되고 이를 활용해서 데스크톱 환경에서 멀티플랫폼 앱 개발을 돕는 일렉트론 같은 프레임워크가 등장하면서[5] 활용도가 급속하게 올라가다 보니, 자바스크립트는 웹 페이지만이 아니라 웹 서버, 모바일, 데스크톱을 아우르는 개발 언어로 입지를 다지게 되고, 자바스크립트 하나만 잘 하면 프론트 엔드와 백 엔드를 같이 다룰 수 있는, 이른바 풀 스택 개발자가 될 수 있다.

자바스크립트가 웹 세계를 지배하면서 덩달아 지위가 올라간 게 JSON이다. 원래 자바스크립트의 데이터 구조를 텍스트 데이터로 표현하기 위해서 만들어진 형식이었는데, 웹 세계에서 한참 밀고 있던 XML에 비해 데이터의 용량도 적고, 간결하고 알아보기 쉽다는 장점에 확 부각되어[6] 이제는 자바스크립트는 물론 네트워크의 데이터 교환을 위한 표준으로 자리 잡았고, NoSQL 데이터베이스 중 상당수가 JSON을 데이터 표현 형식으로 사용할 정도다.

각주

  1. 비주얼 스튜디오 코드가 일렉트론 프레임워크를 활용한 대표적인 작품이다.
  2. 선이 개발했고, 이후 선이 오라클에 인수되어 지금은 오라클 소유다
  3. 코드의 문법이 비슷한 면이 있긴 하지만 둘 다 C 계열 언어이기 때문에 그런 것이지 별 관계는 없다. 객체지향을 구현하는 방법도 아예 다르다.
  4. 받아오는 데이터는 반드시 XML 형식이어야 하는 것은 아니다. 오히려 요즈음은 XML은 거의 쓰이지 않고 JSON이 주류를 이루고 있다.
  5. 이를 사용한 유명한 앱으로는 비주얼 스튜디오 코드, WhatsApp 데스크톱, 디스코드 데스크톱 같은 굵직한 것들이 있다.
  6. 다만 JSONXML을 완전히 대체할 수 있는 것은 아니다.