Skip to content

자바스크립트(JavaScript)란 무엇인가?

자바스크립트(JavaScript)는 웹 페이지에 생동감을 불어넣기 위해 만들어진 프로그래밍 언어이다.
HTML이 웹 페이지의 뼈대를, CSS가 디자인을 담당한다면 자바스크립트는 동작을 담당한다.

자바스크립트 탄생 배경

1990년대 중반의 웹은 대부분 정적인 텍스트와 이미지로 이루어진 '읽기만 하는' 공간이었다.
당시 가장 인기 있던 웹 브라우저 '넷스케이프 내비게이터'를 만든 넷스케이프(Netscape)사는 웹에 동적인 기능을 추가하고 싶었다. 예를 들어, 사용자가 폼을 잘못 작성했을 때 서버를 거치지 않고 브라우저에서 즉시 유효성을 검사하는 기능이 필요했다.
이러한 필요성 속에서, 넷스케이프의 개발자 브렌던 아이크(Brendan Eich)는 1995년, 단 10일 만에 새로운 스크립트 언어의 프로토타입을 만들었다.
이 언어는 처음에는 '모카(Mocha)', '라이브스크립트(LiveScript)'로 불렸다. 하지만 당시 큰 인기를 끌던 '자바(Java)'의 마케팅 효과를 얻기 위해 최종적으로 '자바스크립트(JavaScript)'라는 이름을 갖게 되었다. (이름만 비슷할 뿐, 자바와 자바스크립트는 전혀 다른 언어이다.)

자바스크립트의 특징

인터프리터 언어 (Interpreted Language)

Interpreted Language

자바스크립트는 코드를 한 줄씩 읽고 바로 실행하는 인터프리터 방식으로 동작한다.
컴파일(compile)이라는 별도의 변환 과정이 필요 없어 코드 수정 후 결과를 바로 확인할 수 있어 개발 속도가 빠르다.

동적 타입 언어 (Dynamically Typed Language)

변수를 선언할 때 string, number와 같은 타입을 미리 지정할 필요가 없다.
코드가 실행되는 시점에 변수에 할당된 값에 따라 타입이 자동으로 결정된다.
이는 코드를 유연하고 간결하게 만들어 준다.

javascript
// 현재 타입: string
let variable = '안녕하세요';
console.log(variable, typeof variable);

// 같은 변수에 숫자를 할당 -> 타입 변경 -> 현재 타입: number
variable = 100;
console.log(variable, typeof variable);

객체 기반 스크립트 언어 (Object-based Script Language)

현실 세계의 사물이나 추상적인 개념을 객체(Object)로 정의하여 프로그래밍한다.

  • 속성(Property): 객체가 가진 상태나 특징 (예: 자동차의 색상, 모델명)
  • 메서드(Method): 객체가 수행할 수 있는 동작이나 기능 (예: 가속하기, 멈추기)

Object-based Script Language

객체 지향 프로그래밍(OOP)의 핵심인 캡슐화 개념을 바탕으로, 관련 있는 데이터와 함수를 하나로 묶어 관리함으로써 코드의 재사용성과 유지보수성을 높인다.

단일 스레드 및 이벤트 기반 (Single-threaded & Event-driven)

기본적으로 한 번에 하나의 작업만 처리할 수 있는 단일 스레드(Single-threaded) 방식으로 동작한다.
하지만 '클릭', '입력', '네트워크 요청'과 같은 이벤트(Event)가 발생했을 때 특정 함수를 실행하도록 예약하는 이벤트 기반(Event-driven) 모델을 통해 동시성 문제를 한다.
이 덕분에 시간이 오래 걸리는 작업(예: 서버에서 데이터 가져오기)을 기다리지 않고 다른 작업을 계속 처리할 수 있다.

정리

특징설명
역할웹 페이지의 '동작'을 담당하는 스크립트 언어
실행 방식인터프리터 언어 (한 줄씩 바로 실행)
타입 시스템동적 타입 언어 (타입을 미리 지정할 필요 없음)
동시성 모델단일 스레드 & 이벤트 기반 (한 번에 한 작업, 이벤트로 동시성 처리)
활용 분야웹, 서버, 모바일 앱, 데스크톱 앱 등 거의 모든 영역