Session 4 - 최효석 React Hooks 마법. 그리고 깔끔한 사용기
2019년 9월 6일 네이버 쇼핑 개발자 meet up 행사인 'SHOWROOM' 에 발표된 자료입니다.
보다 자세한 내용은 http://nshop-developer.github.io 을 참고해주세요.
(2019년 9월 30일 오후 오픈 예정)
MVVM 과 Grab Architecture
: MVVM 에 가기 위한 여행기
정승욱
Grab / 안드로이드 개발
약 8년 경력의 안드로이드 엔지니어로써 TDD, App Architecture, CI/CD 등 다양한 기술 공유 활동을 하였습니다. 현재는 싱가포르에서 동남아의 Car-Hailing 서비스, Grab Taxi에서 Geo Android Tech Leader로 일하고 있으며 Google Developer Experts Android Singapore로 활동하고 있습니다.
애플사의 새로운 프로그래밍 언어인 Swift 언어에 대해 개발자들의 관심이 커지고 있습니다. 본 발표에서는 실제 예제를 통해서 Swift의 함수와 메소드에 대해 알아보고, 튜플을 이용한 다중 변수 리턴기능과 제너릭등에 대한 재미있는 기능도 알아보겠습니다.
2014년 7월 19일 모바일 앱 개발자 포럼 발표자료를 공유합니다.
[React-Native-Seoul] React-Native 초심자를 위한 실습위주의 간단한 소개 및 구현법 안내Tae-Seong Park
## React-Native-Seoul meetup ##
- React-Native 초심자를 위한 실습위주의 간단한 소개 및 구현법 안내
## 발표자 ##
박태성
아이디어샘 R&D Dev Specialist
[email protected]
@geoseong by Slack
리덕스를 도입할 때 주저하게 만드는 장벽들
○ 개요
몹엑스, 아폴로, 컨텍스트 API 등 리덕스를 도입하기도 전에 이미 선택적인 고민을 하게 만듭니다. 리덕스를 도입한 후에도 사가, 펜더, 옵져버블등의 미들웨어의 도입에서도 선택 장애가 발생하는 문제들이 리덕스 선택을 주저하게 만듭니다.
2020년 리덕스는 좋은 선택지 일까요? 리덕스는 언제 그리고 어떻게 사용해야 활용도를 높일 수 있을까요? 에어비앤비 결제 시스템과 3차원 시각화 시스템에 적용한 리덕스 활용 사례를 살펴보며 리덕스의 효용 가치를 같이 살펴보고자 합니다.
○ 목차
- 형상관리를 어렵게 하는 요소들
- MobX vs Redux
- 단방향 데이터 흐름(Flux)
- 미들웨어 살펴보기
- 리덕스와 미들웨어 활용 데모
- Typescript와 GraphQL 도입 사례
애플사의 새로운 프로그래밍 언어인 Swift 언어에 대해 개발자들의 관심이 커지고 있습니다. 본 발표에서는 실제 예제를 통해서 Swift의 함수와 메소드에 대해 알아보고, 튜플을 이용한 다중 변수 리턴기능과 제너릭등에 대한 재미있는 기능도 알아보겠습니다.
2014년 7월 19일 모바일 앱 개발자 포럼 발표자료를 공유합니다.
[React-Native-Seoul] React-Native 초심자를 위한 실습위주의 간단한 소개 및 구현법 안내Tae-Seong Park
## React-Native-Seoul meetup ##
- React-Native 초심자를 위한 실습위주의 간단한 소개 및 구현법 안내
## 발표자 ##
박태성
아이디어샘 R&D Dev Specialist
[email protected]
@geoseong by Slack
리덕스를 도입할 때 주저하게 만드는 장벽들
○ 개요
몹엑스, 아폴로, 컨텍스트 API 등 리덕스를 도입하기도 전에 이미 선택적인 고민을 하게 만듭니다. 리덕스를 도입한 후에도 사가, 펜더, 옵져버블등의 미들웨어의 도입에서도 선택 장애가 발생하는 문제들이 리덕스 선택을 주저하게 만듭니다.
2020년 리덕스는 좋은 선택지 일까요? 리덕스는 언제 그리고 어떻게 사용해야 활용도를 높일 수 있을까요? 에어비앤비 결제 시스템과 3차원 시각화 시스템에 적용한 리덕스 활용 사례를 살펴보며 리덕스의 효용 가치를 같이 살펴보고자 합니다.
○ 목차
- 형상관리를 어렵게 하는 요소들
- MobX vs Redux
- 단방향 데이터 흐름(Flux)
- 미들웨어 살펴보기
- 리덕스와 미들웨어 활용 데모
- Typescript와 GraphQL 도입 사례
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)LanarkSeung
프로덕션 환경에서 클라이언트 사이드 렌더링을 고집하기란 힘든 일입니다. 서버를 통해 웹사이트를 제공하면서도 React의 편리함을 누리려면 서버 사이드 렌더링(SSR)을 구현해야 하는데요. Create-React-App을 그대로 유지하면서 SSR을 구현하는 과정을 보여드리고자 합니다. TypeScript로도 가능합니다!
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기Kenneth Ceyer
GDG DevFest 2017 Seoul
프론트엔드 모던 프레임워크 낱낱히 파헤치기 세션의 발표자료입니다.
이 발표자료에서는 여러분이 항상 궁금해 하신
프론트엔드 프레임워크의 삼총사
Angular, React, VueJS를 다차원적으로 깊이있게 비교하고 각각의 이점과 특화된 기능을 소개하고 있습니다.
이러한 프레임워크를 경험해보지 못한 분들을 위해 프레임워크 별로 특징부터 쉽게 접근하여 설명하기 때문에 경험 불문하고 가볍게 읽어 보실 수 있습니다.
37. // ------------
// 첫번째 render
// ------------
const [name, setName] = useState('Mary')
useEffect(persistForm)
const [surname, setSurname] = useState('Poppins')
useEffect(updateTitle)
// ------------
// 두번째 render
// ------------
const [name, setName] = useState('Mary')
useEffect(persistForm)
const [surname, setSurname] = useState('Poppins')
useEffect(updateTitle)
정상 동작
// 1. 'Mary' 로 name state 초기화
// 2. persistForm 로 render 후에 실행할 effect 추가
// 3. 'Poppins' 로 surName state 초기화
// 4. updateTitle 로 render 후에 실행할 effect 추가
// 1. name state 읽기 (argument 로 ‘Mary’ 는 무시)
// 2. persistForm 로 render 후에 실행할 effect 교체
// 3. surName state 읽기 (argument 로 ‘Poppins’ 는 무시)
// 4. updateTitle 로 render 후에 실행할 effect 교체
38. // ------------
// 첫번째 render
// ------------
const [name, setName] = useState('Mary')
name && useEffect(persistForm)
const [surname, setSurname] = useState('Poppins')
useEffect(updateTitle)
setName(null)
// ------------
// 두번째 render
// ------------
const [name, setName] = useState('Mary')
name && useEffect(persistForm)
const [surname, setSurname] = useState('Poppins')
useEffect(updateTitle)
runtime 시 잘못 작동
// 1. 'Mary' 로 name state 초기화
// 2. persistForm 로 render 후에 실행할 effect 추가
// 3. 'Poppins' 로 surName state 초기화
// 4. updateTitle 로 render 후에 실행할 effect 추가
// 1. name state 읽기 (argument 로 ‘Mary’ 는 무시)
// 2. persistForm 로 render 후에 실행할 effect 교체 (실패)
// 3. 'Poppins' 로 surName state 초기화 (실패)
49. useEffect(effect, list of depedencies)
** list of dependencies
이전 render 의 list of dependencies
현재 render 의 list of dependencies
item 이 다를 때
effect 를 생성
51. const PhotoVideoList : React.FC = ({photoVideoReviewIds}) => {
useEffect(() => {
const fetchPhotoVideoItems = async () => { }
}, [photoVideoReviewIds])
}
특정 props, state 가 변경됐을때만 effect 실행하고 싶어요!
useEffect(effect, list of depedencies)
useEffect(() => {}, [props1, props2, state1, state2])
52. list of dependencies 에는 effect 에서 사용하는 모든
props, state 가
포함되어야 함
const Example = ({ someProp, anotherProp }) => {
const fetch = () => {
fetchItem(someProp, anotherProp)
}
useEffect(() => {
fetch()
}, [someProp])
}
list of dependencies 사용 시 주의할 점