리액트 스터디 3탄) virtual DOM

2022. 7. 12. 15:47·웹/리액트

리액트를 다루는 기술을 참고하여 기술하였습니다.


DOM이란?

DOM은 Document Object Model의 약자로, 객체로 문서 구조를 표현하는 방법이다. 사용하는 언어는 html이나 xml이다.

html은 자체적으로는 정적이다. 하지만 우리는 자바스크립트를 통해 이를 동적으로 만들수 있다.

하지만 이러한 DOM의 경우에는 치명적인 단점이 존재하는데, 바로 규모가 커지면 DOM에 직접 접근햇을때, 변화를 주려고 하면 성능 이슈가 발생한다.

하지만 DOM자체는 느린것이 아닌데, 왜 이런 문제가 생기는것일까?

바로 DOM에서 변화가 생길때, 렌더링을 하는 시간이 걸리는것이다.

이를 해결하기 위해서 virtual DOM을 사용하게 된다.

virtual DOM

앞서, dom을 직접적으로 조작할때, 연산이 많아지면 다양한 성능이슈가 발생한다고 햇는데, 그렇다면 해결방법은 어떤게 있을까?

단순하다, 그냥 연산을 줄이면된다.

리액트에서는 이를 virtual dom이라느 방법을 사용하는데,

다음과 같은 3가지 절차를 밟게 한다.

  1. 데이터 업데이트를 할때 전체 ui를 virtual dom에 리렌더링함
  1. 이전 dom과 virtual dom을 비교함
  1. 실제 바뀐 부분만 dom에 적용함.

즉 virtual DOM은 실제 DOM의 비교를 위한 사본이라고 생각하면 쉽게 이해가 간다.


Uploaded by N2T

반응형

'웹 > 리액트' 카테고리의 다른 글

리액트 스터디 5탄) state  (0) 2022.07.12
리액트 스터디 4탄) props  (0) 2022.07.12
리액트 스터디 2탄) 리액트란?  (0) 2022.07.12
리액트 스터디 1탄) mvc 아키텍쳐  (0) 2022.07.12
useEffect에 대해서  (0) 2022.06.04
'웹/리액트' 카테고리의 다른 글
  • 리액트 스터디 5탄) state
  • 리액트 스터디 4탄) props
  • 리액트 스터디 2탄) 리액트란?
  • 리액트 스터디 1탄) mvc 아키텍쳐
진ddang
진ddang
안녕하세요 진땅의 개발자 블로그 입니다. 피드백은 환영입니다. 깃헙 : https://github.com/it794613
    반응형
  • 진ddang
    맛동산이
    진ddang
  • 전체
    오늘
    어제
    • 분류 전체보기 (199) N
      • 일기 그리고 목표 (1)
      • 웹 (20)
        • 리액트 (19)
      • 앱 (115)
        • Swift 문법 (15)
        • Swift (65)
        • SwiftUI (32)
        • 리액트 네이티브 (3)
      • CS (30)
        • 컴퓨터그래픽스 (8)
        • 운영체제 (6)
        • 네트워크 (16)
      • 알고리즘 (13)
        • 백준 (12)
        • 프로그래머스 (1)
      • 대외활동 (7)
        • ict한이음(2022.04) (2)
        • 멋쟁이 사자처럼 (5)
        • Apple Developer Academy (0)
      • 다양한 내용들 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    멋쟁이사자처럼
    위젯킷
    대외활동
    영남대
    composable architecture
    c++
    웹
    ReactorKit
    widgetkit
    문법
    백준
    컴퓨터그래픽스
    spritekit
    알고리즘
    스위프트
    TCA
    widget
    dispatchqueue
    cs
    uikit
    swift concurrency
    리액트
    Swift
    후기
    운영체제
    네트워크
    Protocol
    SwiftUI
    멋사
    스유
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
진ddang
리액트 스터디 3탄) virtual DOM
상단으로

티스토리툴바