코드, 면접문제중 아무거나 2문제씩
[Frontend Question]
Answer.
React는 immutable이 유지가 되는데 변경 불가성이란 객체가 생성된 이후 그 상태를 변경할 수 없는 디자인 패턴을 의미합니다. React는 편하게 상태를 관리하기 위해 객체 타입을 사용하는데 이는 참조 타입이라 불변성을 유지할 수 없습니다. 그래서 기존의 주소 값과 다른 새로운 객체를 생성하여 복사한 뒤 해당 프로퍼티를 바꾸는 작업이 필요합니다. 이렇게 객체의 불변성을 유지함으로써 side-effect가 줄어들고 컴포넌트 최적화가 가능합니다.
[Frontend Question]
Answer.
클래스형에 라이프사이클은 크게
mount, update, unmount 3가지 과정으로 나뉩니다.
mount에서 컴포넌트가 만들어질 componetDidMount에서 비동기처리 같은것을 주로하고, shouldComponentUpdate에서 업데이트 직전에 랜더링시(상태가변경)에 조건으로 재랜더링을 하는지 결정을 할 수 있고, componentDidUpdate 업데이트 직후에 호출되는 메소드이며, unmount에서 컴포넌트가 소멸된 시점에 타이머나 비동기 API를 제거할 수 있습니다.