🤓 모던 자바스크립트 Deep Dive 책을 통해서 자바스크립트를 공부중입니다.
1. 프로그래밍이란?
프로그래밍이란 요구사항의 집합을 분석해서 적절한 자료구조와 함수의 집합으로 변환한 후, 그 흐름을 제어하는 것입니다.
2. 자바스크립트란?
2.1 자바스크립트의 성장
2.1.1 Ajax
- Ajax는 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능입니다.
- Ajax의 등장으로 웹페이지에서 변경할 필요가 없는 부분은 다시 렌더링하지 않고, 서버로부터 필요한 데이터만 전송받아 변경해야 하는 부분만 한정적으로 렌더링하는 방식이 가능해졌습니다.
이전에 html
태그로 시작해 html
태그로 끝나는 완전한 html
코드를 서버로부터 전송받아 웹페이지 전체를 렌더링하는 방식은 화면이 전환될 때마다 서버로부터 새로운 HTML을 전송받아 웹페이지 전체를 처음부터 다시 렌더링 했습니다.
이런 방식은 변경할 필요가 없는 부분까지 포함된 HTML 코드를 서버로부터 다시 전송받아 처음부터 다시 렌더링하기 때문에 불필요한 데이터 통신이 필요하고, 성능면에서도 불리합니다.
2.1.2 jQuery
- jQuery의 등장으로 DOM(Document Object Model)을 더욱 쉽게 제어할 수 있게 되었고, 크로스브라우징 이슈도 어느정도 해결되었습니다.
- 배우기 쉽고 직관적인 jQuery를 선호하는 개발자가 양산되기도 하였습니다.
2.1.3 V8 자바스크립트 엔진
- V8 자바스크립트 엔진으로 인해 과거 웹 서버에서 수행되던 로직들이 대거 클라이언트(브라우저)로 이동했고, 이는 웹 애플리케이션 개발에서 프론트엔드 영역이 주목받는 계기가 되었습니다.
2.1.4 Node.js
- Node.js는 구글 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경입니다.
- Node.js는 브라우저의 자바스크립트 엔진을 브라우저에서 독립시킨 자바스크립트 실행 환경입니다.
2.1.5 SPA 프레임워크
모던 웹 애플리케이션은 데스크톱 애플리케이션과 유사한 성능과 경험을 제공하는 것이 필수가 되었고, 더불어 개발 규모와 복잡도가 상승하게 되었습니다. 이때문에 CBD(Component Based Development)방법론을 기반으로 하는 SPA(Single Page Application)가 대중화되면서 Angular, React, Vue.js, Svelte 등 다양한 SPA 프레임워크/라이브러리가 많은 사용층을 확보하고 있습니다.
2.2 자바스크립트와 ECMAScript
ECMAScript는 자바스크립트의 표준 사양인 ECMA-262를 말하며, 프로그래밍 언어의 값, 타입, 객체와 프로퍼티, 함수, 표준 빌트인 객체 등 핵심 문법을 규정합니다. 자바스크립트는 프로그래밍 언어로서 기본뼈대를 이루는 EMCAScript와 브라우저가 별도로 지원하는 클라이언트 사이드 Web API(DOM, fetch, SVG, Web Storage, Web Component 등)를 아우르는 개념입니다.
2.3 자바스크립트 특징
- 자바스크립트는 HTML, CSS와 함께 웹을 구성하는 요소 중 하나로 웹 브라우저에서 동작하는 유일한 프로그래밍 언어입니다.
- 자바스크립트는 개발자가 별도의 컴파일 작업을 수행하지 않는 인터프리터 언어입니다. 컴파일러 언어는 코드가 실행되기 전 단계인 컴파일 타임에 소스 코드 전체를 한번에 머신 코드로 변환한 후에 실행합니다. 반면에 인터프리터 언어는 코드가 실행되는 단계인 런타임에 문 단위로 한 줄씩 중간 코드인 바이트코드로 변환한 후에 실행합니다.
- 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어입니다.