[JavaScript] JavaScript란?

HyungJin Han·2023년 2월 24일
0

JavaScript

목록 보기
7/7
post-thumbnail

1. 기본적인 웹의 구조

위의 사진과 같이 웹의 구조를 간단하게 설명하자면,

  • HTML : 웹 페이지의 구조를 만들어준다. (마크업 언어)

  • CSS : 웹 페이지에 디자인을 입혀준다. (스타일 규칙 언어)

  • JavaScript : 웹 페이지가 동적으로 움직이도록 만들어준다 (스크립트 언어)

이렇게 설명할 수 있다.

여기서 JavaScript가 무엇인지 알아보는 시간을 갖도록 한다.


2. JavaScript는 무엇인가?

JavaScript는 웹을 위한 인터프리터 언어이자 객체 기반의 스크립트 프로그래밍 언어이며, HTML의 특정 요소(들)을 선택하여 다양한 이벤트(마우스 클릭, 키보드 입력 등)에 따라 어떤 동작을 하도록 기능을 넣을 수 있다.

발생하는 이벤트에 따라 HTML, CSS를 조작할 수도 있고 그 외에도 여러가지의 기능을 구현할 수 있다.

2-1. JavaScript의 역사

JavaScript는 1995년에 넷스케이프(Netscape)의 브렌던 아이크(Brendan Eich)에 의해 만들어졌다.

처음에는 모카(Mocha)라는 이름으로 개발되었으나, 그 후에 라이브스크립트(LiveScript), 최종적으로는 자바스크립트(JavaScript)라는 이름으로 변경된다.


3. JavaScript 실행 순서

일반적으로 JavaScript는 위에서 아래의 순서대로 실행이 된다.

이는 순서에 주의해서 코드를 작성해야 한다는 의미이다.

단, Hoisting으로 인한 예외의 경우가 발생할 수 있다.

3-1. JavaScript 엔진

브라우저에는 JavaScript 가상 시스템이라는 내장 엔진이 존재한다.

  • Chrome, Opera -> V8

  • Firefox -> SpiderMonky

  • IE -> TridentChakar

  • Microsoft Edge -> ChakraCore

  • Safari -> NitroSquirrelFish

3-1-1. JavaScript 가상 시스템 엔진의 작동 방법

  1. 엔진이 스크립트를 읽음

  2. 스크립트를 기계어로 변환

  3. 코드를 빠르게 실행

순서로 작동한다.


4. JavaScript의 특징

JavaScript는 객체 기반의 스크립트 언어이며, 객체 지향형 프로그래밍과 함수형 프로그래밍을 모두 표현할 수 있다.

또한 JavaScript는 동적이며, 타입을 명시할 필요가 없는 인터프리터 언어이다.

이로 인해 발생할 수 있는 문제를 보완하기 위해 나온 것이 TypeScript이다.

4-1. JavaScript의 장단점

4-1-1. JavaScript의 장점

  • 컴파일 과정이 필요없으므로, 빠른 시간 안에 스크립트 코드를 작성할 수 있다.

  • 다른 언어들에 비해 단순한 구조와 원칙을 갖고 있어 배우기 쉽다.

  • 웹에 특화된 기술이기 때문에 운영체제나 플랫폼에 상관없이 잘 작동되고 확장성이 높다.

4-1-2. JavaScript의 단점

  • OS에 직접 접근이 불가능하다.

  • 하드디스크를 읽거나 쓸 수 없다.

  • 다른 프로그램을 호출할 수 없다.

  • JavaScript는 도메인이 동일한 두 탭/윈도우를 제외하고 탭/윈도우 간에 통신을 수횅할 수 있다.

  • JavaScript는 웹 브라우저에서 실행되기 때문에 일부 보안상의 제약이 있으며, 브라우저에서 웹 페이지를 열 때 안전하고 위험에 처하지 않도록 보장해야 한다.

  • 일반적으로 JavaScript는 자체 도메인에 대해서만 제한없이 네트워크 요청을 보낼 수 있다.


5. JavaScript의 역할

JavaScript의 일반적인 용도는 웹 페이지에 기능을 더하여 HTML 페이지를 동적으로 만들어주는 역할을 한다.

5-1. JavaScript가 할 수 있는 일

  • HTML 페이지 변경 및 HTML 엘리먼트와 콘텐츠의 추가나 제거

  • CSSHTML 엘리먼트의 스타일 변경

  • 사용자와의 상호작용, 폼의 유효성 검증

  • 마우스와 키보드 이벤트에 대한 스크립트 실행

  • 웹 브라우저 제어, 쿠키 등의 설정과 조회

  • AJAX 기술을 이용한 웹 서버와의 통신


6. Java vs JavaScript

이름으로는 서로 관련이 있는 언어로 생각하기 쉽지만, 사실상 두 언어는 서로 직접적인 관련이 전혀 없다.

문법상의 비슷한 부분이 존재하지만, 그 이유는 두 언어의 문법이 모두 C언어를 기반으로 만들어졌기 때문이다.

JavaJavaScript
컴파일 언어이다.인터프리터 언어이다.
타입 검사를 엄격하게 한다.타입을 명시하지 않는다.
클래스(Class) 기반의 객체 지향 언어이다.프로토타입(Prototype) 기반의 객체 지향 언어이다.

7. JavaScript 표준

1996년에 넷스케이프(Netscape)는 JavaScript를 국제 표준안으로 만들기 위해 ECMA(European Computer Manufacturers Association)에 제출한다.

그 결과, ECMAECMAScript라는 새로운 표준을 제정하였고, 그 첫 번째 버전인 ECMA-262를 1997년에 공표한다.

ECMAScript는 자바스크립트뿐만 아니라 마이크로소프트의 JScript나 어도비의 액션스크립트도 따르는 국제 표준이 된다.

현재 JavaScript 최신 표준은 2019년에 발표된 ECMAScript 2019(EX2019)이다.


참고 사이트

surim's develog - 웹을 움직이는 근육, JavaScript란 무엇인가?
위키백과 - ECMA스크립트
Dev and Dev - 자바스크립트란?

profile
토끼보다는 거북이처럼 꾸준하게

0개의 댓글