🖇wecode Pre-course 2주차 수업을 인용하여 작성했습니다.
오늘은 본격적으로 React를 배우기 전 예습한 내용들을 간단한 개념정리를 해둘까 한다.
1. Why React ?
새로운 기술에 대해 학습할 때, 항상 이 기술이 왜 사용되는지 어떤 철학을 가지고 무슨 문제를 해결하기 위해 만들어졌는지를 이해하는 것이 중요하다고 한다.
그렇다면 왜 React가 생겼을까 ?
웹은 초기를 거쳐 3세대 웹까지 발전하게 되었다. 기술이 발전하는 이유는 그 시대에서 필요한 요구조건들와 해결해야 되는 문제들이 점차 복잡해지기 때문이다. 웹이 발전하면서 사용자들이 원하는 기능이 많아지고 그에 따라 처리해야 하는 interaction 이 늘어나게 되어 기존의 기술에서는 한계를 느끼게 되는데, 이로 인해 개발된 것이 Front-end Framwork 이다.
1세대 웹에서는 HTML/CSS, JavaScript, DOM, Event 와 같은 기능들이 주로 사용되어졌는데, 점점 웹이 발전하게 되면서 DOM의 기술들이 빈번하게 사용되는 경우가 많아져 jQuery 가 등장하게 된다. jQuery는 쉽게 말해 DOM을 조작하는 Method들의 모음이다.
그러나 jQuery 만으로는 해결되지 않는 문제들이 많다는 것을 알게되고 이러한 시대적 요구사항에 맞춰 등장한 것이 Angular, Vue, React 이다. 이 세가지가 바로 Fron-end Framwork & Library 이고, 이 중 React는 Library이다.
Framework vs Library ?
둘은 다른 사람이 만들어 둔 코드라는 공통점을 가지고 있지만
Framework는 다른사람이 만든 frame 안에서 내가 작업하는 것이고,
Library는 내 작업에 다른사람이 만들어 둔 코드를 가져와서 사용하는 것이다.
왜 React를 사용해야 할까 ?
- 자기만의 문법을 가진 Angular, Vue와 달리 자바스크립트 문법을 그대로 사용한다.
- 오픈소스 프로젝트이면서 페이스북의 지속적인 관리가 이루어지고 있다.
- 많은 사용자수를 기반으로 생태계가 활성화 되어있다.
- 컴포넌트를 비교적 더 단순하고 간단하게 정의할 수 있다.
- React Native 등이 웹이 아닌 플랫폼에서도 활용할 수 있는 기술로 확장이 가능하다.
2. what is React ?
: 사용자 인터페이스(UI)를 만들기 위한 JavaScript 라이브러리
React는 사용자 인터페이스를 구축하기 위한 선언적이고 효율적이며 유연한 Javascript 라이브러리이다.
- 리액트와 같은 프론트엔드 Library 혹은 Framework를 사용하는 가장 큰 이유 중 하나는 UI 를 자동으로 업데이트 해준다는 점이다.
이로인해 선언적인 개발이 가능하다.
- UI를 자동으로 업데이트 하는 과정에서 Virtual DOM 을 통해서 최적화를 구현한다.
3. 선언적 (declare)
React 는 "무엇" 에 대해 구현하는 방식이다.
즉, 원하는 결과물을 선언해 놓으면 React가 구현해준다!
4.Virtual-dom
DOM 의 조작이 발생할때마다 Layout 과 Paint 의 과정을 거치게 되는데 React가 화면을 바꿀때 매번 DOM을 건들이는 것이 비효율적이게 된다. 따라서 React 에서는 가상의 돔(virtual-dom)에서 유지하며 화면을 변경할 때도 virtual-dom 을 통해 변경한 뒤 실제 브라우저의 DOM 을 한번의 변경만 발생시킨다.
5. NPM
: node package manager 의 약어이다.
노드로 실행할 수 있는 하나하나의 프로그램들을 관리하는 역할을 한다.
6.CRA
: Creat React App 의 약어이다.
즉, 리액트 프로젝트를 시작하는데 필요한 개발 환경을 세팅해주는 도구이다.
리액트는 UI 기능만 제공하기 때문에 개발자가 직접 구축해야 하는 것들이 많다.
CRA는 리액트로 웹 어플리케이션을 만들기 위한 환경을 제공하며 하나의 명령어로 리액트 개발 환경 구축이 가능하다.
CRA 설치하는 방법!
// 1. Desktop - wecode 폴더 진입
cd Desktop/wecode
// 2. webucks-react 프로젝트 설치
npx create-react-app webucks-react
// 3. my-app 프로젝트 진입
cd webucks-react
// 4. 로컬 서버 띄우기
npm start
이렇게 설치하고자 하는 폴더에 들어가서 프로젝트를 설치 한 뒤, 로컬 서버를 띄우면 된다!
설치 완료 후 이러한 창이 뜨면 정상적으로 설치된 것이다!
7.node_moduls - pakage.json - gitignore
- node_moduls : npm으로 다운받은 모든 패키지들이 저장되어 있는 폴더
- pakage.json : 프로젝트의 상세정보를 기입해둔 명세서
- gitignore: git으로 관리하지 않을 파일이나 폴더를 기입해둔 파일
8. Components
Component는 재사용이 가능한 각각의 독립된 모듈을 말한다.
front-end 의 UI 측면에서의 component는 재사용이 가능한 UI 구성단위라고 할 수 있다.
컴포넌트를 레고블럭이라고 비유하면 이해하기가 쉽다.
레고블럭을 하나하나 조립하여 하나의 물건을 만드는 것이다.
9. JSX
JSX는 JavaScript 확장버전이다. javascript syntax extention 이라고 한다.
const hi = <p>Hi</p>;
const myFavorite = {
food: <li>샐러드</li>,
animal: <li>dog</li>,
hobby: <li>programming</li>};
이렇게 javascript 코드 내부에 html 문법을 작성한 것이 JSX 이다.
++추가
- props : property의 줄임말이다. 컴포넌트에서 parameter로 해당 property를 받아서 사용한다. object이고 읽기전용!
- state: 컴포넌트의 상태 값. 마찬가지로 object지만 컴포넌트 내에서 정의하고 사용하며 업데이트가 가능하다. state의 이름은 원하는대로 지을 수 있고 여러개를 추가할 수도 있다.
'기록 > TIL' 카테고리의 다른 글
2022/03/04 TIL (0) | 2022.03.04 |
---|---|
2022/02/26 TIL (0) | 2022.02.26 |
2022/02/24 TIL (0) | 2022.02.24 |
2022/02/07 TIL (0) | 2022.02.07 |
2022/02/05 TIL (0) | 2022.02.05 |