가상 DOM (Virtual DOM):
React는 변경 사항을 실제 DOM에 적용하기 전에 가상 DOM에서 변경 사항을 먼저 계산함.
이를 통해 실제 DOM 조작 횟수를 최소화하여 성능을 향상함.
컴포넌트 기반 아키텍처:
React는 UI를 여러 개의 재사용 가능한 컴포넌트로 구성함.
각 컴포넌트는 독립적이며, 데이터에 따라 동적으로 렌더링됨.
이를 통해 코드의 가독성을 높이고 유지 보수를 용이하게 함.
단방향 데이터 흐름:
React는 단방향 데이터 흐름을 채택하여 데이터의 흐름이 단순하고 예측 가능함.
이로써 데이터의 변화를 추적하고 디버그하기 쉬움.
JSX (JavaScript XML):
JSX는 JavaScript의 확장 문법으로, UI를 선언적으로 작성할 수 있도록 함.
이를 통해 UI와 관련된 로직을 컴포넌트에 함께 작성하여 가독성을 높이고 유지 보수성을 향상시킴.
러닝 커브:
React는 처음 접하는 사용자에게는 학습 곡선이 다소 가파를 수 있음.
특히 JSX와 단방향 데이터 흐름 등의 개념을 이해해야 하기 때문에 초기 학습이 어려울 수 있음.
상태 관리:
React는 상태 관리를 위한 기능을 제공하지 않음.
따라서 복잡한 애플리케이션에서는 상태 관리 라이브러리인 Redux나 MobX와 같은 외부 라이브러리를 추가로 사용해야 함.
SEO (Search Engine Optimization) 문제:
React 앱은 기본적으로 JavaScript에 의존하여 렌더링되기 때문에 검색 엔진 최적화에 어려움을 겪을 수 있음.
이를 해결하기 위해 서버 사이드 렌더링(SSR)을 적용해야 함.