html, css, javascript로 적은 양을 만들 때는 쉽고 재밌다고 생각했는데
점점 데이터 양이 많은 것을 만들게 되면서 react를 배워야겠다는 생각이 들었습니다.
웹의 복잡도가 높아지면서 생겨난 react라는 것의 편리함을 함께 느껴봅시다.
Why React ?
Vue, Angular 가 아닌 React를 먼저 배우게 된 이유는,
다른 프레임워크에 비해 사용자가 많아 생태계가 활성화 되어 있으며 접근성이 보다 쉽기 때문에 선택하게 되었습니다.
What is React ?
리액트는 UI (User Interface) 를 만들기 위한 JavaScript Library입니다.
웹의 점점 더 복잡해지면서 DOM에 접근하여 JavaScript만을 통해 동적으로 구현하기란 다소 어려워졌습니다.
규모가 커지고 더욱 복잡해지는 웹을 효율적이게 관리하기 위해 나타난 라이브러리가 바로 리액트입니다.
리액트를 사용하면 중복적으로 사용하게 될 코드를 반복하지 않게 되기 때문에 생산성이 향상되고 더 많은 양의 데이터 관리가 용이해지며 유지 보수가 더욱 편리해집니다.
리액트와 같은 라이브러리 혹은 프레임워크를 사용하는 가장 큰 이유 중 하나는 UI를 자동으로 업데이트 해 준다는 것입니다.
무엇이 다른가 ?
MVC(Model-View-Controller) 를 모두 포함한 Angular와 Vue와는 다르게 React는 오직 View만 담당합니다.
그렇기 때문에 다른 프레임워크와는 다르게 React가 라이브러리인 것이 아닐까 생각합니다.
React는 그만큼 내장되어 있는 기능이 부족해 third-party 라이브러리를 함께 사용합니다.
작업 환경 설정 !
- Node.js
Node.js 는 자바스크립트가 브라우저 밖 (서버) 에서도 동작하게 하는 환경을 의미합니다.
프로젝트를 개발하는데 필요한 주요 도구들이 Node.js 기반이기 때문에 설치해야 합니다.
$ node -v 를 터미널에 입력하여 version 정보가 나오면 node.js가 정상적으로 설치된 것 입니다.
- npm
npm 은 node package manager 라는 의미로 이 패키지 도구를 통해 Node 기반의 패키지를 사용할 수 있습니다.
npm 을 통해 다양한 패키지를 설치하고 버전을 관리할 수 있습니다.
npm 또한 npm -v 을 통해 설치 확인 할 수 있습니다.
✅CRA (Create-React-App)
: 리액트 프로젝트를 시작하는데 필요한 개발 환경을 세팅 해주는 도구
CRA를 이용하면 하나의 명령어로 리액트 개발환경을 구축할 수 있습니다.
CRA를 이용하면 개발 환경 세팅을 해주기 때문에 기존 기능을 개선하거나 새로운 기능을 추가했을 때 패키지 버전만 올리면 됩니다.
리액트는 정의에서 설명했듯이 UI를 위한 기능만 제공하기 때문에 개발자가 직접 구축해야하는 것들이 많습니다.
전반적인 시스템과 원하는 패키지를 직접 구축할 수 있으니 원하는 환경에 맞게 최적화할 수 있습니다. 하지만 이에 따라서 신경쓸 것이 많기 때문에 초기에 직접 개발 환경을 구축해야하는 것들이 많고 어려울 수 있습니다.
이러한 문제를 해결하기 위해 만들어진 것이 바로 이 CRA 입니다.
: -> CRA 초기 폴더 및 파일 세팅 구성
node.modules - package.json - gitignore
- node.modules
: CRA 를 구성하는 모든 패키지 소스 코드가 존재하는 폴더입니다.
- package.json
: CRA 기본 패키지 외 추가로 설치된 라이브러리/패키지 정보에 대해 업로드하며 기록되는 파일입니다.
모든 프로젝트마다 package.json 파일이 하나씩 존재합니다.
* dependencies
: 리액트를 사용하기 위한 모든 패키지 리스트, 버전 확인이 가능합니다.
왜 ? node.modules 와 package.json 에서 이중으로 패키지를 관리하는가?
🏀사용한 모든 패키지에 대한 정보를 소스로 가지고 있는 폴더를 github에 올린다면
기본적으로 올라가는 파일만으로도 엄청난 용량을 차지할 것이다.
그렇기 때문에 기본적으로 내려받은 이후에 필요한 파일을 각자 install 받을 수 있도록 추가로 설치된 라이브러리/패키지 정보에 대해 기록해두는 것입니다.
- .gitignore
: 이 파일에 github에 올리고 싶지 않은 폴더와 파일을 작성할 수 있습니다.
push를 해도 이 파일에 작성된 폴더와 파일은 올라가지 않습니다.
github에 올라가 쓸데없이 용량을 차지하는 부분이 없게 하기 위해서 사용합니다.
index.html - index.js - App.js
npx 블라블라 npm 블라블라 입력하라는대로 입력은 하겠는데 두개가 뭔 차인지 모르겠는 저를 위해,,
이 두 친구의 차이 를 정리해봤습니다.
- npm
: 이 친구는 아까 정리해줬듯이 다양한 패키지를 설치하고 버전을 관리할 수 있는 패키지 매니저 입니다.
- npx
: 자바스크립트 패키지 관련 모듈인 npm의 5.2.0 버전부터 추가된 툴입니다.
패키지를 설치하지 않고 npm 패키지를 일회성으로 즉석 실행해볼 수 있는 도구입니다.
뭐 하나를 위한 사용으로도 설치-실행-제거 를 반복하게 되는 불필요한 과정을 줄이기 위해 일회성으로 실행하기 위한 목적으로 등장하게 된 도구입니다. 설치 완료되어도 전역에 머물러 있지 않고, 사용 후 제거됩니다.
'React' 카테고리의 다른 글
TIL no.34 - How to fetch api in React Hooks? (0) | 2020.11.08 |
---|---|
TIL no.33 - Styled Components : React (0) | 2020.11.08 |
TIL no.28 - 부모-자식 간 Lifecycle & 조건부 렌더링 : React (0) | 2020.10.25 |
TIL no.26 - [React 2탄] Component & JSX (0) | 2020.10.18 |
TIL no.24 - CRA 무엇인가, 어떻게 ? (0) | 2020.10.11 |