웹 브라우저의 동적 콘텐츠를 생성하고 제어하는 데 사용되는 프로그래밍 언어
-
웹 개발의 표준
- HTML, CSS와 함께 웹 개발의 세 가지 핵심 기술 중 하나로, 모든 현대 웹 브라우저에서 기본적으로 지원된다.
-
동적 웹 페이지
- 사용자 입력에 따라 페이지 콘텐츠를 변경하거나, 애니메이션을 추가하는 등 동적인 웹 페이지를 쉽게 만들 수 있다.
-
해석형 언어이기 때문에 컴파일 언어에 비해 실행 속도가 느릴 수 있다.
-
자바스크립트의 유연성은 때로는 코드의 일관성과 안정성을 저해할 수 있어 큰 프로젝트에서는 버그를 발생시키기 쉽고 유지보수를 어렵게 만들 수 있다.
-
브라우저 간의 호환성
- 모든 브라우저에서 동작하지만, 브라우저마다 자바스크립트의 구현 방식이 다를 수 있어 코드가 브라우저에 따라 다르게 동작할 수 있다.
사용자 인터페이스를 구축하기 위한 JavaScript 라이브러리로 사용자 인터페이스를 구축하는 데 사용된다.
-
컴포넌트 기반 구조
- UI를 독립적이고 재사용 가능한 컴포넌트로 나눌 수 있어, 복잡한 애플리케이션을 구조적으로 관리하기 쉽다.
-
가상 DOM (Virtual DOM)
- React는 실제 DOM 대신 가상 DOM을 사용하여, UI 변경 사항을 메모리에서 처리한 후 실제 DOM에 최소한의 변경만 적용해 애플리케이션의 성능이 크게 향상된다.
-
단방향 데아터 흐름
- 데이터의 흐름이 단방향으로 이루어져, 데이터가 한 방향으로만 전달되서 데이터 상태를 추적하고 관리하기 쉽고, 버그 발생을 줄일 수 있다.
-
SEO문제
- React는 기본적으로 클라이언트 측에서 렌더링 되기 때문에, 서버에서 초기 HTML을 제공 하지 않으면 검색 엔진이 페이지의 콘텐츠를 제대로 인덱싱하지 못할 수 있다.
-
복잡한 상태 관리
- React 자체는 상태 관리를 위한 기능이 기본적으로 제공되지만, 대규모 애플리케이션에서는 상태 관리가 복잡해질 수 있다.
-
구조화된 프레임워크 부족
- 리액트는 라이브러리이지 프레임워크가 아니므로, 프로젝트 구조나 설계에 대한 명확한 지침이 없어 팀 간의 일관성 없는 코드 구조로 인해 유지보수가 어려워 질 수 있다.
-
페이스북
- React는 원래 Facebook 내부에서 사용하기 위해 개발되었다. 대규모 애플리케이션의 효율적인 상태 관리와 UI 구성을 위해 활용되고 React를 사용해 사용자 인터페이스를 효율적으로 관리하고, 실시간으로 많은 데이터를 처리합니다.
-
넷플릭스
- 넷플릭스는 프론트엔드 개발에 React를 사용하여, 빠르고 반응성이 뛰어난 사용자 경험을 제공한다. 특히 서버 사이드 렌더링을 통해 SEO 문제를 해결하고, 초기 로딩시간을 단축했다.