[DeepDive] 01 ~ 03

FE 개발자 신상오·2022년 7월 17일
1

모던JS 딥다이브

목록 보기
1/5
post-thumbnail

01장 프로그래밍

프로그래밍이란?

0과 1밖에 알지 못하는 기계가 실행할 수 있을 정도로 정확하고 상세하게 요구사항을 설명하는 작업

프로그래밍 언어

프로그래밍 언어를 사용해 프로그램을 작성 후, 컴파일러, 인터프리터로 컴퓨터가 이해할 수 있는 기계어로 변환해 컴퓨터로 전달한다.


02장 자바스크립트

렌더링(rendering)

HTML, CSS, JS로 작성된 문서를 해석해서 브라우저에서 시각적으로 출력하는 것, 때로는 서버에서 데이터를 HTML로 변환해서 브라우저에게 전달하는 과정(SSR : Server Side Rendering)을 가르키기도 한다.

Ajax

서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 방식

웹페이지에서 변경할 필요가 없는 부분은 다시 렌더링하지 않고, 서버로부터 필요한 데이터만 전송받아 변경해야 하는 부분만 렌더링하게 만듦

Node.js

자바스크립트 런타임 환경

JS를 브라우저 이외 환경에서도 동작할 수 있도록 JS엔진을 브라우저에서 독립시킨 실행 환경
다양한 플랫폼에 적용 가능, 주로 서버 사이드 애플리케이션 개발에 주로 사용되며, 이에 필요한 모듈, 파일 시스템, HTTP 등 built-in API를 제공함

자바스크립트의 특징

  1. 웹브라우저에서 동작하는 유일한 프로그래밍 언어
  2. C, Java와 유사한 문법
  3. 별도의 컴파일 작업을 수행하지 않는 인터프리터 언어
  4. 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어

인터프리터 언어 vs 컴파일러 언어

컴파일러 언어인터프리터 언어
코드 실행 전 단계인 컴파일타임에 소스 코드 전체를 한번에 머신 코드로 변환한 후 실행한다.코드가 실행되는 단계인 런타임에 문 단위로 한 줄씩 중간 코드인 바이트 코드로 변환 후 실행
실행 파일을 생산실행파일 생산 x
컴파일 단계와 실행 단계가 분리. 명시적인 컴파일 단계를 거치고, 명시적으로 실팽 파일을 실행인터프리트 단계와 실행 단계가 분리되어 있지 않음. 인터프리터는 한 줄씩 바이트코드로 변환 후 즉시 실행
실행에 앞서 컴파일은 단 한번 수행코드가 실행될 때마다 인터프리트 과정이 반복 수행
컴파일과 실행 단계가 분리되어 있으므로 코드 실행 속도가 빠름인터 프리트 단계와 실행 단계가 분리되어 있지 않고 반복 수행되므로 코드 실행 속도가 비교적 느림

3장 JS 개발 환경과 실행 방법

브라우저 VS Node.JS

  • 브라우저
    HTML, CSS, JS 실행 웹페이지를 브라우저 화면에 렌더링하는 것이 주된 목적

  • Node.js
    브라우저 외부에서 JS 실행환경을 제공하는 것이 주된 목적

브라우저는 Node.js와 다르게 파일을 생성,수정할 수 있는 파일 시스템을 제공하지 않는다

➡️ 웹 애플리케이션의 JS는 사용자 컴퓨터의 브라우저에서 동작하는데 브라우저를 통해 다운로드되어
실행되는 JS가 로컬 파일을 삭제, 수정, 생성 등의 보안상의 문제를 방지하기위해 브라우저 환경의 JS는 파일시스템을 제공하지 않음

profile
주간 회고용 블로그입니다 (개발일지와 정보글은 티스토리에 작성합니다.)

0개의 댓글