학습 공간 개념 · 판단 · 실험

Fanta Lab

질문 72 · 실전 면접 답변

클래스 컴포넌트의 주요 수명주기 메서드는 어떤 책임을 갖나요?

이렇게 답해 보세요 (핵심 답변)

클래스 컴포넌트에서 render는 부작용 없이 다음 UI를 계산하고, componentDidMount는 초기 마운트 직후의 외부 연결이나 초기 요청을, componentDidUpdate는 커밋된 업데이트 이후의 동기화를, componentWillUnmount는 구독 해제 같은 자원 정리를 담당합니다. 특히 componentDidUpdate에서 상태를 갱신할 때는 이전 props·state와 반드시 비교해 무한 업데이트 루프를 막아야 합니다. 또한 과거의 UNSAFE_ 계열 메서드는 새로운 코드의 기본 패턴으로 사용하지 않습니다.

함께 설명하면 좋은 이유 (꼬리질문 대비)

  1. 렌더 단계의 작업은 재시도되거나 취소될 수 있으므로 외부 부작용은 반드시 커밋 이후 수명주기 메서드에 배치해야 합니다.
  2. componentDidMount에서 등록한 이벤트 리스너나 타이머를 componentWillUnmount에서 해제해야 메모리 누수를 예방할 수 있습니다.

면접에서 자주 하는 실수

렌더 생략 여부를 판단하는 shouldComponentUpdate 내부에서 외부 상태를 변경하거나 부작용을 실행해서는 안 됩니다.

원리와 예제까지 읽기

공식 참고 자료

질문 목록 출처 ↗ · 원본 72번을 바탕으로 질문과 답변을 새로 정리했습니다.

← React