자바스크립트(javascript)란?
자바스크립트(javascript)는 웹사이트를 동적으로 만들 수 있는 언어입니다. 흔히 웹의 기초가 되는 언어는 HTML, CSS, Javascript라고들 말합니다. HTML은 웹사이트의 뼈대를 만들고 CSS는 웹사이트를 원하는 대로 디자인할 수 있습니다. 그러나 HTML과 CSS만으로 완성된 웹사이트는 어딘가 부족하게 느껴집니다. HTML과 CSS는 눈에 보이는 부분만을 담당하기 때문에, 웹사이트를 동적으로 만들어주지는 못합니다. 이때 사용되는 언어가 자바스크립트입니다. 마우스를 클릭했을 때 웹사이트에 동적인 효과(이벤트)를 주며 웹 브라우저를 제어하고 사용자와 상호작용하는 기능도 자바스크립트의 역할입니다.
자바스크립트는 현재 웹 분야에서 대체불가 언어입니다. 또한 웹 브라우저에서 사용할 수 있는 거의 유일한 언어이기도 합니다. 실제로 자바스크립트를 다른 언어로 대체하려는 움직임이 있었는데, 마이크로소프트가 개발한 VBscript, 구글이 개발한 Dart 모두 자바스크립트를 완전히 대체하기에는 한계가 있다는 것이 명확하게 드러났습니다. 여전히 현재까지도 웹에서 자바스크립트를 대체할 언어는 없습니다. 따라서 웹 개발을 하고 싶다면 자바스크립트를 반드시 배워야 합니다.
그래서 자바스크립트로 뭘 만들 수 있는데?
자바스크립트로 동적인 웹사이트를 만드는 것 뿐만 아니라 웹을 기반으로 한 다른 여러 형태의 프로그램도 개발할 수 있습니다. 우리가 가장 자주 접할 수 있는 웹사이트의 검색엔진, 회원가입 플랫폼 역시 자바스크립트로 개발되었습니다.
자바스크립트로 서버 프로그램도 개발할 수 있습니다. 과거 자바스크립트는 웹사이트의 구성 요소 중 눈에 보이는 동적인 부분을 주로 개발하는 프론트엔드(front-end)언어로서의 역할이 대부분이었습니다. 그러나 이제는 자바스크립트 하나로 서버 프로그램도 개발할 수 있습니다. 주로 Node.js라는 자바스크립트 기반의 프레임워크를 이용합니다.
요즘은 자바스크립트를 이용해 모바일 어플리케이션도 개발할 수 있게 되었습니다. 2013년 페이스북에서 개발한 오픈소스 자바스크립트 프레임워크인 React라는 플랫폼이 있습니다. (자바스크립트 프레임워크에 대해서는 추후 자세히 포스팅하겠습니다.) 이 React의 문법을 활용한 React-native라는 하이브리드 앱 개발 프레임워크가 탄생했고, 이것을 이용해 안드로이드, iOS 운영체제에서 모두 작동하는 앱을 개발할 수 있습니다. 실제로 React-native는 현재 개발자들이 가장 배우고 싶어하는 하이브리드 앱 프레임워크로 꼽히기도 했습니다.
또한 자바스크립트는 웹 브라우저를 제어하는데 가장 중요한 역할을 하는 언어입니다. 웹사이트의 쿠키 등을 설정할 수 있으며 서버와의 통신도 가능합니다.
자바스크립트의 특징
1. 모든 웹 브라우저에서 작동합니다.
2. 인터프리터 언어로, 웹 브라우저만 있으면 자바스크립트의 코드를 실행할 수 있습니다.
3. 객체지향 언어이지만, 객체지향 프로그래밍과 함수형 프로그래밍 모두 가능합니다.
4. HTML 문서 내에 위치합니다.
5. 클라이언트 뿐만 아니라 서버 개발에도 사용할 수 있습니다.
6. 다양한 라이브러리와 프레임워크가 존재하며, 지금도 활발히 개발되고 있습니다.
7. 많은 사람들이 사용하는 만큼 거대한 생태계를 자랑합니다.
* 인터프리터 언어란?
인터프리터 언어는 컴파일 과정을 거치지 않고 소스코드를 바로 실행할 수 있는 언어입니다. C언어와 비교해 봅시다. C언어는 소스코드를 작성한 후 컴파일하여 실행 파일로 만들어 주어야 우리가 사용할 수 있습니다. 반면 자바스크립트는 이러한 과정 없이 웹 브라우저에 내장된 인터프리터가 소스코드를 바로 해석하여 실행하기 때문에, 마치 컴퓨터와 대화하는 느낌을 받을 수 있습니다. 대표적인 인터프리터 언어는 Python이고, 그 외에도 Ruby, R, SQL등 많은 인터프리터 언어가 존재합니다.
자바스크립트에도 명확한 단점은 존재합니다. 바로 보안에 취약할 수 있다는 것입니다. 위에서 작성한 것처럼 자바스크립트는 HTML 문서 내에 작성됩니다. 그러므로 웹사이트가 공개될 때 소스코드 역시 함께 공개됩니다. 이런 과정에서 소스코드상의 허점, 즉 보안상 취약점이 드러날 수 있습니다. 실제로 자바스크립트 보안 이슈는 매우 자주 발생하는 편입니다.
성능에 대한 한계도 자주 지적되는 문제점입니다. 실제로 웹페이지 로딩 속도가 느려지는 이유의 대부분은 자바스크립트의 성능 때문인 경우가 많습니다. 그렇기에 자바스크립트를 최적화하는 방법, 어떻게 해야 자바스크립트 속도를 빠르게 할 수 있는지 등에 대한 연구가 활발하게 이루어지고 있습니다.
'개발 공부' 카테고리의 다른 글
[javascript] 자바스크립트 자료형 (0) | 2021.07.29 |
---|---|
2021 NYPC 예선 대회 참가 신청 시작! (0) | 2021.07.24 |
[파이썬] Python 설치 및 다운로드 (0) | 2021.07.22 |
아두이노 통합개발환경(IDE) 설치하기 (0) | 2021.07.19 |