Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

wa_ter_ve

Javascript 1-1 기본 개념 본문

공부/GDG

Javascript 1-1 기본 개념

수win 2024. 9. 29. 02:16

Javascript

1995년 넷스케이프에서 개발되어, 현재 대부분의 브라우저에서 사용되며 서버 측까지 범용적으로 사용되고 있는 프로토타입 기반의 객체지향 언어.

 
 

📌 HTML과 자바스크립트의 상호작용

* html = 기본 구조, css = 스타일, Javascript = 동적 기능 제어

  • HTML: 웹 페이지의 구조를 정의하는 마크업 언어
  • Javascript: 웹 페이지에 동적인 기능을 추가하는 프로그래밍 언어

Javascript는 HTML의 기본 구조 위에 동적인 기능을 추가하여 더욱 풍부한 사용자 경험을 제공 가능.
 


📌 ECMAScript(ES)란?

= 자바스크립트의 표준 규격을 정의한 스크립트 언어.

 

역할

  • 문법, 기능 정의:
    ECMAScript는 자바스크립트의 기본 문법, 데이터 타입, 함수, 객체 모델 등의 동작을 정의
    → 자바스크립트 엔진이 일관된 방식으로 해석과 실행이 가능
  • 버전 관리:
    자바스크립트의 발전에 따라 ECMAScript도 이에 맞춰 업그레이드 되고 있음.

💠 ES6(또는 ECMAScript 2015)의 주요 기능

  • let, const를 통한 변수 선언
  • Arrow function (=>)
  • class
  • 모듈 시스템 (import, export)
  • Template literal (백틱 ``을 사용한 문자열)
  • Promise 비동기 처리
  • Destructuring (구조 분해 할당)

💠 최신 주요 기능

  • ES7: 배열의 includes() 메서드, 지수 연산자 **
  • ES8: async/await 비동기 처리 방식, 객체의 Object.entries(), Object.values() 메서드
  • ES9: 비동기 반복문 (for await of), 객체의 spread/rest 연산자
  • ES10: Array.flat(), Array.flatMap() 등의 배열 처리 기능
  • ES2020: BigInt 숫자 타입, Promise.allSettled(), null 병합 연산자 (??) 등
  • ES2021: 논리 연산자 &&, ||에 대한 할당 기능, WeakRef, Promise.any() 등

+ babel과 같은 트랜스파일러를 사용하여 구형 브라우저에서도 최신 자바스크립트 코드를 사용할 수 있도록 변환 가능.

 


📌 브라우저의 동작 과정

 
* 브라우저의 핵심 기능은 사용자가 참조하고자 하는 웹페이지를 서버에 요청(Request)하고 서버의 응답(Response)을 받아 브라우저에 표시하는 것!

① 사용자가 URL 입력
- 사용자가 웹 사이트의 주소를 입력 또는 클릭 시 요청 시작.

② DNS 조회
- DNS(=Domain Name System)은 인터넷 프로토콜의 한 종류.
브라우저: 입력된 URL의 이름을 IP주소로 변환하기 위해 DNS 조회를 하여 IP 주소를 찾음.

③ 서버에 요청 전송 (HTTP/HTTPS)
브라우저: 해당 IP 주소로 HTTP/HTTPS 프로토콜을 이용하여 서버에 요청 전송.
(주로 GET요청 사용)

④ 서버의 응답- 서버: 브라우저로부터 요청 받은 리소스를 응답으로 전송.
(이때 응답에는 상태 코드도 포함됨.)

⑤ HTML 파싱 및 DOM 생성
- 브라우저가 HTML 파일을 받으면 이를 파싱 후 DOM(Document Object Model) 생성.
* DOM? → HTML 문서를 트리 구조로 나타낸 것. 각 HTML 태그가 노드로 변환됨.

⑥ CSS 파싱 및 CSSOM 생성
- CSS 파일을 파싱하여 CSSOM(CSS Object Model) 생성.
* CSSOM? → 스타일 규칙으로 DOM과 함께 웹 페이지의 스타일을 결정하는 데 사용됨.

⑦ Javascript 파싱 및 실행
- 브라우저: js 파일을 다운로드 및 파싱하여 실행.
Javascript 코드: DOM/CSSOM 관리 및 수정 가능.

⑧ 렌더 트리 생성 및 레이아웃 계산
- DOM + CSSOM => 렌더트리(Render Tree) 생성.
렌더트리: 화면에 구현되는 요소들만 포함함.

⑨ 페인팅(Painting)
- 브라우저가 렌더트리를 바탕으로 화면에 요소를 그리는 과정을 Painting이라고 함.

⑩ Reflow 및 Repaint
- JS or CSS가 DOM or CSSOM을 변경하면 브라우저는 렌더트리 재생성과 레이아웃 재계산을 수행.
이 과정을 Reflow라고 하며 다시 화면을 그리는 과정을 Repaint라고 함.

⑪ 인터랙션 처리
- 브라우저는 사용자의 클릭, 스크롤, 입력 등의 이벤트를 매우 빠르게 처리하고 동작함.
* Time to Interactive (TTI)? → DNS 조회와 SSL 연결이 이루어지는 첫 요청부터 페이지가 상호작용할 준비가 될 때까지 얼마나 걸리는지를 측정하는 단위.

 

 
 

☑️요약

● HTML/CSS/JS 파일 요청
HTML → DOM → CSSOM 생성
렌더 트리 생성
레이아웃 계산
페인팅
사용자 인터랙션 처리

 +) 필요에 따라, Reflow/Repaint
 

이처럼 브라우저는 동기적으로 HTML, CSS, Javascript를 처리함.
 
 
 

'공부 > GDG' 카테고리의 다른 글

Javascript 2 DOM  (5) 2024.10.07
GDG-WEB 2주차 과제  (0) 2024.10.01
Javascript 1-4 연산자  (0) 2024.09.30
Javascript 1-3 제어문  (0) 2024.09.30
Javascript 1-2 변수와 데이터 타입  (0) 2024.09.29