
2장 자바스크립트란?
자바스크립트는 브렌던 아이크가 웹페이지의 보조적인 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어를 도입했다.
96년 넷스케이프 내비게이터2에 탑재되었고, 모카로 명명되었다가 라이브스크립트 -> 자바스크립트라는 이름으로 최종 명명되었다.
하지만 마이크로소프트가 파생 버전인 JScript 를 인터넷 익스플로러에 탑재하며 문제가 발생했는데,
JScript와 자바스크립트가 적당히 호환되는 것이었다.
(자사 브라우저 시장 점유율을 높이기 위해 자사 브라우저에서만 동작하는 기능을 경쟁적으로 추가하기 시작)
이로 인해 브라우저에 따라 웹 페이지가 정상적으로 동작하지 않았고 (크로스 브라우징 이슈),
이에 표준화된 자바스크립트 필요성이 대두되기 시작하면서
(자바스크립트 만든 회사에서) 컴퓨터 시스템의 표준을 관리하는 ECMA 인터내셔널에 표준화를 요청한다.
97년 이후 표준화된 자바스크립트 초판 사양이 완성되었고,
15년에 (줄여서) ES6가 나오면서 let/const, 화살표 함수 등이 도입되었다.
초창기 자바스크립트는 정말 딱 웹페이지의 보조적인 기능 수행을 위해 한정적인 용도로 사용되었다.
99년엔 Ajax가 등장한다.
자바스크립트를 이용해 서버와 브라우저가 비동식 방식으로 데이터를 교환할 수 있는 통신 기능으로,
XMLHttpRequest라는 이름으로 등장했다.
이전의 웹 페이지는 완전한 html 코드를 (서버로부터) 전송받아 페이지 전체를 렌더링하는 방식으로 동작했으나
화면이 전환되면 다시 전체를 처음부터 렌더링 했다.
이러한 방식은 변경할 필요가 없는 부분까지 다시 전송받기 때문에 불필요한 데이터 통신이 발생했고 성능 면에서도 불리했다.
Ajax가 등장하면서 필요한 데이터만 전송받아 변경해야 하는 부분만 렌더링하는 방식이 가능해졌다.
이게 좀 헷갈렸는데 간단하게 설명하자면 그냥 HTTP 비동기 통신 방법이고, fetch와 axios의 개념적 조상인 느낌이었다.
비동기 -> 시간이 오래 걸리는 작업을 기다리지 않고, 다른 코드를 먼저 실행하는 방식
jQuery는 2006년에 등장했다.
제이쿼리는 돔을더 쉽게 제어할 수 있었고 위의 크로스 브라우징 이슈도 어느정도 해결했다.
그래서 굉장히 많이 사용했었다고... 지금은 알려진다
V8 자바스크립트 엔진은 2008년에 등장했으며,
더욱 빠르게 동작하는 자바스크립트 엔진의 필요성이 대두될 때 이러한 요구에 부합하는 빠른 성능을 보여주었다.
덕분에 과거에 웹 서버에서 수행되던 로직들이 대거 브라우저로 이동했고, 프론트엔드 영역이 주목받는 계기로 작동했다는 이야기 . . .
Node.js... 며칠 전 나를 괴롭힌 놈이다. 노드js는 2009년 등장했고,
브라우저 자바스크립트 엔진에서만 동작하던 자바스크립트를
브라우저 이외의 환경에서도 동작할 수 있도록
자바스크립트 엔진을 브라우저에서 독립시킨 실행 환경이다.
비동기 I/O를 지원하고 단일 스레드,... 이벤트 루프 기반으로 동작함으로써 요청 처리 속도 좋음... spa에 적합...
뭐 이런 식으로 쓰여있는데
= 빠르고 가볍고 좋고 비동기 지원... 이라고 생각하면 된다.
총정리하자면 Node.js는 자바스크립트를 서버에서도 실행할 수 있게 만든 것이고
그러므로 프론트, 백엔드 모두 가능하다~ 라는 말이다.
SPA 프레임 워크
개발 규모와 복잡도가 상승하며 필연적으로 프레임워크가 등장하게 된다.
정말 쉽게 정리하자면 프레임워크는 정해진 틀 안에서 개발자가 그냥 작성하기만 하면 되는 도구고,
프레임워크와 비교해서 라이브러리는 필요한 기능만 골라서 내가 사용하는 도구다.
그래서 책에서는 앵귤러, 리액트, 뷰 등을 예시로 들고 있지만,
리액트는 라이브러리다.
내가 하나하나 UI를 조립하고? 라우팅도 내가 설정하고? 주도권이 나에게 있기 때문이다.
ECMAScript는 간단하게 말하면 자바스크립트의 표준을 정의한 스펙이다.
자바스크립트는 웹 브라우저에서 동작하는 유일한 프로그래밍 언어다.
또, 인터프리터 언어다.
컴파일 언어에서는 개발자가 프로그램 실행 전 컴파일(코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 과정)을 거쳐야 하는데,
인터프리터 언어에서는 컴파일 과정 없이 코드가 곧바로 실행된다고 한다.
특징
|
컴파일러 언어
|
인터프리터 언어
|
변환 방식
|
한 번에 번역
|
실행하면서 번역
|
속도
|
실행 속도가 빠름
|
실행 속도가 느림
|
실행 과정
|
번역 후 실행 파일 사용
|
코드 수정 후 바로 실행
|
예시 언어
|
C, C++, Rust
|
JavaScript, Python
|
정리하면 요렇다고 한다.
자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍언어고, 많이 오해를 받긴 하지만 클래스 기반 객체지향 언어보다 효율적이면서 강력한 프로토타입 기반의 객체지향 언어라고 한다.
'JS' 카테고리의 다른 글
모던 자바스크립트 딥다이브 4장 - 변수 (0) | 2025.02.09 |
---|---|
모던 자바스크립트 딥다이브 3장 - 자바스크립트 개발 환경과 실행 방법 (0) | 2025.01.27 |
모던 자바스크립트 딥다이브 1장 - 프로그래밍 (0) | 2025.01.27 |
자바스크립트 개념 정리 2 (0) | 2024.04.28 |
자바스크립트 개념 정리 1 (0) | 2024.04.26 |