자바스크립트는 무엇인가요


JavaScript는 웹페이지의 여러 요소들을 제어하기 위한 언어로 Mozilla 재단의 Brendan Eich라는 분이 처음으로 만들었어요.

처음에는 웹 브라우저계의 조상님중 하나인 Netscape Navigator에 탑재되어 출시되었어요. 그러다나 차츰 인터넷 익스프롤러에도 비슷한게 탑재되고, 이런저런 역사가 있죠. 브라우저 전쟁이라 불리는 Microsoft와 Netscape사 간의 이야기가 있으니 관심있으면 한번 찾아보세요. 우리는 결과만 확인해 보죠.

결과는, 2018년 현재 웹브라우저의 최강자는 구글의 크롬이에요. Explorer로 Navigator도 모두 몰락하고 크롬이 웹브라우저계의 왕좌를 차지 했고, MS는 Edge, Mozilla는 Firefox라는 새로운 브라우저로 Chrome과 경쟁하는 중이에요.

굳이 자바스크립트 이야기를 하다가 크롬 이야기를 하는 이유는 그만큼 크롬이라는 브라우저가 웹개발에 중요하기 때문이에요. 크롬 브라우저에 포함되어 있는 개발자 도구는 웹개발에 필수적인 도구고, 다른 브라우저에도 비슷한게 있지만 확장성 등이나 사용률을 생각하면 크롬이 사실상 표준 (de facto)이죠. 즉, 크롬 까세요. 아직 크롬을 사용하지 않는다면, 크롬 깔고 크롬으로 접속해서 계속해요.

글을 계속 읽다보면 이상한 단어들 (de facto 같은)이 가끔 등장할 텐데요. 그냥 개발자들이 사용하는 단어들이에요. 앞으로도 가끔씩 등장할테니 알고있으면 좋아요.

사실 JavaScript는 ECMAScript에요.

JavaScript는 제대로된 관리 주체가 없다가 전쟁 몇번 치르고 ECMA라는 표준화 기구에서 관리해요. 그러면서 ECMAScript라는 명칭도 사용하고, 새로운 사양도 많이 추가되었어요. 그렇게 ECMAScript 2015, 줄여서 ES2015, ES6라 불리는 버전의 새로운 자바스크립트가 표준으로 정의되었어요. 지금 크롬과 같은 브라우저에서 이 새로운 자바스크립트의 사양을 구현하고 있고, 상당부분 진행이 되었어요. 하지만 우리는 당장 ES2015 사양의 자바스크립트를 바로 사용할 수는 없어요.

왜냐하면, 자바스크립트 기술은 기본적으로 클라이언트 측 기술이고, 사용자의 행동을 개발자가 통제할 수 없기 때문이에요. 즉, 모든 사람이 자신의 컴퓨터에 최신 버전의 크롬이나 파이어폭스를 설치해서 사용하지 않기 때문이에요. 특히나 MS라는 회사에서 사용하지 말라고 무릎꿇고 부탁하는 IE가 없으면 제대로 인터넷을 사용할 수 없는 나라도 있을 정도로 사용자 환경은 다양해요.

아무튼 심지어 IE7, IE8 같은 오래되고 낡은 브라우저도 여전히 사용자 통계에 잡히고 있는 실정이고, 이런 브라우저들은 최신 자바스크립트는 물론이고 HTML5나 CSS3도 사용 못해요. 심지어 JavaScript 자체도 구현이 달라서 이런저런 트릭을 써줘야 하죠.

이러한 이유로, 우리는 ES5라 불리는 오래된 자바스크립트의 문법을 배우고난 후, ES2015 (ES6)의 문법을 배울거에요. 클라이언트 측 기술은 그래야 해요…

JavaScript의 특징

자바스크립트는 입문하기 쉬워요.

자바스크립트는 쉬워요. C나 Java와 같은 다른 프로그래밍 언어에 비해 쉽게 설계되었어요. 자바스크립트가 처음에 무시받던 이유중에 쉽다는 이유도 있었죠. 하지만 자바스크립트도 깊이 파고들면 모호하고 어려운 부분이 있어요. 그래서 그냥 쉬운게 아니라, 입문하기 쉬워요.

자바스크립트는 인터프리터 언어에요.

C언어나 Java같은 언어는 코드를 작성하고 Compile이라는 과정을 거쳐야 실행할 수있는 파일을 얻을 수 있지만, JavaScript와 같은 인터프리터 언어는 코드를 작성하고 바로 실행해 볼 수 있어요. 크롬에서 Ctrl + Shift + i 단축키를 눌러서 개발자 도구를 열어보세요. 그리고 Console 이라는 탭을 누르면 자바스크립트를 작성해 볼 수 있어요. 여기서,

alert("안녕 세계");

라는 문장을 입력하고 엔터를 누르면, 경고창이 뜨죠. 우리는 새로운 자바스크립트 코드를 실행해 본거에요.

자바스크립트는 동적 타입언어에요. 무슨 말인지는 나중에 변수에 대해 이야기 하면서 이야기 할거에요.

자바스크립트는 객체지향 언어에요. 객체(Object)라는 것은 현실의 사물을 나타내는 말인데요. 강아지 한마리, 사람 한명, 자동차 같은 우리 주변의 사물을 프로그래밍적으로 표현한거라고 볼수 있어요. 조금 어려운 개념이지만 곧, 조금더 자세히 알아볼 거에요.

Node.js로 실습환경 구축하기

자바스크립트 문법을 배우기 위해 우리는 Node.js라는 것을 설치 할거에요. Node.js는 간단하게 말하면, JavaScript를 웹브라우저가 아닌 환경에서 실행할 수있게 해주는 자바스크립트 런타임 (실행환경)이에요. 즉, 자바스크립트 코드를 작성하고 웹브라우저를 켜지 않고도 자바스크립트로 작성된 코드를 실행해 볼 수있죠. 웹 개발하는데 웹브라우저만 있으면 되지 굳이 Node.js라는 녀석을 깔아야 하냐고 물으신다면?… 어짜피 본격적으로 웹개발이던 서버개발이던 뭐던 시작하면 깔게 될거에요.

그냥 지금 빨리 깔아 놓으세요.

윈도우나 맥과 같이 운영체제별 자세한 Node.js 설치방법은 다음 글에서 계속할게요.