리액트에 있는 라이프 사이클과 각 라이프 사이클의 역할에 대해 설명해주세요.

0

기술면접 - React

목록 보기
5/36

리액트에 있는 라이프 사이클과 각 라이프 사이클의 역할에 대해 설명해주세요.

리액트 라이프사이클이란?

리액트에서는 라이프사이클 메서드를 통해 컴포넌트의 생성, 업데이트, 제거 등의 과정을 관리합니다. 이를 통해 특정 시점에 필요한 동작을 수행할 수 있습니다. 2021년부터 리액트는 함수형 컴포넌트와 Hooks를 더 많이 사용하게 되면서, 라이프사이클 메서드들은 클래스 컴포넌트에서만 사용할 수 있게 되었습니다. 그러나 이에 대한 이해는 중요하므로 기본적인 라이프사이클 메서드에 대해 설명하겠습니다.

라이프사이클의 단계

리액트의 라이프사이클은 크게 세 단계로 나눌 수 있습니다.

  1. Mounting(마운팅): 컴포넌트가 DOM에 삽입되는 단계입니다. 이 단계에는 constructor, render, componentDidMount가 있습니다.

    • constructor: 컴포넌트의 생성자 메서드로, 컴포넌트가 생성될 때 한 번만 호출됩니다. 이 메서드에서는 초기 state를 정의할 수 있습니다.
    • render: UI를 만드는 메서드로, JSX를 반환합니다. 이 메서드 안에서는 이벤트 설정이 아닌 곳에서 setState를 호출하면 안 되며, 브라우저의 DOM에 접근해서도 안 됩니다.
    • componentDidMount: 컴포넌트가 화면에 모두 그려진 후 호출되는 메서드로, 비동기 요청, 이벤트 등록, DOM에 관련된 작업을 처리하는 데 적합합니다.
  2. Updating(업데이트): props 또는 state가 변경되어 컴포넌트가 업데이트되는 단계입니다. rendercomponentDidUpdate 메서드가 있습니다.

    • render: 위와 같습니다.
    • componentDidUpdate: 컴포넌트가 업데이트 된 후에 호출되는 메서드로, 이전 props나 state를 이용해 특정 조건에 따라 다른 동작을 처리할 수 있습니다.
  3. Unmounting(언마운팅): 컴포넌트가 DOM에서 제거되는 단계입니다. componentWillUnmount 메서드가 있습니다.

    • componentWillUnmount: 컴포넌트가 화면에서 사라지기 전에 호출되는 메서드로, 이벤트 해제 등 필요한 정리 작업을 수행하는 데 사용합니다.

리액트 16.3 이후로 라이프사이클에 변화가 있었으며 componentWillMount, componentWillReceiveProps, componentWillUpdate가 deprecated(사용이 권장되지 않는) 되었습니다. 대신 새로운 라이프사이클 메서드인 getDerivedStateFromProps, getSnapshotBeforeUpdate가 도입되었습니다.

그러나 대부분의 경우, 라이프사이클 메서드보다는 리액트 Hooks(useState, useEffect, useContext 등)를 사용해 더 간결하고 이해하기 쉬운 코드를 작성하는 것이 일반적입니다. 2021년 이후로 클래스 컴포넌트보다 함수형 컴포넌트와 Hooks 사용이 권장되고 있습니다.

profile
지치지 않는 백엔드 개발자 김성주입니다 :)

0개의 댓글