React의 라이프사이클에 대해 설명해주세요.
- 리엑트 클래스 컴포넌트는 라이프 사이클 메서드를 사용하고, 함수형 컴포넌트에서는 리엑트 훅을 사용합니다.
클래스형 컴포넌트에서만 사용하는 라이프 사이클 메서드에 대해 짧게 요약하자면, 컴포넌트가 브라우저상에 나타나고, 업데이트되고, 사라지게 될때 호출되는 메서드들 입니다.
- 저는 리엑트를 쓸때 주로 함수형 컴포넌트를 사용하기때문에 함수형 컴포넌트에서 사용하는 리엑트 훅을 더 자세히 말씀드리겠습니다.
리엑트에서 훅은 함수형 컴포넌트에서 리엑트 state와 라이프사이클 기능을 연동 할수있게 해주는 함수입니다. 리액트 훅을 사용하면 로직 기반으로 컴포넌트를 나눌수 있어 함수 단위로 잘게 쪼갤수 있다는 이점이 있습니다
- useState, useEffect, useContext, useRef 등의 훅을 이용해 라이프사이클 로직을 구현합니다. 컴포넌트의 라이프사이클에는 컴포넌트가 랜더링될 때마다 호출되며 컴포넌트가 생성되어 DOM에 삽입되는 마운트 단계와 컴포넌트의 상태가 변경되는 업데이트 단계, 컴포넌트가 DOM에서 제거되는 언마운트 단계가 있습니다.
React의 장점은 무엇이있나요?
- 제가 사용하는 리엑트에 대한 장점을 말씀드리자면,
첫째, 리엑트는 HTML/CSS/JS를 하나의 파일에 작성할수 있도록 JSX를 활용한 선언형 명시적 프로그래밍을 지향하기 때문에 직관적으로 코드를 짤수 있습니다. 두번째, 리엑트는 하나의 기능구현을 위해 여러 종류의 코드를 묶어둔 컴포넌트를 기반으로 개발할수 있습니다. 컴포넌트로 분리하면 서로 독립적이고, 이후 코드를 재사용이 가능하기 때문에, 기능자체에만 집중할수 있습니다. 또한 컴포넌트 단위로 개발하기 때문에 유지보수와 유닛테스트에 편리합니다.
세번째 리엑트는 자바스크립트 프로젝트 어디에든 유연하게 적용할수 있습니다.
리엑트는 라이브러리이기 때문에 기존에 다른 자바시크립트 프레임워크로 개발된 웹 어플리케이션에 리엑트를 추가해서 개발할수있습니다.
또한 페이스북에서 개발되어 많은 커뮤니티가 활성화되어 있습니다.
마지막으로 리엑트 네이티브를 활용하여 앱개발이 가능합니다.