React Virtual DOM의 개념과 장점에 대해 설명해 주세요. useMemo와 useCallback의 개념과 차이점을 설명해 주세요. props와 state에 대해 설명해주세요. 클래스형 컴포넌트와 함수형 컴포넌트를 비교해주세요. 라이프 사이클에 대해 설명해 주세요.