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

Fanta Lab

질문 114 · 실전 면접 답변

클래스 컴포넌트와 함수 컴포넌트의 장단점은 어떻게 비교하나요?

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

함수 컴포넌트는 Hook을 통해 관심사별로 상태와 동기화 로직을 응집도 있게 묶어 재사용하기 좋고, this 바인딩 이슈가 없어 현대 React 개발의 표준으로 쓰입니다. 다만 렌더마다 함수가 새로 실행되므로 클로저 스냅샷과 의존성 배열 규칙을 정확히 이해해야 합니다. 반면 클래스 컴포넌트는 인스턴스와 명시적인 수명주기 메서드에 기반해 레거시 코드베이스 유지보수나 Error Boundary 구현 시 여전히 이해해야 할 가치가 있습니다. 따라서 신규 기능은 함수 컴포넌트로 작성하되, 잘 동작하는 기존 클래스 코드를 리스크와 검증 계획 없이 단지 문법 통일만을 위해 일괄 재작성하지는 않습니다.

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

  1. 문법의 길고 짧음보다 '인스턴스 변경 모델(this)'과 '렌더 스냅샷 캡처 모델(클로저)'이라는 실행 원리의 차이를 짚는 것이 중요합니다.
  2. 참고로 둘 다 React 컴포넌트이므로 면접에서 흔히 쓰이는 '컴포넌트형 vs 함수형'이라는 말 대신 '클래스 컴포넌트 vs 함수 컴포넌트'로 정확히 표현하는 것이 좋습니다.

면접에서 자주 하는 실수

함수 컴포넌트가 클래스 컴포넌트보다 무조건 렌더링 속도가 빠르다거나 모든 레거시 클래스를 당장 함수로 바꿔야 한다고 단정하지 않습니다.

원리와 예제까지 읽기

공식 참고 자료

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

← React