React JS
웹과 네이티브 UI를 위한 Library이다.
공식 홈페이지에서는 React를 UI를 만들기 위한 라이브러리라고 소개하고 있습니다.
프레임워크
개발자가 기능 구현에만 '딱' 집중할 수 있도록 필요한 모든 프로그래밍 재원을 지원하는 '기술의 조합'.
Spring Framework : Java 기반의 웹(백엔드) 프레임워크
- FE까지 가능한 full stack coverage framework
- JSP, Thymeleaf
Vue js, Angular js : Javascript 기반 웹 프론트엔드 SPA 프레임워크
Django, Flask : Python 기반의 웹 프레임워크
Express js, Nest js : Javascript 기반 웹 백엔드 프레임워크
라이브러리?
공통 기능의 모듈화가 이루어진 프로그램의 집합
라이브러리를 제어의 역전(IoC : Inversion Of Control) 으로도 설명할 수 있습니다.
- 본래 개발 시 '제어'를 하는 것은 개발자의 역할
- 프레임워크를 사용하는 경우 시키는 대로 코드를 짜게 되면 프레임워크가 알아서 제어의 흐름을 가져가는 것
React js 가 라이브러리인 이유
- 그 자체만으로 프레임워크라고 불리기엔 제공해야하는 기능이 부족함
- 상태관리(Redux), 라우팅(React-router-dom), 스타일링 등의 기능이 합쳐져 있었다면 프레임워크로 불릴 수 있을지도?
React의 특징과 이점 이해하기
1. SPA (Single Page Application)
: 한 개의 페이지로 이루어진 애플리케이션 이라는 말이에요.
2. 인기가 많은 React(npm trends)
: npm에 등록된 패키지의 다운로드 수를 의미하는 npm trends 에서 SPA 아키텍처 기술의 동향을 살펴봅시다. react.js의 인기가 월등히 높음을 알수있어요.
3. UI가 필요한 곳이면 어디든
: 공식 홈페이지에서도 웹 만을 위한 라이브러리라고 소개하기보다는
The library for web and native user interfaces
라고 하고 있네요. 즉, 웹 뿐 아니라 React Native를 활용한 모바일 애플리케이션에서도 활용이 가능해요. 뿐만 아니라, VR에서까지 활용할 수 있어요.
4. 커뮤니티가 막강합니다(+ 채용공고)
: npm trends 에서도 확인하듯, React 기술에 종사하는 사람들이 정말 많죠. 따라서 다양한 사람들이 많은 조언과 정보를 공유한답니다. 당연하게도 채용공고도 프론트엔드 영역에서는 압도적으로 많다고 할 수 있겠죠.
코딩애플 => 여러분 실은 밥벌어먹으려고 개발 공부하는 거 아닙니까 그럼 조용히 하고 리액트 빨리 배워두도록 합시다. 요즘은 리액트 안쓰면 큰일 나는줄 알아서 웹개발자 필수 소양이 리액트로 변한지 오래입니다.