SlideShare a Scribd company logo
React101
임광규
2020.ReactJS 1
왜리액트인가?
.자바스크랩트사용
개발언어순위7위랭킹
.Front-end구조화제공
MVC,MVP,MVVM
2020.ReactJS 2
리액트의이해
ReactJS목표
페이스북개발팀이최대한성능을아끼고편안한사용자경험을제공하면서구현하고자개발
지속적으로데이터가변화하는대규모애플리케이션구축
특징
.MVC,MVP등과달리오직 V(View) 만신경쓰는라이브러리
.컴포넌트기반의동작과정의
.최적의성능을위한랜더링지원
2020.ReactJS 3
랜더링
초기랜더링⇒조화과정(업데이트과정)
랜더링은render함수를통해이루어집니다.
render() { ... }
초기랜더시컴포넌트를랜더링하고이를HTML마크업으로만들고,DOM요소안에주입합니다.
2020.ReactJS 4
VirtualDOM-1
. DOM ⇒DocumentObjectModel객체로문서구조를표현하는방법(HTML,XML)
.DOM은동적UI에최적화되어있지않음
.웹브라우저가DOM의변화가일어나면많은시간허비
i.CSS를다시연산⇒레이아웃구성⇒페이지리페인트
.리액트는VirtualDOM방식으로DOM업데이트를추상화하여DOM처리횟수를최소화하고
효율적으로진행
2020.ReactJS 5
VirtualDom-2
리액트에서데이터가변하여실제DOM을업데이트할때다음절차진행
.데이터를업데이트하면전체UIVirtualDOM에리렌더링
.이전VirtualDOM에있던내용과현재내용비교
.바뀐부분만실제DOM에적용
VirtualDOM사용한다고무조건빠른것은아님!
React16.9.0VSVanilla[WC]1.0.0
2020.ReactJS 6
기타특징
수많은라이브러리제공
ReactJS+다른프레임워크혼용가능
2020.ReactJS 7
작업환경준비
Ubuntu20.04기준
Node.js&npm설치
curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt install nodejs
Yarn설치
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
2020.ReactJS 8
VSCODE설치
sudo snap install --classic code
VSCODE추천확장프로그램
.ESLint
.ReactjsCodeSnippets
.Prettier-codeformatter
2020.ReactJS 9
GIT설치
sudo apt-get install git-all
2020.ReactJS 10
ReactJS프로젝트생성
yarn create react-app hello-react
# OR
npx create-react-app hello-react
2020.ReactJS 11
뽀나스
온라인ReactJS개발
2020.ReactJS 12

More Related Content

What's hot

[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
종훈 박
 
20130709 gradle
20130709 gradle20130709 gradle
20130709 gradleSukjin Yun
 
[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것
NAVER Engineering
 
Universal Rendering
Universal RenderingUniversal Rendering
Universal Rendering
Taegon Kim
 
Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]
Woojin Joe
 
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJS
EunYoung Kim
 
최근 Javascript framework 조사
최근 Javascript framework 조사최근 Javascript framework 조사
최근 Javascript framework 조사
Kichul Jung
 
Angular2 톺아보기
Angular2 톺아보기 Angular2 톺아보기
Angular2 톺아보기
철민 배
 
목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, Vue목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, Vue
Gunhee Lee
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁
WebFrameworks
 
원모먼트 Vue js 적용기
원모먼트 Vue js 적용기원모먼트 Vue js 적용기
원모먼트 Vue js 적용기
우현 김
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
Jae Sung Park
 
[26]자동화, 계륵에 살 붙이기 : Evolution of Android Automation Test
[26]자동화, 계륵에 살 붙이기 : Evolution of Android Automation Test[26]자동화, 계륵에 살 붙이기 : Evolution of Android Automation Test
[26]자동화, 계륵에 살 붙이기 : Evolution of Android Automation Test
NAVER Engineering
 
Angular js quick start
Angular js quick startAngular js quick start
Angular js quick start
정기 김
 
위플래닛 발표자료 Meteor_js
위플래닛 발표자료 Meteor_js위플래닛 발표자료 Meteor_js
위플래닛 발표자료 Meteor_js
WebFrameworks
 
가볍게 살펴보는 AngularJS
가볍게 살펴보는 AngularJS가볍게 살펴보는 AngularJS
가볍게 살펴보는 AngularJS
Jae Sung Park
 
오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5
Taegon Kim
 
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp
NAVER D2
 
Gradle 사용하기
Gradle 사용하기Gradle 사용하기
Gradle 사용하기
jiseob kim
 
[재직자과정추천]앵귤러js(angular js), 리액트(react) 기반 웹 & 앱 ui개발 재직자 향상과정_앵귤러학원/직장인환급/앵귤러...
[재직자과정추천]앵귤러js(angular js), 리액트(react) 기반 웹 & 앱 ui개발 재직자 향상과정_앵귤러학원/직장인환급/앵귤러...[재직자과정추천]앵귤러js(angular js), 리액트(react) 기반 웹 & 앱 ui개발 재직자 향상과정_앵귤러학원/직장인환급/앵귤러...
[재직자과정추천]앵귤러js(angular js), 리액트(react) 기반 웹 & 앱 ui개발 재직자 향상과정_앵귤러학원/직장인환급/앵귤러...
탑크리에듀(구로디지털단지역3번출구 2분거리)
 

What's hot (20)

[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
 
20130709 gradle
20130709 gradle20130709 gradle
20130709 gradle
 
[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것
 
Universal Rendering
Universal RenderingUniversal Rendering
Universal Rendering
 
Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]
 
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJS
 
최근 Javascript framework 조사
최근 Javascript framework 조사최근 Javascript framework 조사
최근 Javascript framework 조사
 
Angular2 톺아보기
Angular2 톺아보기 Angular2 톺아보기
Angular2 톺아보기
 
목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, Vue목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, Vue
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁
 
원모먼트 Vue js 적용기
원모먼트 Vue js 적용기원모먼트 Vue js 적용기
원모먼트 Vue js 적용기
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
[26]자동화, 계륵에 살 붙이기 : Evolution of Android Automation Test
[26]자동화, 계륵에 살 붙이기 : Evolution of Android Automation Test[26]자동화, 계륵에 살 붙이기 : Evolution of Android Automation Test
[26]자동화, 계륵에 살 붙이기 : Evolution of Android Automation Test
 
Angular js quick start
Angular js quick startAngular js quick start
Angular js quick start
 
위플래닛 발표자료 Meteor_js
위플래닛 발표자료 Meteor_js위플래닛 발표자료 Meteor_js
위플래닛 발표자료 Meteor_js
 
가볍게 살펴보는 AngularJS
가볍게 살펴보는 AngularJS가볍게 살펴보는 AngularJS
가볍게 살펴보는 AngularJS
 
오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5
 
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp
 
Gradle 사용하기
Gradle 사용하기Gradle 사용하기
Gradle 사용하기
 
[재직자과정추천]앵귤러js(angular js), 리액트(react) 기반 웹 & 앱 ui개발 재직자 향상과정_앵귤러학원/직장인환급/앵귤러...
[재직자과정추천]앵귤러js(angular js), 리액트(react) 기반 웹 & 앱 ui개발 재직자 향상과정_앵귤러학원/직장인환급/앵귤러...[재직자과정추천]앵귤러js(angular js), 리액트(react) 기반 웹 & 앱 ui개발 재직자 향상과정_앵귤러학원/직장인환급/앵귤러...
[재직자과정추천]앵귤러js(angular js), 리액트(react) 기반 웹 & 앱 ui개발 재직자 향상과정_앵귤러학원/직장인환급/앵귤러...
 

Similar to 1.react 101

프론트엔드 개발 첫걸음
프론트엔드 개발 첫걸음프론트엔드 개발 첫걸음
프론트엔드 개발 첫걸음
DataUs
 
2016 W3C Conference #6 : ReactiveX + Meteor 종단간 암호화 구현 사례
2016 W3C Conference #6 : ReactiveX + Meteor 종단간 암호화 구현 사례2016 W3C Conference #6 : ReactiveX + Meteor 종단간 암호화 구현 사례
2016 W3C Conference #6 : ReactiveX + Meteor 종단간 암호화 구현 사례
양재동 코드랩
 
웹표준 프레임워크 메타웍스3의 적용 사례와 생산성
웹표준 프레임워크   메타웍스3의 적용 사례와 생산성웹표준 프레임워크   메타웍스3의 적용 사례와 생산성
웹표준 프레임워크 메타웍스3의 적용 사례와 생산성
영재 김
 
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @SeoulCreate App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Bansook Nam
 
Backbone 발표
Backbone 발표Backbone 발표
Backbone 발표
Gunhee Lee
 
React를 이용하여 멀티플랫폼에서 개발하기
React를 이용하여 멀티플랫폼에서 개발하기React를 이용하여 멀티플랫폼에서 개발하기
React를 이용하여 멀티플랫폼에서 개발하기
WebFrameworks
 
ReactJS로 시작하는 멀티플랫폼 개발하기
ReactJS로 시작하는 멀티플랫폼 개발하기ReactJS로 시작하는 멀티플랫폼 개발하기
ReactJS로 시작하는 멀티플랫폼 개발하기
Taegon Kim
 
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함 메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함 uEngine Solutions
 
20170202 D2 발표
20170202 D2 발표20170202 D2 발표
20170202 D2 발표
Suhjin Park
 
01 introduce-react-js
01 introduce-react-js01 introduce-react-js
01 introduce-react-js
Jay Lee
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까?
Kim Hunmin
 
React
ReactReact
hexa core
hexa corehexa core
hexa core
Seungbae Ji
 
2015 oce specification
2015 oce specification2015 oce specification
2015 oce specification
uEngine Solutions
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
ksain
 
11.react router dom
11.react router dom11.react router dom
11.react router dom
Daniel Lim
 
React, Redux 실전 적용기
React, Redux 실전 적용기React, Redux 실전 적용기
React, Redux 실전 적용기
은미 김
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
중선 곽
 
리액트 적용기
리액트 적용기리액트 적용기
리액트 적용기
Hun Yong Song
 
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례 Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
미래웹기술연구소 (MIRAE WEB)
 

Similar to 1.react 101 (20)

프론트엔드 개발 첫걸음
프론트엔드 개발 첫걸음프론트엔드 개발 첫걸음
프론트엔드 개발 첫걸음
 
2016 W3C Conference #6 : ReactiveX + Meteor 종단간 암호화 구현 사례
2016 W3C Conference #6 : ReactiveX + Meteor 종단간 암호화 구현 사례2016 W3C Conference #6 : ReactiveX + Meteor 종단간 암호화 구현 사례
2016 W3C Conference #6 : ReactiveX + Meteor 종단간 암호화 구현 사례
 
웹표준 프레임워크 메타웍스3의 적용 사례와 생산성
웹표준 프레임워크   메타웍스3의 적용 사례와 생산성웹표준 프레임워크   메타웍스3의 적용 사례와 생산성
웹표준 프레임워크 메타웍스3의 적용 사례와 생산성
 
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @SeoulCreate App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
 
Backbone 발표
Backbone 발표Backbone 발표
Backbone 발표
 
React를 이용하여 멀티플랫폼에서 개발하기
React를 이용하여 멀티플랫폼에서 개발하기React를 이용하여 멀티플랫폼에서 개발하기
React를 이용하여 멀티플랫폼에서 개발하기
 
ReactJS로 시작하는 멀티플랫폼 개발하기
ReactJS로 시작하는 멀티플랫폼 개발하기ReactJS로 시작하는 멀티플랫폼 개발하기
ReactJS로 시작하는 멀티플랫폼 개발하기
 
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함 메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
 
20170202 D2 발표
20170202 D2 발표20170202 D2 발표
20170202 D2 발표
 
01 introduce-react-js
01 introduce-react-js01 introduce-react-js
01 introduce-react-js
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까?
 
React
ReactReact
React
 
hexa core
hexa corehexa core
hexa core
 
2015 oce specification
2015 oce specification2015 oce specification
2015 oce specification
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
11.react router dom
11.react router dom11.react router dom
11.react router dom
 
React, Redux 실전 적용기
React, Redux 실전 적용기React, Redux 실전 적용기
React, Redux 실전 적용기
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
 
리액트 적용기
리액트 적용기리액트 적용기
리액트 적용기
 
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례 Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
 

More from Daniel Lim

내가 생각하는 개발자란?
내가 생각하는 개발자란?내가 생각하는 개발자란?
내가 생각하는 개발자란?
Daniel Lim
 
개발자를 넘어 기술 리더로 가는 길을 읽고
개발자를 넘어 기술 리더로 가는 길을 읽고개발자를 넘어 기술 리더로 가는 길을 읽고
개발자를 넘어 기술 리더로 가는 길을 읽고
Daniel Lim
 
스크럼 101
스크럼 101스크럼 101
스크럼 101
Daniel Lim
 
nodejs_101.pdf
nodejs_101.pdfnodejs_101.pdf
nodejs_101.pdf
Daniel Lim
 
For You
For YouFor You
For You
Daniel Lim
 
Nest js 101
Nest js 101Nest js 101
Nest js 101
Daniel Lim
 
피드백 시스템
피드백 시스템피드백 시스템
피드백 시스템
Daniel Lim
 
13.code split
13.code split13.code split
13.code split
Daniel Lim
 
12.context api
12.context api12.context api
12.context api
Daniel Lim
 
9.component style
9.component style9.component style
9.component style
Daniel Lim
 
7.component life cycle
7.component life cycle7.component life cycle
7.component life cycle
Daniel Lim
 
8.hooks
8.hooks8.hooks
8.hooks
Daniel Lim
 
6.component repeat
6.component repeat6.component repeat
6.component repeat
Daniel Lim
 
4.event handling
4.event handling4.event handling
4.event handling
Daniel Lim
 
5.ref 101
5.ref 1015.ref 101
5.ref 101
Daniel Lim
 
3.component 101
3.component 1013.component 101
3.component 101
Daniel Lim
 
Swagger? OAS? with NodeJS
Swagger? OAS? with NodeJSSwagger? OAS? with NodeJS
Swagger? OAS? with NodeJS
Daniel Lim
 
CuKu V1.3
CuKu V1.3CuKu V1.3
CuKu V1.3
Daniel Lim
 
Kubernetes object에 대하여
Kubernetes object에 대하여Kubernetes object에 대하여
Kubernetes object에 대하여
Daniel Lim
 
라즈베리파이 배우기 GPIO 편
라즈베리파이 배우기 GPIO 편라즈베리파이 배우기 GPIO 편
라즈베리파이 배우기 GPIO 편
Daniel Lim
 

More from Daniel Lim (20)

내가 생각하는 개발자란?
내가 생각하는 개발자란?내가 생각하는 개발자란?
내가 생각하는 개발자란?
 
개발자를 넘어 기술 리더로 가는 길을 읽고
개발자를 넘어 기술 리더로 가는 길을 읽고개발자를 넘어 기술 리더로 가는 길을 읽고
개발자를 넘어 기술 리더로 가는 길을 읽고
 
스크럼 101
스크럼 101스크럼 101
스크럼 101
 
nodejs_101.pdf
nodejs_101.pdfnodejs_101.pdf
nodejs_101.pdf
 
For You
For YouFor You
For You
 
Nest js 101
Nest js 101Nest js 101
Nest js 101
 
피드백 시스템
피드백 시스템피드백 시스템
피드백 시스템
 
13.code split
13.code split13.code split
13.code split
 
12.context api
12.context api12.context api
12.context api
 
9.component style
9.component style9.component style
9.component style
 
7.component life cycle
7.component life cycle7.component life cycle
7.component life cycle
 
8.hooks
8.hooks8.hooks
8.hooks
 
6.component repeat
6.component repeat6.component repeat
6.component repeat
 
4.event handling
4.event handling4.event handling
4.event handling
 
5.ref 101
5.ref 1015.ref 101
5.ref 101
 
3.component 101
3.component 1013.component 101
3.component 101
 
Swagger? OAS? with NodeJS
Swagger? OAS? with NodeJSSwagger? OAS? with NodeJS
Swagger? OAS? with NodeJS
 
CuKu V1.3
CuKu V1.3CuKu V1.3
CuKu V1.3
 
Kubernetes object에 대하여
Kubernetes object에 대하여Kubernetes object에 대하여
Kubernetes object에 대하여
 
라즈베리파이 배우기 GPIO 편
라즈베리파이 배우기 GPIO 편라즈베리파이 배우기 GPIO 편
라즈베리파이 배우기 GPIO 편
 

1.react 101