해당 글은 제로베이스 프론트엔드 오프라인스쿨 진행 과정 중 모던 자바스크립트 Deep Dive책을 공부하며 정리한 내용을 나타내는 글이다.
1차는 1장에서 부터 3장까지 내용을 적어보았다.
1장 프로그래밍
1.1 프로그래밍이란
- 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션
- 0과 1밖에 모르는 기계가 실행할 수 있게 정확하고 상세하게 요구사항을 설명하는 작업
- 요구 사항의 집합을 분석하여 적절한 자료구조와 함수의 집합으로 변환 후 그 흐름을 제어
문제 해결 방안을 고려할 때 컴퓨터입장에서 바라보아야 함(컴퓨팅 사고)
1.2 프로그래밍 언어
- 컴퓨터와의 대화에 사용되는 일종의 표현 수단
- 사람과 컴퓨터 모두가 이해할 수 있는 약속된 형태의 인공어
- 구문(Syntax)과 의미(Semantics)의 조합으로 표현
2장 자바스크립트란?
2.1 자바스크립트 탄생
- 웹 페이지의 보조적 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어 가 넷스케이프에서 만든 JS였음
- MS에서도 Jscript를 만들어서 경쟁
2.2 JS 표준화
- 두 업체가 시장 점유율 높이기 위해 자사 브라우저에서만 동작하는 기능을 추가함으로써 브라우저에 따라 웹페이지가 정상 작동하지 않는 크로스 브라우징 이슈 발생
- 이에 넷스케이프에서 ECMA에 JS 표준화 요청 -> 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 JS와 ECMAScript
- ECMAScript는 JS의 표준사양인 ECMA-262 핵심 문법 규정
- JS는 프로그래밍 언어로서 기본 뼈대를 이루는 ECMAScript와 브라우저가 별도 지원하는 Client Side Web API를 아우르는 개념임
2.10 JS 특징
- 웹 브라우저에서 동작하는 유일한 프로그래밍 언어
- 별도의 컴파일 작업 수행하지 않는 인터프리터 언어
- 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어이다.
- 프로토타입 기반의 객체지향 언어
3장 자바스크립트 개발 환경과 실행 방법
- 책 참고하여 실행...
'JS DeepDive' 카테고리의 다른 글
모던 자바스크립트 DeepDive 공부 내용 6차 (0) | 2023.05.08 |
---|---|
모던 자바스크립트 DeepDive 공부 내용 5차 (0) | 2023.05.08 |
모던 자바스크립트 DeepDive 공부 내용 4차 (0) | 2023.05.08 |
모던 자바스크립트 DeepDive 공부 내용 3차 (0) | 2023.05.08 |
모던 자바스크립트 DeepDive 공부 내용 2차 (0) | 2023.01.03 |