AWS 클라우드환경 네이티브 수업 13일차
리액트 네이티브
194~227
전역 변수 (Global variable)
: 코드 전역에 걸쳐서 효과가 있는 변수
지역 변수 (Local variable)
: 선언된 함수 내에서만 효과가 있는 변수
정적 변수 (static variable)
: 지역 변수를 계속 해서 이후에도 쓰고 싶을 때,
변수 선언 앞에 static을 붙임으로써 전역 변수와 같은 영역에서 메모리 내에 존재 한다.
메모리의 영역
프로그램이 실행 되면 계속 가지고 가야하는 메모리는 낮은 주소에 사용 된다.
함수 지역 변수 같이 지금 당장 실행되는 데이터들은 높은 주소(스택 영역)에서부터 메모리가 사용 된다.
스택 영역의 동작 방식
int main(void)
{
func1(); // func1() 호출
return 0;
}
void func1()
{
func2(); // func2() 호출
}
void func2()
{
}
위와 같은 함수를 실행을 할 시
위와 같이 메모리가 사용 된다.
만약 함수 내에서 종료가 되지 못하게 무한으로 재귀호출을 하게 된다면
메모리가 재귀 호출 된 함수로 가득 차게 되어 결국 스택 오버플로우가 발생하게 된다.
즉, 에러나서 꺼진다.
194~201
리액트 훅
클래스 컴포넌트 구현의 복잡함을 줄이고전체 렌더링 속도를 빠르게 하기 위해 (스마트폰 입력 값에 빠르게 대응하기 위해)접두사 use~ 로 시작하는 API를 제공한 함수.함수 컴포넌트에서만 사용 가능.
리액트 네이티브가 아닌 리액트에서 제공하는 기능이다.
커스텀 훅
개발자가 직접 만드는 훅 함수
리액트 훅 사용 시 특징 및 주의점
1. 같은 리액트 훅 여러번 호출 가능2. 복잡 실행문 함수 몸통 안 {} 안에서는 호출 불가. (ex. for문, if문 내에서 )3. 비동기 함수는 콜백 함수로 사용 불가.
202~209
훅 이용 하여 변하는 오늘 날짜와 현재 시각 출력하기
setInterval 함수
: 갱신 주기마다 콜백 함수를 호출한다.
const id = setInterval ( 콜백_함수, 갱신_주기)콜백_함수 = () => {}
setInterval 함수와 세트로 써야하는....
:메모리 누수 방지
clearInterval(id)
useEffect 훅
:의존성 목록에 있는 조건 중 어느 하나라도 충족되면 그때마다 콜백 함수를 다시 실행
useEffect(콜백_함수, 의존성_목록)
콜백_함수 = () => {}
단, 한번만 실행하고 싶다면
useEffect( () => {}, [])
함수를 반환하고 싶다면
useEffect( () => {
//컴포넌트 생성될 때 실행~
return () => {} // 컴포넌트를 파괴할 때 한번 실행~
}, [])
useState 훅
: 반환하는 set 함수가 값이 바뀔 때마다 자동으로 재랜더링 해준다.초기 값에서 현재값에 set 함수를 해서 결과 값을 현재 값에 넣는다!
const [ 현재_값, set_함수 ] = useState(초기_값)set_함수 = (새로운 값) : void
210~227
useMemo와 useCallback 훅
수평 방향으로 ScrollView 스크롤
<ScrollView horizontal={true} /> // true로 설정하면 수평으로 스크롤이 된다.
리액트 훅의 탄생 배경
로컬 변수를 전역 변수 처럼 사용 하고 싶다는 것에서 시작
=> 실제 데이터는 어딘가에 캐시하고 로컬 변수에서 필요할 때 찾아쓰는 방식을 고안
의존성
리액트 프레임 워크 내부에서 관리하는 캐시가 갱신을 해야할 때가 생기는 것.
의존성 값이 변하면 setter 함수가 작동하여 값을 변경 후 갱신한 값을 의존성에 반영 및 재랜더링을 한다.
useMemo 훅
컴포넌트를 처음 렌더링 할 때 한 번만 데이터가 생성되도록 하는 훅
const 캐시된_데이터 = useMemo( 콜백_함수, [ 의존성1, 의존성2, ...])
콜백_함수 = () => 원본_데이터
useMemo의 함수 시그니쳐
useMemo<T>(() => T, [의존성1, 의존성2,....]) : T
useMemo 훅의 memoization
과거에 계산한 값을 반복해서 사용할 때 그 값을 캐시하는 방법.
계산 속도를 높이는 코드 최적화 기법.
useCallback 훅
useMemo 훅이 데이터나 함수 호출의 결과를 캐시하는 반면,
useCallback 훅은 콜백 함수를 캐시한다.
댓글