프로그래밍 언어란?

  • 사람과 0,1만 이해하는 컴퓨터와 소통하기 위해 사용되는 것이 프로그래밍 언어입니다.
  • 대표적인 프로그래밍 언어로는 Java, JavaScript, C, Python등이 있습니다.

JS의 역사

  • 1995년 자바스크립트가 탄생했습니다.

  • LiveScript으로 사용 되고 있다가 당시 Java의 인기로 인해 사람들이 많이 사용하자 이름을 지금의 JavaScript로 변경했습니다.

  • 브라우저 동작 스크립트 언어로 동적인 액션을 만들 수 있고, 제어하기 위해 사용되고 있습니다.

  • 2005년 Ajax 등장으로 기존에는 데이터를 수정하면 반드시 전체 페이지 새로고침을 통해 확인을 해야했지만, 수정된 부분이 새로고침 되어 반영된 것을 확인할 수 있다.

  • 폭발적인 UX(User Experience - 사용자 경험) 향상

  • 2008년 구글에서 V8 엔진 출시했습니다.

  • 2009년 Node.js등장으로 서버 개발이 활성화

    FrontEnd + BackEnd + DB(MongoDB) = FullStack이 가능해졌다.

JS 언어의 특징

1. 객체 지향 프로그래밍 지원

  • 객체지향 vs 절차지향

    ▶︎ 절차지향 프로그래밍 : 첫 번째 일을 처리한 다음에 두 번째 일을 처리

    ▶︎ 객체지향 프로그래밍 : 객체라는 그룹으로 묶어 처리

2. 동적 타이핑

✔️ 동적 타이핑을 지원하는 언어로 변수를 선언할 때 타입을 지정하지 않고, 런타임 시점s에 변수에 할당되는 값에 따라 자동으로 데이터 타입이 결정된다는 것을 의미한다.

  • 런타임(Runtime) : 런타임 시점이란, 프로그램이 실행되는 동안의 시점을 의미합니다. 즉, 코드가 실행되는 동안에 발생하는 시점을 말합니다. 반대의 의미로는 컴파일 시점이 있습니다.

3. 함수형 프로그래밍 지원

  • 일급객체 : 함수를 일반 값과 마찬가지로 변수에 할당하거나, 함수의 인자로 전달하거나, 함수의 반환값으로 사용할 수 있는 객체를 의미합니다.

    // 함수를 변수에 할당
    const add = function (a, b) {
      return a + b;
    };
    
    // 함수를 인자로 받는 함수
    function calculate(func, a, b) {
      return func(a, b);
    }
    
    // 함수를 반환하는 함수
    function getAddFunction() {
      return add;
    }
    
    // 함수를 일급 객체로 다루어 코드의 재사용성을 높임
    console.log(calculate(add, 2, 3)); // 5
    console.log(getAddFunction()(2, 3)); // 5

4. 비동기 처리

✔️ 작업을 순차적으로 기다리지 않고, 병렬로 처리할 수 있도록 하는 방식이다.

5. 클라이언트 측 및 서버 측 모두에서 사용가능

✔️ 자바스크립트는 클라이언트 측에서만 사용하는 것이 아니라, Node.js를 이용하여 서버 측에서도 사용이 가능하다. 이를 통해 웹 개발 전반에 걸쳐 자바스크립트를 활용할 수 있다.