SlideShare a Scribd company logo
1 of 43
Download to read offline
React +
https://dalinaum.github.io
https://facebook.github.io/react/docs/why-react.html
https://twitter.com/sebmarkbage/status/632257978003951616
React
JSXTransformer에서 Babel로
• JSXTransformer는 폐기됩니다.
• https://facebook.github.io/react/blog/2015/07/03/
react-v0.14-beta-1.html
• 대신에 브라우저 버전의 Babel을 사용하세요.
• Babel has a built-in JSX transpiler.
• https://babeljs.io/docs/usage/browser/
• npm install babel-core
• <script src=“JSXTransformer.js”> 대신

<script src=“browser.js”>을 쓰세요.
• type=“text/jsx"대신 type=“text/babel”을 쓰세요.
Hello
Composition
Prop Validation
Default Prop
Mixins
폼
• 폼 컴포넌트는 사용자 상호작용을 통해 영향을 받는 몇 가지 props를 지원합니다.
• value: <input>, <textarea> 컴포넌트에서 사용가능.
• checked: checkbox, radio타입의 <input> 컴포넌트에서 사용가능.
• selected: <option> 컴포넌트에서 사용가능.
• HTML에서는 <textarea> 태그의 값을 설정할 때 <textarea> 태그의 자식이 사용되지만, React에서는
value 를 사용해야 합니다.
• 폼 컴포넌트는 onChange prop의 콜백을 설정하여 변경을 감시(listening)할 수 있습니다. onChange
prop는 브라우저에 관계없이 다음과 같은 사용자 상호작용에 반응합니다.
• <input>, <textarea>의 value 변경.
• <input>의 checked state 변경.
• <option>의 selected state 변경.
findDOMNode와 refs
ES6 class
오토 바인딩과 믹스인이 안되는 단점은 있음.
React.Component + Auto Binding
ES6 + Manual bind
ES7
=>
Animation
생명주기
• Mounting
• getInitialState()
• componentWillMount()
• componentDidMount()
• Updating
• componentWillReceiveProps(object nextProps)
• shouldComponentUpdate(object nextProps, object nextState)
• componentWillUpdate(object nextProps, object nextState)
• componentDidUpdate(object prevProps, object prevState)
• Unmounting
• componentWillUnmount()
Without Router
https://rackt.github.io/react-router/
With React Router
https://rackt.github.io/react-router/
개발도구
• React Devtools
• https://github.com/facebook/react-devtools
• https://chrome.google.com/webstore/detail/react-
developer-tools/fmkadmapgofadopljbjfkapdkoienihi
• https://addons.mozilla.org/en-US/firefox/addon/react-
devtools/
• 프로파일러 - http://reactkr.github.io/react/docs/perf-ko-
KR.html
개발도구 Demo
• http://facebook.github.io/react/
왜 Virtual DOM인가요?
• 비교조정에 대한 글: https://facebook.github.io/react/
docs/reconciliation-ko-KR.html
• 개발자가 기고한 글: http://calendar.perfplanet.com/
2013/diff/
Unidirectional
blahblah… Flux?
우린 Redux로 갑니다.
Flux + Elm + 향상된 DX
http://staltz.com/
unidirectional-user-interface-
architectures.html
Redux demo
• http://rackt.github.io/redux/docs/introduction/
Examples.html#counter
• reducers와 actions을 살펴봄. (훨씬 심플하죠?)
Hot module replacement
demo
• https://robots.thoughtbot.com/setting-up-webpack-
for-react-and-hot-module-replacement
React route demo
• http://jmfurlott.com/tutorial-setting-up-a-single-
page-react-web-app-with-react-router-and-
webpack/
React isomorphic demo
• http://jmfurlott.com/tutorial-setting-up-a-simple-
isomorphic-react-app/
Electron
• Electron demo
React Native demo
• https://facebook.github.io/react-native/
Relay와 GraphQL?
• https://github.com/relayjs/relay-starter-kit
react.careers
react.rocks
참고
• React 한글 버전 문서:

http://reactkr.github.io/react/docs/getting-started-
ko-KR.html
• Flux 한글 버전 문서:

http://haruair.github.io/flux/docs/
overview.html#content
• 페이스북 그룹 React Korea와 Reactist

More Related Content

What's hot

XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기XpressEngine
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Kim Hunmin
 
React를 이용하여 멀티플랫폼에서 개발하기
React를 이용하여 멀티플랫폼에서 개발하기React를 이용하여 멀티플랫폼에서 개발하기
React를 이용하여 멀티플랫폼에서 개발하기WebFrameworks
 
[115] clean fe development_윤지수
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수NAVER D2
 
[141] react everywhere
[141] react everywhere[141] react everywhere
[141] react everywhereNAVER D2
 
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015sung yong jung
 
Meteor 0.3.6 Preview
Meteor 0.3.6 PreviewMeteor 0.3.6 Preview
Meteor 0.3.6 PreviewJuntai Park
 
다함께, FluxUtils 한바퀴!
다함께, FluxUtils 한바퀴!다함께, FluxUtils 한바퀴!
다함께, FluxUtils 한바퀴!우영 주
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나JeongHun Byeon
 
Clean Front-End Development
Clean Front-End DevelopmentClean Front-End Development
Clean Front-End Development지수 윤
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Appsjungkees
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyondJae Sung Park
 
[DevOn 2013] Backbone.js로 능동적 M-V 디자인 구현하기
[DevOn 2013] Backbone.js로 능동적  M-V 디자인 구현하기[DevOn 2013] Backbone.js로 능동적  M-V 디자인 구현하기
[DevOn 2013] Backbone.js로 능동적 M-V 디자인 구현하기Gyutae Jo
 
막하는 스터디 네 번째 만남 AngularJs (20151108)
막하는 스터디 네 번째 만남 AngularJs (20151108)막하는 스터디 네 번째 만남 AngularJs (20151108)
막하는 스터디 네 번째 만남 AngularJs (20151108)연웅 조
 
진짜기초 Node.js
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.jsWoo Jin Kim
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 

What's hot (19)

XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까?
 
React를 이용하여 멀티플랫폼에서 개발하기
React를 이용하여 멀티플랫폼에서 개발하기React를 이용하여 멀티플랫폼에서 개발하기
React를 이용하여 멀티플랫폼에서 개발하기
 
[115] clean fe development_윤지수
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수
 
React Redux React Native
React Redux React NativeReact Redux React Native
React Redux React Native
 
[141] react everywhere
[141] react everywhere[141] react everywhere
[141] react everywhere
 
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015
 
Meteor 0.3.6 Preview
Meteor 0.3.6 PreviewMeteor 0.3.6 Preview
Meteor 0.3.6 Preview
 
다함께, FluxUtils 한바퀴!
다함께, FluxUtils 한바퀴!다함께, FluxUtils 한바퀴!
다함께, FluxUtils 한바퀴!
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나
 
Clean Front-End Development
Clean Front-End DevelopmentClean Front-End Development
Clean Front-End Development
 
Spring Boot 2
Spring Boot 2Spring Boot 2
Spring Boot 2
 
Spring Boot 1
Spring Boot 1Spring Boot 1
Spring Boot 1
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
[DevOn 2013] Backbone.js로 능동적 M-V 디자인 구현하기
[DevOn 2013] Backbone.js로 능동적  M-V 디자인 구현하기[DevOn 2013] Backbone.js로 능동적  M-V 디자인 구현하기
[DevOn 2013] Backbone.js로 능동적 M-V 디자인 구현하기
 
막하는 스터디 네 번째 만남 AngularJs (20151108)
막하는 스터디 네 번째 만남 AngularJs (20151108)막하는 스터디 네 번째 만남 AngularJs (20151108)
막하는 스터디 네 번째 만남 AngularJs (20151108)
 
진짜기초 Node.js
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.js
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 

Similar to 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기

Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodedpTablo
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In ProductionMooYeol Lee
 
JBoss EAP on Azure
JBoss EAP on Azure JBoss EAP on Azure
JBoss EAP on Azure rockplace
 
김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15Chanwoong Kim
 
Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현병태 정
 
Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYHyun-woo Park
 
Meteor에서 flow-router / react 사용기
Meteor에서 flow-router / react 사용기Meteor에서 flow-router / react 사용기
Meteor에서 flow-router / react 사용기Haydn Kim
 
[I/O Extended 2019 Incheon] What's new in the Web
[I/O Extended 2019 Incheon] What's new in the Web[I/O Extended 2019 Incheon] What's new in the Web
[I/O Extended 2019 Incheon] What's new in the WebHyunSeob Lee
 
Collaboration with Eclipse final
Collaboration with Eclipse finalCollaboration with Eclipse final
Collaboration with Eclipse finalKenu, GwangNam Heo
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 
Babel 7 변경사항 미리보기
Babel 7 변경사항 미리보기Babel 7 변경사항 미리보기
Babel 7 변경사항 미리보기Hyeseong Kim
 
Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.장현 한
 
2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드Tai Hoon KIM
 
코드잇-타스-특강.pdf
코드잇-타스-특강.pdf코드잇-타스-특강.pdf
코드잇-타스-특강.pdf이정환
 
AngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJSAngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJSKenneth Ceyer
 
Git & Github Seminar-2
Git & Github Seminar-2Git & Github Seminar-2
Git & Github Seminar-2sangyun han
 
Source To URL Without Dockerfile
Source To URL Without DockerfileSource To URL Without Dockerfile
Source To URL Without DockerfileWon-Chon Jung
 
안드로이드를 위한 Gradle 맛들이기
안드로이드를 위한 Gradle 맛들이기안드로이드를 위한 Gradle 맛들이기
안드로이드를 위한 Gradle 맛들이기DongHwan Yu
 
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for AppspressoKTH, 케이티하이텔
 

Similar to 발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기 (20)

Webpack&babel
Webpack&babelWebpack&babel
Webpack&babel
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCode
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
JBoss EAP on Azure
JBoss EAP on Azure JBoss EAP on Azure
JBoss EAP on Azure
 
김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15
 
Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현
 
Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDY
 
Meteor에서 flow-router / react 사용기
Meteor에서 flow-router / react 사용기Meteor에서 flow-router / react 사용기
Meteor에서 flow-router / react 사용기
 
[I/O Extended 2019 Incheon] What's new in the Web
[I/O Extended 2019 Incheon] What's new in the Web[I/O Extended 2019 Incheon] What's new in the Web
[I/O Extended 2019 Incheon] What's new in the Web
 
Collaboration with Eclipse final
Collaboration with Eclipse finalCollaboration with Eclipse final
Collaboration with Eclipse final
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
Babel 7 변경사항 미리보기
Babel 7 변경사항 미리보기Babel 7 변경사항 미리보기
Babel 7 변경사항 미리보기
 
Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.
 
2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드
 
코드잇-타스-특강.pdf
코드잇-타스-특강.pdf코드잇-타스-특강.pdf
코드잇-타스-특강.pdf
 
AngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJSAngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJS
 
Git & Github Seminar-2
Git & Github Seminar-2Git & Github Seminar-2
Git & Github Seminar-2
 
Source To URL Without Dockerfile
Source To URL Without DockerfileSource To URL Without Dockerfile
Source To URL Without Dockerfile
 
안드로이드를 위한 Gradle 맛들이기
안드로이드를 위한 Gradle 맛들이기안드로이드를 위한 Gradle 맛들이기
안드로이드를 위한 Gradle 맛들이기
 
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
 

발렌타인 웨비너 7회 - React를 이용한 웹 앱 개발 살펴보기