공부/~~란 무엇인가?

JS(Javascript)란 무엇인가?

신입개발자 2021. 5. 16. 20:39

JS는 웹 브라우저에서 동작하는 스크립트 언어이다. 하지만 처음부터 그렇게 웹 개발자에게 친숙한 언어는 아니었다. 초창기 자바스크립트는 웹 페이지 제작에 있어서 보조적인 기능을 웹 브라우저에서 서로부터 받은 HTML, CSS 데이터로 렌더링을 해주는 수준이었다. 이 시절에 자바스크립트는 그다지 중요한 역할을 담당하지 못했다. 다만 소수의 자바스크립트는 프로그래머들에 의해 여럴 가지 연구가 이루어지고. prototype.js와 같은 주요 라이브러리들이 개발된다. 그리고 웹이 더욱 발전하면서, 웹 아키텍처에도 여러 가지 크고 작은 변화가 일어났다. 특히 과거에 서버에서 담당하던 역할들이 상당부분 웹 브랑저로 이동하였고. 자바스크립트는 이 변화의 중심에 서게 된다 게다가 jQuery의 등장으로 보다 쉽게 DOM(Document Object Model)을 핸들링하게 되면서 많은 발전을 이루었다.

1. 자바스크립트 활용 범위

현재 브라우 기반의 자바스크립트 라이브러리 뿐만 아니라, Node.js와 같은 서버 기반의 자바스크립트 환경에서 동작할 수 있는 각종 라이브러리 까지 썯아져 나오고 있다. 이제는 자바스크립트만으로 웹 서버와 클라리언트인 웹 페이지 개발을 동시에 할 수 있는 수준까지 이른 것이다

1.1 웹 개발

현재 크롭이나 파이어폭스 등 웹 브라우저들이 나날이 발전하고 있다. 그들이 새 버전을 내놓을 때마다 항상 강조하는 것이 자바 스크립트 엔진의 성능 향상에 관한 것이다. 이는 웹 페이지를 개발하는 데 있어서 자바 스크립트 엔진의 성능 향상에 관한 것이다. 이는 웹 페이지를 개발하는 데 있어서 자바스크립트의 역할이 얼마나 큰지를 방증한다. 특히, jQuery를 비롯하여 knockout, backbone 등의 라이브러리는 웹 개발자에게 이미 중요한 컴포넌트로 자리 잡았다. 이제는 자바스크립트를 완벽하게 이해하지 못하면 좋은 웹 개발자라는 말을 들을수 없게 되었다

1.2 서버개발

Node.js의 출현으로 자바스크립트를 활용한 서버 개발도 활발히 이루어지고 있다, express, socket.io 등의 라이브러리는 보다 쉽게 자바스크립트로 서버를 개발할수 있는 환경을 제공해준다

1.3 애플리케이션 개발

웹이 하나의 플랫폼으로 진화하면서, 웹OS를 표방한 여러 가지 프로젝트가 진행되고 있다 구글에서는 크롬OS라는 브라우저를 기반으로 OS를 선보였고. 모바일에서도 HP에서 웹OS 라는 이름으로 휴대폰과 같은 모바일 기기에도 웹 기반의 각종 기술이 활용되고 있다 이러한 웹 기반 플랫폼에서 구동되는 애플리케이션 개발에 자바스크립트는 없어서는 안될 핵심 요소가 되었다. 특히 폰갭(phoneGap)과 같은 크로스 플랫폼 개발 도구를 이용하면 DOM 요소를 핸들링하여 렌더링하는 것에서 부터 더 나아가 디바이스의 동작에 대한 제어도 가능해지고 있다. 향후 완벽한 웹OS가 출현한다면 자바스크립트의 중요성은 더욱 커질 전망이다 이처럼 자바스크립트의 활용 범위는 과거에 비해 상당히 넓어졌다. 웹이 크로스 플랫폼으로서 확고히 자리매김할수록 자바스크립트 역시 많은 개발자에게 사랑받을 수 있다.

2. 자바스크립트의 단점

자바스크립트는 굉장히 유연한 언어이고 뛰어난 표현력을 가지고 있다. 하지만 이러한 특성 때문에 종종 디버깅에 어려움을 겪기도 한다. 특히 느슨한 타입 체크는 개발자에게 타입 체크에 대한 자유를 주지만 컴파일 타임에서 잡지 못하는 오류는 고스란히 런타임 오류로 발견된다 또 자바스크립트를 둘러싼 중요한 논란중에 하나가 전역 객체의 존재이다. 최상위 레벨의 객체들은 모두 전역 객체 안에 위치하는데 이는 이름 충돌의 위험성이 있다. 프로그래머는 이 부분에 대해 신경 쓰는 것을 게을리하면 안 된다. 그동안 여러 자바스크립트 개발자가 자바스크립트의 언어 명세서인 ECMAScript를 비판해왔다 1999년에 채택된 ECMAScript 3 버전은 상당히 모호한 설명이 많다고 한다. 결국 이 모호한 명세서가 자바스크립트 엔진을 구현하는데 있어서 약간의 차이를 가져왔고. 현재 자바스크립트 프로그래머에게는 브라우저 독립적인 코드를 구현해내는 것이 큰 숙제가 되었다. 다행히 2009년에 ECMAScript 5 버전이 승인되었고 현재 더 발전된 차기 버전에 대한 논의가 활발하게 이루어지고 있다.

'공부 > ~~란 무엇인가?' 카테고리의 다른 글

DOM 이란 무엇인가?  (0) 2021.05.26
인터넷은 어떻게 작동이 되는가?  (0) 2021.05.17
Bundle란?  (0) 2021.05.15
Git 이란 무엇인가?  (0) 2021.05.12
CSS 와 HTML 이란?  (0) 2021.05.11