[REACT] 리액트란 무엇인가?

리액트는 자바스크립트 라이브러리의 하나로 사용자 인터페이스를 만들기 위해 사용됩니다. 페이스북에서 개발한 리액트는 프론트엔드 웹 애플리케이션의 구성 요소들을 모듈화하고, 이들을 조합하여 복잡한 UI를 구성할 수 있는 방법을 제공합니다. 리액트는 가상 DOM(Virtual DOM) 기술과 컴포넌트 기반 아키텍처를 활용하여 애플리케이션의 성능을 최적화하며, 개발 생산성을 높이는 데 중점을 두고 있습니다.

 

리액트의 특징

  1. 컴포넌트 기반 아키텍처 : 리액트는 UI를 독립적이고 재사용 가능한 컴포넌트로 분할하여 개발하는 컴포넌트 기반 아키텍처를 채택합니다. 이는 복잡한 UI를 작은 조각으로 나누어 개발과 유지보수를 용이하게 합니다. 각 컴포넌트는 자체적으로 상태(state)와 속성(props)을 가질 수 있으며, 이를 통해 컴포넌트 간 데이터 흐름과 상호작용을 효과적으로 관리할 수 있습니다.
  2. JSX 문법 : JavaScript 확장 문법을 사용합니다. JSX는 가독성이 높고 컴포넌트 구조를 명확하게 표현할 수 있게 해주며, Babel과 같은 도구를 통해 일반 JavaScript로 변환됩니다.
  3. 가상 DOM : 가상 DOM은 실제 DOM의 가벼운 복사본으로 메모리 상에 존재하며 빠른 연산을 위해 최적화된 구조입니다. UI 변경 사항을 효율적으로 계산하고 최소한의 DOM 조작만을 수행하여 화면을 업데이트합니다.
  4. 단방향 데이터 흐름 : 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달하는 것은 쉽지만, 자식 컴포넌트에서 부모 컴포넌트로 직접 데이터를 변경할 수는 없습니다. 이로써 데이터 흐름이 예측 가능하고 디버깅이 용이해집니다.
  5. 컴포넌트 라이프사이클 : 리액트는 컴포넌트 라이프사이클을 통해 컴포넌트가 마운트, 업데이트, 언마운트될 때 수행되는 작업을 제어할 수 있습니다. 
  6. Hooks : 리액트 16.8 버전부터는 Hooks를 도입하여 클래스 컴포넌트를 사용하지 않고도 상태 관리를 함수형 컴포넌트 내에서 처리할 수 있게 했습니다.