UI (User Interface) : 보여지는 것 + UX (User Experience) : 할수있는 것 ⇒ 굉장히 많아졌다.
Web Page < Web Application
애플리케이션 규모가 커지고 다양한 UI/UX를 구현하기 위해서 이전의 DOM
, jQuery
로는 애플리케이션을 개발하고 코드를 유지보수 하는게 어려워졌다. 화면에 많은 DOM
요소에 직접 접근해서 조작하고 관리하기 쉽자않아졌다.
jQuery를 간단하게 살펴보자
jQuery는 DOM에 쉽게 접근해서 조작을 가능하게 하는 메소드의 모음이다. 그러나 결국 DOM을 조작한다라는 행위를 벗어나지 못해서 복잡해지는 환경에서 한계에 도달한다.
📍결론 : 규모가 커지고 복잡한 애플리케이션을 개발하며 생산성을 향상시키고 많은 양의 데이터 관리와 코드 유지 보수를 더욱 편하게 하기 위해 다양한 Frontend Framework(Library)가 등장하게 된다.
가장 많이 쓰이는 세가지 : Angular, Vue, React
Library VS Framework 차이점 확인하기
👉🏻 라이브러리 vs 프레임워크
가상 돔(Virtual Dom)
을 통해 UI를 빠르게 업데이트가상 돔(Virtual Dom)
은 이전 UI 상태를 메모리에 유지Node.js
와 직접 연관은 없지만 프로젝트를 개발하는 데 필요한 주요 도구들(ex 바벨 , 웹펙)이 Node.js
기반이기 때문에 반드시 설치해야한다.Node.js
설치하면 자동으로 npm
(node package manager) 설치된다.npm
사용을 위해서도 Node.js
는 설치되어야한다.)Node 기반의 패키지를 활용하려면 npm
(node package manager) 패키지 도구가 필요하다.
npm을 통해 다양한 패키지를 설치하고 버전을 관리할 수 있다.
터미널에서 버전 확인 명령을 통해 정상적으로 설치됐는지 확인 가능하다.
node.js 버전 확인 명령어 :
$node -v
npm 버전 확인 명령어 :$npm -v
리액트 프로젝트를 시작하는데 필요한 개발 환경 세팅 해주는 도구(toolchain)
💡 툴체인(toolchain)
주로 다른 컴퓨터 또는 시스템의 소프트웨어 제품을 만드는 데 사용되는 컴퓨터 프로그램 개발 도구들의 집합
리액트는 UI 기능만 제공해서 개발자가 직접 구축해야하는 것들이 많다. 그래서 CRA(Create-React-App)
가 만들어졌다. CRA
는 리액트 웹 애플리케이션을 만들기 위한 환경을 제공한다.
CRA
를 이용하면 하나의 명령어로 리액트 개발환경을 구축할 수 있다.
이런 개발 환경을 직접 구축하면 시간이 굉장히 오래 걸리고 유지보수도 힘들지만 CRA를 이용하면 알아서 세팅해주기 때문에 기존 기능을 개선하거나 새로운 기능을 추가했을 때 패키지 버전만 올리면 된다.
React를 쓰는 이유
- Web Application의 발전으로 규모가 커지고 복잡한 애플리케이션을 개발하며 생산성을 향상시키고 많은 양의 데이터 관리와 코드 유지 보수를 더욱 편하게 하기 위해
Frontend Framework(Library)
- Angular (Framework)
- Vue (Framework)
- React (Library)
React란?
- “지속적으로 데이터가 변화하는 대규모 애플리케이션 구축하는 것”을 목표로 페이스북에서 개발했다.
- React는 오로지 View만 담당하고, third-party라이브러리(React-router, Redux)와 함께 사용한다.
작업 환경 세팅
- Node.js : 브라우저 밖(ex. 서버)에서도 동작하게 하는 환경, Node.js 설치하면 자동으로 npm(node package manager) 설치
- npm : Node 기반의 패키지를 활용을 위한 패키지 도구
- 터미널에서 $node -v
$npm -v
로 버전확인 가능
CRA
- 리액트 프로젝트를 시작하는데 필요한 개발 환경 세팅 해주는 도구
- 필수 개발 환경을 구축한다.