해당 글은 제로베이스 프론트엔드 오프라인스쿨 진행 과정 중 모던 자바스크립트 Deep Dive책을 공부하며 정리한 내용을 나타내는 글이다.

1차는 1장에서 부터 3장까지 내용을 적어보았다.

 

1장 프로그래밍

1.1  프로그래밍이란
-
컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션
- 0
1밖에 모르는 기계가 실행할 수 있게 정확하고 상세하게 요구사항을 설명하는 작업
-
요구 사항의 집합을 분석하여 적절한 자료구조와 함수의 집합으로 변환 후 그 흐름을 제어

문제 해결 방안을 고려할 때 컴퓨터입장에서 바라보아야 함(컴퓨팅 사고)

 

1.2  프로그래밍 언어
-
컴퓨터와의 대화에 사용되는 일종의 표현 수단
-
사람과 컴퓨터 모두가 이해할 수 있는 약속된 형태의 인공어
-
구문(Syntax)과 의미(Semantics)의 조합으로 표현

 

2장 자바스크립트란?

2.1  자바스크립트 탄생
-
웹 페이지의 보조적 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어 가 넷스케이프에서 만든 JS였음
- MS
에서도 Jscript를 만들어서 경쟁

 

2.2  JS 표준화
-
두 업체가 시장 점유율 높이기 위해 자사 브라우저에서만 동작하는 기능을 추가함으로써 브라우저에 따라 웹페이지가 정상 작동하지 않는 크로스 브라우징 이슈 발생
-
이에 넷스케이프에서 ECMAJS 표준화 요청 -> ECMAScript로 명명
- ES5
HTML5와 함께 출현한 표준 사양
- ES6
let/const키워드, 화살표 함수, 클래스, 모듈 등 범용 프로그래밍 언어 기능들 대거 도입

 

2.3  JS 성장의 역사
-
초창기 JS는 웹 보조적 기능 수행하는 한정적 용도
-
렌더링: HTML, CSS, JS로 작성된 문서를 해석하여 브라우저에 시각적으로 출력
Server Side Rendering(
서버에서 데이터를 HTML로 변환해서 브라우저에게 전달)을 가리키기도 함.

 

2.4  Ajax
-
서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능
-
이전 웹 페이지는 완전한 HTML 코드를 서버로부터 전송 받아 웹페이지 전체를 렌더링 하는 방식이 였음 이에 따라서 화면이 전환되면 전체를 다시 렌더링 하며 성능 저하 발생(깜박임 등)
- Ajax
등장으로 필요한 곳만 렌더링 하는 한정적 렌더링 방식이 가능
-
대표적 구글 맵스

 

2.5  JQuery
- DOM
을 더욱 쉽게 제어
-
크로스 브라우징 이슈 어느정도 해결

 

2.6  V8 JS 엔진
- UX
를 제공할 수 있는 웹 어플리케이션 프로그래밍 언어로 정착
-
과거 웹 서버에서 수행되던 로직들이 대거 클라이언트(브라우저)로 이동 했고 FE영역이 주목받는 계기가 됨

 

2.7  Node.js
- V8
엔진으로 빌드 된 JS 런타임 환경
-
브라우저 이외의 환경에서도 동작할 수 있도록 해주는 자바스크립트 실행 환경
-
서버 사이드 애플리케이션 개발에 주로 사용
-
빌트인 API(모듈, 파일시스템, HTTP ) 제공
-
비동기 I/O 지원
-
단일 스레드 이벤트 루프 기반 동작
- SPA(Single Page Application)
에 적합

 

2.8  SPA(Single Page Application)
-
웹 애플리케이션이 점점 성능과 사용자 경험을 제공하는 데에 요구가 높아짐에 따라 규모와 복잡도가 상승하며 프레임워크가 등장하게 됨.
- CBD(Component Based Developmnet)
방법론을 기반으로 하는 SPA가 대중화가 시작

 

2.9  JSECMAScript
- ECMAScript
JS의 표준사양인 ECMA-262 핵심 문법 규정
- JS
는 프로그래밍 언어로서 기본 뼈대를 이루는 ECMAScript와 브라우저가 별도 지원하는 Client Side Web API를 아우르는 개념임

 

2.10  JS 특징
-
웹 브라우저에서 동작하는 유일한 프로그래밍 언어
-
별도의 컴파일 작업 수행하지 않는 인터프리터 언어
-
명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어이다.
-
프로토타입 기반의 객체지향 언어

 

3장 자바스크립트 개발 환경과 실행 방법

- 책 참고하여 실행...