3.2.3 클래스 컴포넌트와 함수형 컴포넌트 사용
리액트에서는 클래스 컴포넌트와 함수형 컴포넌트를 모두 사용할 수 있습니다. 그렇다면 실제 개발에서는 어떤 방식을 사용하는 것이 좋을까요?
리액트 16.8 이전에는 상태 관리나 생명주기 기능을 구현하려면 클래스 컴포넌트를 반드시 사용해야 했습니다. 하지만 클래스 컴포넌트는 문법이 복잡하고, 상태 관리나 코드 재사용이 어렵다는 단점이 있었습니다.
과거에는 클래스 컴포넌트가 표준 방식이었지지만 지금은 상황이 많이 달라졌습니다. 현재는 함수형 컴포넌트가 표준처럼 자리 잡았습니다. 단순히 function 키워드로 컴포넌트를 정의할 수 있어서 자바스크립트를 익힌 사람에게 더 직관적입니다. 또한, 리액트 훅의 도입으로 상태 관리, 생명주기 처리 등 대부분의 기능을 함수형 컴포넌트에서 구현할 수 있게 되었습니다.
리액트 팀 또한 공식 문서에서 함수형 컴포넌트를 기본으로 설명하며, 새로운 기능도 함수형 컴포넌트를 중심으로 설계되고 있습니다. 예전 프로젝트(리액트 16.8 이전)나 레거시 코드를 유지보수하는 경우에는 여전히 클래스 컴포넌트 문법이 필요할 수 있습니다. 그러나 리액트 16.8이 발표된 2019년 이후 대부분 프로젝트에서는 함수형 컴포넌트를 주로 사용합니다.
이 책에서도 함수형 컴포넌트를 기본으로 설명합니다. 앞으로 컴포넌트라고 언급할 경우, 별도로 명시하지 않는 한 함수형 컴포넌트를 의미합니다. 클래스 컴포넌트와 구분이 필요한 경우에만 명칭을 명확하게 구분하겠습니다.