[초보 중의 왕초보] 초보 공부를 시작하다3

0

1. 오늘 공부 핵심 키워드

//DOM이란 무엇인가????
/DOM과 HTML은 다르다구???

2. DOM과 HTML의 차이

  • DOM이란?: HTML과 밀접한 연관이 있지만, HTML,XML 등의 문서를 브라우저가 해석할 수 있도록 변환한 데이터구조. 즉 브라우저가 HTML이란 문서를 읽기 위한 데이터 구조(웹API 라고 부르는데, 스크립트와 DOM이 합쳐진 것)

3. 브라우저 렌더링

화면에 보여주기 위해 필요한 리소스(자원): 'HTML, CSS, Javascript'

  • 브라우저는 서버에 요청해서 가져오는 것을 렌더링이라고 함.
  • 검사도구에서 네트워크탭에서 브라우저가 요청한 리소스들을 볼 수 있음.

-브라우저 렌더링의 과정들

브라우저의 렌더링 과정

  • 참고 Meta 태그 utf-8을 읽고 거기에 맞춰 인코딩을 함.

  • 렌더트리: 렌더링을 위해 브라우저는 DOM과 CSSOM을 생성하고 렌더 트리로 결합함.

  • HTML 요소들의 위치와 크기를 계산하는 것을 레이아웃 이라고 함.

  • HTML과 CSS는 브라우저의 렌더링 엔진으로 처리하지만 자바스크립트는 자바스크립트 엔진이 처리함. 즉 HTML과 CSS의 렌더링 엔진과 자바스크립트 엔진은 서로 다름.

4. Virtual DOM

  • 웹페이지의 발전에 따라서 빈번한 DOM의 렌더링을 변화해줘야 하는 것에 대응 및 상태를 관리하기 위해 발명하게 됨.
  • ex) 특정 버튼을 눌렀을 때 리얼 DOM을 변경하기 위해 여러번 반복해야 할 것을, Virtual DOM은 그런 과정을 한 번만 렌더링하게 해주는 것.

virtual DOM이 빠르다는 오해

  • Virtual DOM은 많은 메모리를 필요로 함.
  • 리렌더링 할 때마다 props를 통해 데이터를 받고 있는 컴포넌트들 즉, DOM 트리구조에 있는 모든 컴포넌트들이 리렌더링됨.
  • Virtual DOM은 불편함을 느끼지 않을 정도로만 느림
  • 그렇기에 Virtual DOM을 사용하는 React는 빠른 라이브러리라고 할 수는 없음.

자료 출처: 항해99, 리액트와 Vercual DOM

profile
코딩도 재미있고, 프로덕트 디자인도 재밌습니다.

0개의 댓글