들어가기 전에
프로그래머의 역할은 요구사항을 기반으로 문제를 해결하기 위한 방안을 고안하고, 이를 코드로 구현하는 것입니다.
이때 자신이 구현한 코드가 컴퓨터 내부에서 어떻게 동작할 것인지 예측 가능해야 하며, 명확히 설명할 수 있어야 합니다.
✔️ 너무나 중요한 내용. 프로그래머는 코드라는 '도구'를 이용하여, 문제를 해결하는 사람.
1장. 프로그래밍
프로그래밍이란?
문제(요구사항)의 집합을 분석 → 적절한 자료구조와 함수의 집합으로 변환한 후 → 그 흐름을 제어하는 것.
✔️ 컴파일러(인터프리터) : 프로그래밍 언어를 기계어로 변환하는 역할
2장. 자바스크립트란? + 3장
자바스크립트의 역사
- 크로스 브라우징 이슈 → 자바스크립트 표준화의 필요성 대두 → ECMAScript 등장
- ES6(let, const 등 현대 자바스크립트 개념 대거 정립) 이후 매년 작은 변화들만 업데이트되는 중
Ajax(Asynchronous Javascript and XML) - 1999년 등장
- 서버 ~ 브라우저 간 비동기 방식으로 데이터를 교환할 수 있는 통신 기능
- XMLHttpRequest 객체를 사용
- 전체를 새로고침하지 않고, 필요한 부분만 한정적으로 렌더링할 수 있음 → UX 대폭 상승
Node.js - 2009년 등장
- Javascript 엔진을 브라우저에서 독립시킨 Javascript 런타임 환경(=실행 환경)
- 비동기 I/O, 싱글 스레드 이벤트 루프 기반
자바스크립트의 특징
- 웹 브라우저에서 동작하는 유일한 프로그래밍 언어
- 개발자가 별도의 컴파일 작업을 수행하지 않는 인터프리터 언어
- 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 언어
자바스크립트 실행 환경
✔️ 브라우저와 Node.js는 각각 자바스크립트 엔진을 내장하고 있음 → 자바스크립트는 브라우저 또는 Node.js 환경에서 실행됨.
✔️ But, 각각의 용도가 다름.
- 브라우저 : 웹페이지 렌더링이 목적
- Node.js : 브라우저 외부에서 JS 실행 환경을 제공하는 것이 목적
✔️ 따라서, 기본적인 ECMAScript 이외에 추가적으로 Javascript에서 제공되는 기능들이 브라우저와 Node.js 간에 호환되지 않음.
- Client-side API (DOM, CSSOM 등) : 브라우저 지원 O / Node.js 지원 X
→ Node.js에서 크롤링 시 DOM으로 접근하기 위해서 cheerio를 써야 했던 이유! - Node.js 고유 API (fs, http 등) : 브라우저 지원 X / Node.js 지원 O
'TIL > JavaScript' 카테고리의 다른 글
[Modern Javascript Deep Dive] 4장. 변수 (작성중) (0) | 2022.12.12 |
---|