JavaScript란 무엇인가?

아쉽게도 공식 홈페이지를 찾지 못했다. 여러 설명 글들을 참고하여 적어보고자 한다.


JavaScript 정의

웹 페이지를 동적(dynamic)으로 만들어주는 프로그램이 언어

정의부터 '동적'인 것이 포인트라는 것을 알 수 있다.
동적인 것은 무엇이고 정적(static)인 것과 어떻게 다를까

이는 우리가 이전에 학습했던 HTMLCSS와의 비교로 쉽게 알 수 있다.

HTML + CSS :
사용자의 행동에 반응하지 않음, 화면이 자동으로 변하지 않음, 데이터가 변하지 않음, 단순 정보 제공 목적 → 정적 웹페이지 | 구조와 디자인은 있지만 "행동"은 없다

HTML + CSS + JavaScript : 사용자와 상호작용 가능, 화면이 반응함, 페이지가 살아있는 것처럼 동작 → 동적 웹페이지


JavaScript의 특징

JavaScript의 정의는 알아보았다. 이제 특징을 알아보자.

1️⃣ 인터프리터 언어 (Interpreter Language)

인터프리터 언어란, 컴파일러 작성 없이 바로 실행되는 것을 말한다.

C나 JAVA는 코드 작성 → 컴파일 → 실행의 과정을 거치는 반면
JavaScript는 코드 작성 → 바로 실행으로 가능하다

즉, 결과를 바로 확인할 수 있다. 웹 브라우저 콘솔에서 바로 테스트 할 수 있다는 큰 장점을 가지고 있다.

📍 웹 브라우저 콘솔에서 바로 테스트 하는 방법

개발자 도구 열기
Windows/Linux: F12 또는 Ctrl + Shift + I
Mac: Cmd + Option + I

Console 탭 클릭
→ 바로 JavaScript 코드 실행 가능!

2️⃣ 동적 타입 언어 (Dynamically Typed Language)

JavaScript는 변수의 타입을 미리 선언하지 않는다.

let data = 10;       // number
data = "Hello";      // string
data = true;         // boolean

하나의 변수에 서로 다른 타입의 값이 들어갈 수 있다.

이것은 유연하지만, 동시에 실수를 만들기 쉬운 특징이기도 하다.

3️⃣ 객체 기반 언어 (Object-Based Language)

JavaScript는 객체를 중심으로 동작한다.

let person = {
  name: "Alice",
  age: 25,
  greet: function() {
    console.log("Hello");
  }
};

데이터와 기능을 하나의 객체 안에 묶을 수 있다.
현대 JavaScript는 클래스 문법도 지원한다.

4️⃣ 함수가 1급 객체 (First-Class Function)

JavaScript에서는 함수도 값처럼 다룰 수 있다.

  • 변수에 저장 가능
  • 다른 함수의 인자로 전달 가능
  • 함수의 반환값으로 사용 가능
function greet() {
  return "Hello";
}

let say = greet;
console.log(say());

이 특징 덕분에 콜백, 클로저, 고차 함수 같은 개념이 등장한다.

5️⃣ 이벤트 기반 언어 (Event-Driven Language)

JavaScript는 “이벤트”에 반응한다.

  • 클릭
  • 입력
  • 스크롤
  • 로드 완료
button.addEventListener("click", function() {
  console.log("clicked");
});

이벤트 기반 구조가 바로 “dynamic”의 핵심이다.


JavaScript는 어디에서 실행될까?

처음 JavaScript는 웹 브라우저에서 실행되는 언어였다.
브라우저는 단순히 HTML을 보여주는 프로그램이 아니라,
JavaScript 코드를 해석하고 실행하는 엔진(JavaScript Engine)을 가지고 있다.

예:

Chrome → V8 엔진
Firefox → SpiderMonkey
Safari → JavaScriptCore

즉,

브라우저가 JavaScript를 실행해준다.

이러한 브라우저 환경에서 실행되는 JavaScript는 다음과 같은 것들을 제어할 수 있다.

  • HTML 요소 조작 (DOM)
  • 사용자 이벤트 처리
  • 화면 변경
  • 네트워크 요청 (fetch)
  • 로컬 저장소 접근

이 부분이 바로 “dynamic web page”를 만드는 핵심이다.

❗JavaScript는 브라우저 밖에서도 실행된다

Node.js가 등장하면서 JavaScript는 서버에서도 실행할 수 있게 되었다.

환경역할
Browser사용자 인터페이스 제어
Node.js서버 프로그램 실행

JavaScript를 배워야하는 이유

그렇다면 왜 이 JavaScript를 배우고 사용해야할까?

JavaScript는 현재 웹 생태계에서 가장 영향력 있는 언어 중 하나다.

GitHub 통계 (2024):
1위: JavaScript
2위: Python
3위: Java

Stack Overflow 개발자 설문:

  • 가장 많이 사용되는 언어 1위
  • 8년 연속 1위 유지

또한, 하나의 언어로 모든 것을 할 수 있다. 크로스 플랫폼인 것이다.

  • 웹 프론트엔드 (React, Vue, Angular)
  • 웹 백엔드 (Node.js, Express)
  • 모바일 앱 (React Native)
  • 데스크톱 앱 (Electron)

"Write once, run anywhere"

이렇기에 아주 많은 사용자들이 존재하고 그에 따라 커뮤니티도 매우 활발하다.

  • npm: 200만 개 이상의 패키지
  • GitHub: 수백만 개의 프로젝트
  • Stack Overflow: 수백만 개의 질문/답변
  • 많은 튜토리얼, 강의, 블로그

커뮤니티의 활발함은 무엇인가에 막혔을 때 그 해결책을 찾기에 아주 용이하다.


이렇게 JavaScript의 기본 개념에 대해 살펴보았다.
다음 장에서부터 기본 문법에 대하여 알아보겠다. Peace🤘

profile
다른 건 노력의 시간

0개의 댓글