본문 바로가기

TIL/JavaScript

[Modern Javascript Deep Dive] 1장.프로그래밍 / 2장.자바스크립트란? / 3장. 자바스크립트 개발 환경과 실행 방법

들어가기 전에

프로그래머의 역할은 요구사항을 기반으로 문제를 해결하기 위한 방안을 고안하고, 이를 코드로 구현하는 것입니다.
이때 자신이 구현한 코드가 컴퓨터 내부에서 어떻게 동작할 것인지 예측 가능해야 하며, 명확히 설명할 수 있어야 합니다.

✔️ 너무나 중요한 내용. 프로그래머는 코드라는 '도구'를 이용하여, 문제를 해결하는 사람.

 

 

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