🚩 UI Library인 React.js란 무엇일까?
🚩 웹과 네이티브 UI를 위한 라이브러리
공식 홈페이지에서는 React를 UI를 만들기 위한 라이브러리라고 소개하고 있습니다.
🚩 프레임워크와 라이브러리
개발자가 기능 구현에만 집중할 수 있도록 필요한
모든 프로그래밍적 재원을 지원하는 기술의 조합이라고 합니다.
프레임워크의 종류들을 나열해보자면
프레임워크
가 존재합니다.
라이브러리란 공통 기능의 모듈화가 이루어진 프로그램의 집합입니다.
그리고 위의 2가지를 제어의 역전 (Inversion Of Control)으로 설명할 수 있는데,
React.js 자체만으로 프레임웍이라고 불리기엔 제공해야 하는 기능이 부족합니다.
상태관리(Redux), 라우팅(React-router-dom) 스타일링 등의 기능이 합쳐져
있었다면 프레임워크로 불릴 수 있었을지도 모르겠네요.
라이브러리인 이유에 대한 더 자세한 내용은
React는 사용자 인터페이스를 구성하는 데 집중된 라이브러리입니다.
웹 페이지나 앱의 특정 부분에 대해 뷰(view) 레이어만을 책임지며,
전체적인 애플리케이션 아키텍처를 제어하려고 하지 않습니다.
개발자는 필요한 곳에서 React를 사용하고, 나머지 부분에서는 다른 라이브러리나 프레임워크와 자유롭게 결합할 수 있습니다.
React를 사용할 때, 개발자는 애플리케이션의 흐름과 구조를 완전히 제어할 수 있습니다. React는 단지 UI를 렌더링하는 방법을 제공할 뿐,
어떻게 애플리케이션을 구성해야 할지 강제하지 않습니다.
예를 들어, 상태 관리나 라우팅은 React 자체의 일부가 아니며, Redux, MobX, React Router 같은 다른 라이브러리를 사용하여 처리할 수 있습니다.
React는 UI를 만드는 데 필요한 최소한의 API를 제공하며,
이는 학습 곡선을 낮추고 특정 문제에 집중할 수 있게 합니다.
그것은 "최소한의 라이브러리"라는 철학을 따르며, 개발자로 하여금 애플리케이션의 다른 부분을 다루기 위해 자신의 도구를 선택하게 합니다.
React의 생태계는 매우 방대하며, 다양한 라이브러리와 툴을 제공합니다.
이러한 도구들은 React와 함께 사용될 수 있으나, React 자체의 일부는 아닙니다.
이는 React가 특정한 기능에 집중하면서도, 넓은 범위의 개발 요구를 충족할 수 있게 해주는 유연성을 제공합니다.
SPA는 Single Page Application, 한 개의 페이지로 이루어진 애플리케이션 이라는 말이에요. MPA(Multi Page Application)과는 상반된 개념입니다.
npm에 등록된 패키지의 다운로드 수를 의미하는 npm trends에서 SPA 아키텍쳐 기술의 동향을 살펴볼 수 있습니다.
확인했을 때 React.js의 인기가 월등히 높음을 확인할 수 있다.
공식 홈페이지에서도 웹 만을 위한 라이브러리라고 소개하기보다는
The library for web and native user interfaces
라고 하고 있네요. 즉, 웹 뿐 아니라 React Native
를 활용한
모바일 애플리케이션에서도 활용이 가능하다
뿐만 아니라, VR
에서까지 활용할 수 있습니다.