View를 반영하는 패러타임의 변화
AS-IS
- 변경된 데이터를 View에 반영하는 방식
- 어플리케이션의 규모가 커지면, 업데이트된 항목에 따라 어떤 부분을 변경할지가 복잡해지고 관리가 어려워짐
TO-BE; 리액트
- 어떤 데이터가 변할 때마다 어떤 변화를 줄지 고민하는 것이 아니라 그냥 기존 View를 날려버리고 처음부터 새로 렌더링하자
- 그러면 어떤 변화를 줄지 신경 쓸 필요도 없고 그저, View가 어떻게 생길지 선언하고 데이터에 변화가 생기면 기존 View를 버리고 신규 View로 다시 렌더링함
- 하지만 이렇게 전체 View를 날리고 다시 렌더링하다보면 레이아웃을 다시 계산해야하고 이를 화면에 draw / repaint하는 과정이 느림
- 따라서 리액트에서는 VirtualDOM을 사용하여 기존과 달라진 부분에 대해서만 갱신하고 DOM 처리 횟수를 줄여서 효율적으로 업데이트를 진행함
조화 과정
render 함수를 통해 기존 뷰와 신규 뷰를 비교하여 차이점을 찾고 최소한의 연산으로 업데이트를 진행하는 과정을 '조화(reconciliation)' 이라고 함