React.js는 웹과 모바일 등 다양한 플랫폼에 적용될 수 있는 “플랫폼 독립성(platform-agnostic)”을 갖춘 프레임워크입니다.
일반적으로 한 플랫폼에서 개발된 애플리케이션을 다른 플랫폼으로 옮기는 일에는 추가 작업이 필요하지만, React.js는 그 자체로 플랫폼에 구애받지 않고 모든 환경에서 사용될 수 있는 공통의 개발 언어(JavaScript)를 기반으로 합니다.
React.js는 기본적으로 UI 컴포넌트의 작성에 특화되어 있어, 웹 환경과 모바일 환경 모두에서 사용자 인터페이스(UI)를 구축하는 데 적합합니다.
React.js는 웹 애플리케이션뿐만 아니라 모바일 애플리케이션 개발에도 적용할 수 있으며, 여기서 React DOM과 React Native의 조합이 중요한 역할을 합니다. 각 조합은 아래와 같은 목적과 방식으로 사용됩니다:
• React.js + React DOM = 웹 애플리케이션
React DOM은 웹 브라우저에서 실행되는 애플리케이션을 위한 JavaScript 렌더링 엔진으로, HTML과 CSS를 통해 UI를 구성합니다. React.js와 React DOM을 결합해 브라우저에서 동작하는 웹 애플리케이션을 개발할 수 있습니다.
• React.js + React Native = 네이티브 모바일 애플리케이션
React Native는 iOS와 Android 환경에서 모두 동작하는 실제 네이티브 모바일 애플리케이션을 개발할 수 있게 합니다. JavaScript와 JSX(React의 확장된 문법)를 사용해 네이티브 컴포넌트를 렌더링함으로써 성능을 높이고, JavaScript 기반 UI 라이브러리의 유연성을 유지합니다.
React Native의 등장으로 인해,
웹과 모바일 환경에서 일관된 사용자 경험을 제공하면서 코드 재사용성을 극대화하는 것이 가능해졌습니다.
React Native는 JavaScript를 사용하여 네이티브 플랫폼에서 앱을 실행할 수 있게 합니다. 기존의 네이티브 개발(iOS의 Swift, Android의 Kotlin 등)과 달리, React Native는 단일 코드베이스로 iOS와 Android를 모두 지원하여 개발 속도와 유지 보수성을 높일 수 있습니다.