자바스크립트란? - 정의와 역사, 특징

MinCheol-Sin·2022년 6월 26일
3
post-thumbnail

22/06/26 학습내용 정리

자바스크립트란?

자바스크립트(JavaScript)는 객체(object) 기반의 언어이다.
HTML로는 웹의 내용을 작성하고, CSS로는 웹의 디자인을 구성하며,
자바스크립트로는 웹의 동작을 구현할 수 있다.

자바스크립트는 주로 웹 브라우저에서 사용되지만, Node.js와 같은 프레임워크를 사용하면 서버 프로그래밍에서도 활용할 수 있다.


자바스크립트의 역사

1995년에 넷스케이프의 브렌던 아이크에 의해 만들어졌다.
처음에는 모카(Mocha)라는 이름으로 개발되었으나 곧이어 라이브스크립트(LiveScript)라는 이름으로 바꾸었고, 현재는 자바스크립트(JavaScript)란 이름으로 사용되고 있다.

자바스크립트라는 이름에는 흥미로운 유래가 있는데, LiveScript’라는 이름으로 불렸을 당시 자바의 인기가 아주 높은 상황이었다고 한다. 관련인들은 자바스크립트를 자바의 ‘동생’ 격인 언어로 홍보하면 도움이 될 것이라는 의사결정을 내리고 이름을 바꿨다고 한다.


자바스크립트의 특징

  1. 객체 기반의 스크립트 언어이다.
  2. 동적이며, 데이터의 타입을 명시할 필요가 없는 인터프리터 언어이다.
  3. HTML 코드화 함께 작성되면서 소스코드가 외부로 공개 되는데 이 과정에서 보안 취약점이 발생할 수 있다.

1. 객체 기반의 스크립트 언어이다.

객체(Object)는 물체, 물건, 대상이라는 뜻을 갖고 있다.
자동차, 컴퓨터, 시계, 고양이 등 우리 주변에 있는 모든 사물이나 생물이 다 객체다.
객체를 어떠한 행위나 의사가 미치는 대상이라는 뜻으로 본다면 눈에 보이지 않는 것들 또한 객체가 될 수 있다.
가령 주문, 관리, 생산 등이 이에 해당한다.

결국 자바스크립트에서 말하는 객체 기반이란,
이러한 객체들을 정의하고 해당 객체들을 기반으로 프로그래밍을 하는 것을 의미한다고 볼 수 있다.

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

자바스크립트를 활용하면 웹 브라우저 상에서 코드가 실시간으로 변화할 수 있다.
사용자의 특정한 행위(버튼 클릭, 글자 입력 둥)를 감지하고 이에 반응한다. 그래서 동적이다.
이는 HTML과는 반대되는 성질이다.
한번 짜놓은 HTML 코드는 그 자체만으로 웹 브라우저 내에서 바뀌지 않는다.
HTML은 사전에 짜여진 코드에 따라 정해진 웹의 내용을 나타내기만 할 뿐이다. 그래서 정적이다.

또한 자바스크립트는 데이터의 타입(자료형)을 명시할 필요가 없다.
변수를 선언하고 값을 할당할 때, 해당 변수의 자료형을 일일이 명시할 필요가 없다는 뜻이다.

let num = 24;  // 변수를 선언했을 뿐 num의 자료형을 명시하지 않았다.
int num = 123;  // int 라는 키워드를 통해 숫자 자료형을 선언하였다.

이는 동적 타입의 특징인데, 정적 타입과 반대되는 개념이다.

정적 타입(static type) 언어

  • 코드를 짤 때 자료형을 미리 선언해야 한다.
  • 한번 선언하면 변수의 자료형을 바꿀 수 없다.
int num = 1234;

num = 'haha';  // error
  • 컴파일 시 프로그램이 자료형을 체크해서 실행 전에 에러를 미리 방지할 수 있다.

동적 타입(dynamic type) 언어

  • 자료형이 런타임 시 결정된다
  • 변수에 저장되는 값의 자료형은 언제든지 바꿀 수 있다.
let message = 'hi';

message = 12345;
  • 위와 같이 매 변수를 선언할 때마다 자료형을 별도로 선언할 필요가 없기 때문에 코드를 짜는 속도가 빨라지며 유연하게 코드를 짤 수 있다.

  • 그때 그때 실행할 때마다 자료형이 정해지기 때문에 실행속도가 느리다.

  • 파일을 실행하기 전까지 타입 오류를 알 수 없어 나중에 예기치 못한 문제가 발생할 수 있다.


동적 타입 언어의 불안정성에 대한 대안책으로 TypeScript가 활용되고 있다.


인터프리터 언어란?

C언어나 Java와 같은 언어는 소스 파일을 작성한 후, 컴파일러를 통해 컴파일을 거쳐야만 사용자가 실행할 수 있는 실행파일(.exe)로 만들어집니다. 하지만 인터프리터 언어는 이러한 컴파일 작업 없이 소스 코드를 바로 실행할 수 있는 언어를 말합니다.
자바스크립트는 웹 브라우저에 기본적으로 포함되어 있는 자바스크립트 인터프리터를 통해 소스 코드가 웹 브라우저 상에서 곧바로 해석을 거쳐 실행됩니다.

profile
천천히, 그러나 앞으로

0개의 댓글