02. 자바스크립트란?

hongSsssso·2023년 2월 19일

1. 자바스크립트의 탄생

  • 넷스케이프 커뮤니케이션즈(회사)에서 웹페이지의 보조기능을 수행하고자 함
  • 브라우저에서 동작하는 경량프로그래밍언어 필요 → 자바스크립트 (브렌던 아이크 개발)
  • 이름: 모카 → 라이브스크립트 → 자바스크립트

2. 자바스크립트의 표준화

  • 마이크로소프트에서 자바스크립트의 파생버전이 ‘JScript’ 출시하여 탑재
  • 마이크로소프트와 넷스케이프 커뮤니케이션즈가 시장점유율일 높이기 위해 자사 브라우저에서만 동작하는 기능 추가 → 브러우저에 따라 웹페이지가 정상 동작하지 않음 (크로스 브라우징 이슈)
  • 넷스케이프가 ECMA인터내셔널(시스템 표준화 관리하는 비영리 표준화 기구)에 자바스크립트 표준화 요청
    • ECMAScript → ECMAScript3(ES3) → ECMAScript5(ES5는 HTML5와 함께 출현)

3. 자바스크립트 성장의 역사

  • 초기 웹페이지: 완전한 HTML 코드를 서버로부터 전송받아 웹페이지 전체를 렌더링 함.
  • 단점
    1. 변경이 필요하지 않은 부분도 다시 전송 받아 불필요한 데이터 통신 발생 → 성능 저하
    2. 깜빡이 현상 생김
  1. Ajax의 등장
    • 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터 교환할 수 있는 통기 기능
    • 변경할 필요가 없는 부분은 렌더링 하지 않고 서버로부터 필요한 데이터만 받아 한정적으로 렌더링
    • ex) 구글 맵스
  2. jQuery
    • DOM을 쉽게 제어할 수 있게되었음
    • 크로스 브라우징 이슈도 해결
  3. V8 자바스크립트 엔진
    • 빠르게 동작하는 자바스크립트 엔진
    • 웹 서버에서 수행되던 로직들이 대거 클라이언츠로 이동함 → 프론트엔드 영역 주목의 계기
  4. Node.js
    • V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경
    • 브라우저 자바스크립트 엔진과 브라우저를 독립시킨 실행환경
    • 서버 사이드 애플리케이션 개발에 주로 사용
    • 빌트 인 API 제공(모듈, 파일 시스템, HTTP 등)
    • 장점 : 프론트엔드, 백엔드 영역 모두 자바스크립트를 사용할 수 있다 → 동형성
    • 비동기 I/O지원, 단일 스레드 이벤트 루프 기반 동작 → I/O가 빈번한 SPA에 적합
  5. SPA 프레임워크
    • 변경에 유연하면서 확장하기 쉬운 애플리케이션 아키텍처 구축을 위해 등장
    • CBD 방법론을 기반
    • ex) Angular, React, Vue, Svelte

4. 자바스크립트와 ECMAScript

  • 프로그래밍 언어의 값, 타입, 객체와 프로퍼티, 함수, 표준 빌트인 객체 등 핵심 문법 규정
  • 자바스크립트 안에 ECMAScript이 있다고 생각하면 됨.

5. 자바스크립트의 특징

  • 웹 브라우저에서 동작하는 유일한 프로그래밍 언어
  • 컴파일 작업을 수행하지 않는 인터프리터(1) 언어 → 속도가 느린 단점 해결
  • 멀티 패러다임 프로그래밍 언어 (명령형, 함수형, 프로토타입 기반, 객체지향 프로그래밍 지원)

용어정리

(1) 인터프리터
소스코드를 즉시 실행하고 컴파일러는 빠르게 동작하는 머신 코드를 생성하고 최적함. 따라서 실행파일을 생성하지 않음

0개의 댓글