자바스크립트는 동적 타입을 갖기 때문에 결과를 쉽게 예측하기 어렵고, 가독성이 떨어짐타입스크립트는 정적 타입을 사용하기 때문에결과를 예측하기 쉽고, 가독성이 좋아진다때문에 처음 러닝 커브와 작성의 귀찮 + 어려움을 조금만 극복하면훨씬 더 안전하고, 좋은 코드를 작성할
리액트의 함수 컴포넌트는
자바스크립트는 싱글 스레드 언어이기 때문에한 번에 한 가지의 일 밖에 처리하지 못한다하나의 작업 흐름만을 가질 수 있다때문에 작업이 오래 걸리거나대기를 해야하는 작업이 있는 경우프로그램 전체가 대기해야 한다이러한 문제를 해결하기 위해서 자바스크립트에서는몇몇 함수들을 미
프로그래밍이란 커뮤니케이션요구사항 - 문제 해결 능력0과 1만 이해할 수 있는 컴퓨터라는 기계가 이해하도록정확하고 상세하게 요구사항을 설명하는 작업이를 하기 위해서 컴퓨팅 사고가 필요하다문제 해결 능력으로 정의된 해결 방안은 컴퓨터가 이해할 수 있도록 전달되어야 한다하
웹페이지 보조 기능 수행을 위해 브랜던 아이크가 개발한 브라우저에서 동작하는 경량 프로그래밍 언어모카 - 라이브스크립트 - 자바스크립트 라는 이름으로 변경현재 모든 브라우저의 표준 프로그래밍 언어로 자리잡았다브라우저에 따라 제대로 동작하지 않는 크로스 브라우징 이슈가
브라우저와 node.js 는 자바스크립트 엔진을 내장하고 있다각각의 용도는 다르다브라우저는 파싱된 HTML 요소를 선택하거나 조작하는 DOM API 가 기본이지만node.js 는 브라우저 개발을 위한 환경이 아니기 때문에 DOM API를 제공하지 않는다반대로 node.
애플리케이션은 아무리 복잡해도 데이터를 입력 받아 처리 후 결과를 출력 하는 것이 전부다컴퓨터는 연산과 기억을 수행하는 곳이 나뉘어져 있다CPU를 통해 연산하고 메모리를 사용하여 데이터를 기억한다메모리는 데이터를 저장할 수 있는 메모리 셀의 집합체다셀 하나의 크기는 1
값은 표현식이 평가되어 생성된 결과를 말한다모든 것은 데이터 타입을 가지며, 메모리에는 2진수 (비트)의 나열로 저장된다메모리에 저장된 값은 데이터 타입에 따라 다르게 해석될 수 있다메모리에 저장된 값 0100 0001을 숫자로 해석하면 65, 문자로 해석하면 'A'변
데이터 타입은 값의 종류를 말한다자바스크립트의 모든 값은 타입을 갖는다 ES6는 7개의 데이터 타입을 제공한다6개의 원시 타입과 1개의 객체 타입으로 분류할 수 있다원시 타입에는 숫자, 문자열, 불리언, undefined, null, symbol그리고 객체 타입이 있다
연산자는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을수행하여 하나의 값을 만든다이 때 연산의 대상을 피 연산자라 한다피연산자는 값으로 평가될 수 있는 표현식이어야 한다피연산자와 연산자의 조합으로 이뤄진 연산자 표현식도 값으로 평가될
제어문은 조건에 따라 코드를 실행하는 것코드의 실행 순서가 변경되는 것이기 때문에 순차적으로 흐르는 직관적인 흐름을혼란스럽게 만들 수 있다forEach(), map() 등의 고차 함수를 사용한 함수형 프로그래밍 기법에서는제어문을 억제하여 복잡성을 해결하기 위해 노력한다
개발자의 의도에 따라 값의 타입을 변환하는 것을명시적 타입 변환 또는 타입 캐스팅이라고 한다개발자의 의도와 상관 없이 자바스크립트 엔진에 의해 암묵적으로 타입이 변환하는 것을암묵적 타입 변환, 타입 강제 변환이라고 한다두 경우 모두 값을 직접 변경하는 것은 아니다원시
자바스크립트는 객체 기반 프로그래밍 언어이며, 자바스크립트를 구성하는 거의 모든 것이객체로 이루어져 있다원시 타입을 제외한 모든 값은 객체 타입의 값이다객체 타입은 다양한 타입의 값을 하나의 단위로 구성한 복합 자료구조다또한 객체 타입은 변경 가능한 값이다객체는 0개
자바스크립트는 크게 원시 타입과 객체 타입 두 가지 타입으로 구분할 수 있다원시 값은 변경 불가능한 값객체 값은 변경 가능한 값이다원시 값을 변수에 할당하면 변수(메모리 공간) 에는 실제 값이 저장된다객체를 변수에 할당하면 참조 값이 저장된다원시 값을 갖는 변수를 다른
함수는 자바스크립트에서 가장 중요한 핵심 개념이다다른 핵심 개념인 스코프, 실행 컨텍스트, 클로저, this 등이 모두 함수와 깊은 관련이 있다수학의 함수는 input을 받아 output을 출력하는 일련의 과정을 정의한 것이다프로그래밍의 함수도 같은 개념이다프로그래밍
스코프 (유효범위)는 자바스크립트를 포함한 모든 프로그래밍 언어의 기본이며 중요한 개념이다자바스크립트의 스코프는 다른 언어와 구별되는 특징이 있다var, let, const 키워드로 선언한 변수는 각각 다르게 동작한다스코프는 변수와 함수에 밀접한 관계가 있다함수의 이름
전역 변수의 사용은 위험하다꼭 필요할 때만 사용변수는 선언에 의해 생성되고 할당을 통해 값을 갖는다선언 - 초기화 - 할당그리고 언젠가 소멸한다생성 - 소멸의 생명 주기를 갖는다변수의 생명 주기는 자신이 선언된 곳의 생명 주기를 따른다전역 변수로 선언되면 어플리케이션의
var 는 ES5 까지 변수를 선언할 수 있는 유일한 방법이었다var 는 다른 언어와는 구별되는 독특한 특징을 갖는다변수 중복 선언 허용함수 레벨 스코프변수 호이스팅: 할당과 초기화 동시에 일어나기 때문에 참조 에러가 발생하지 않는다var 의 단점을 보완하기 위해 나온
new 연산자와 함께 생성자 함수를 호출하면 빈 객체를 생성하여 반환한다생성된 객체에 프로퍼티 또는 메서드를 추가하여 객체를 완성할 수 있다생성자 함수란 new 연산자와 호출 시 인스턴스(객체)를 생성하는 함수를 말한다자바스크립트 Obejct 생성자 함수 외에도 빌트인
다음과 같은 조건을 만족하면 일급객체다무명의 리터럴로 생성할 수 있다 (런타임에 생성 가능)변수나 자료구조 (객체, 배열 등) 에 저장할 수 있다함수의 매개변수로 전달할 수 있다함수의 반환값으로 사용할 수 있다자바스크립트의 함수는 위 조건을 모두 만족하므로 일급 객체다
자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향을 지원하는멀티 패러다임 프로그래밍 언어다자바스크립트는 클래스 기반 객체지향 프로그래밍이 아니어서객체지향이 아니라고 하지만효율적이며 강력한 객체지향 프로그래밍 능력을 지니고 있다자바스크립트를 이루고 있는 거의 모든
자바스크립트의 객체는 크게 3개의 객체로 분류할 수 있다표준 빌트인 객체 : ECMAScript 사양에 정의된 객체로 전역의 공통 기능을 제공. 자바스크립트 실행 환경에 관계 없이 언제나 사용할 수 있고 전역 객체의 프로퍼티로서 제공된다. 별도의 선언 없이 언제나 참조
객체는 상태와 동작을 논리적 단위로 묶은 복합적 자료구조다동작을 나타내는 메서드는 자신이 속한 객체의 상태(프로퍼티)를 참조하고 변경할 수 있어야 한다떄문에 자신이 속한 객체를 가리키는 식별자가 필요하고 이게 this 임객체 리터럴 방식으로 생성한 객체의 경우메서드 내
실행 컨텍스트는 자바스크립트 동작 원리를 담고있는 핵심 개념이다ECMAScript 사양은 소스코드를 4가지 타입으로 구분한다각 타입의 소스코드는 실행 컨텍스트를 생성한다전역 코드: 전역에 존재하는 소스코드로 전역에 정의된 함수, 클래스 등의 내부 코드는 포함되지 않는다
클로저는 자바스크립트의 고유 개념이 아니다함수를 일급 객체로 취급하는 함수형 프로그래밍 언어에서 사용되는 중요한 특성이다클로저는 자바스크립트 고유 개념이 아니므로 ECMAScript 사양에 등장하지 않는다MDN 에서는 클로저를 다음과 같이 정의한다클로저는 함수와 그 함
클래스는 프로토타입의 문법적 설탕인가?
ES6 이전 자바스크립트의 함수는 구분 없이 다양한 목적으로 사용되었다자바스크립트의 함수는 일반적인 함수로서 호출할 수도 있고new 연산자와 함께 호출하여 인스턴스를 생성할 수 있는 생성자 함수로서 호출할 수도 있으며객체에 바인딩되어 메서드로서 호출할 수도 있다이는 편
배열은 여러 값을 순차적으로 나열한 자료구조다사용 빈도가 매우 높은 가장 기본적인 자료구조배열이 가지고 있는 값은 요소(element) 라고 부른다배열의 요소는 자신의 위치를 나타내는 0 이상의 정수인 index 를 갖는다요소의 순서가 보장되는 것, 배열은 length
표준 빌트인 객체인 Date 는 날짜와 시간을 위한 메서드를 제공하는빌트인 객체이면서 생성자 함수다UTC(협정 세계시) 는 국제 표준시를 말한다UTC 는 GMT(그리니치 평균시) 로 불리기도 한다UTC 와 GMT 는 초의 소수점 단위에서만 차이가 나기 때문에 혼용해서
정규 표현식은 일정 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어다자바스크립트의 고유 문법이 아니다정규 표현식은 문자열 대상 패턴 매칭 기능을 제공한다\[] 바깥의 ^은 문자열 시작을 의미하고?은 앞선 패턴이 최대 한 번(0번 포함) 이상 반복되는지를
이터레이션 프로토콜 ES6 에서 도입된 이터레이션 프로토콜은 순회 가능한 데이터 컬렉션(자료구조) 를 만들기 위해 ECMAScript 사양에 정의하여 미리 약속한 규칙이다 ES
자바스크립트는 하나의 실행 컨텍스트 스택을 갖는다자바스크립트 엔진은 한 번에 하나의 태스크만 실행할 수 있는싱글 스레드 방식으로 동작한다싱글 스레드 방식은 한 번에 하나의 작업만을 실행하기 때문에작업 처리 시간 동안에 블로킹 (작업 중단)이 발생한다여기서 블로킹은 실행
리액트 네이티브는 디바이스에 국한되지 않고 앱을 개발할 수 있지만주로 모바일 개발에 사용자바스크립트로 네이티브 앱을 만들 수 있다하지만 자바스크립트 코드가 네이티브 코드로 변환되지는 않는다JavaScriptCore 라는 자바스크립트 엔진 사용리액트 네이티브의 특별혼 컴
index.js 파일은 프로젝트의 엔트리 파일로 리액트 네이티브 앱은 여기서 시작한다import 구문을 통해 코드를 불러와 앱을 번들링 한다코드 최상단 주석의 @format 키워드는 Prettier 와 관련되어 있다Pritter 사용 시 --require-pragma
컴포넌트란 구성요소 라는 뜻으로 프론트엔드에서의 컴포넌트란 유저 인터페이스를 구성하는 요소로 이해하면 된다단순 UI 뿐 아니라 내부 로직까지 포함하는 개념이다View: 웹에서 div 같이 영역의 레이아웃 및 스타일 담당Text: 리액트 네이티브에서 텍스트 작성시 글을
화면 구성에서 가장 먼저 하는 작업은 App 컴포넌트의 SafeAreaView 가 전체 영역을 사용하도록 설정하는 것이다리액트 네이티브 스타일에서 flex 속성을 1로 설정하는 것은자신이 위치한 곳의 영역을 모두 사용하겠다는 의미flex 를 자유자제로 다룰 수 있어야
Imagemobile 은 PC 모니터와 기종 별로 화면 밀도와 크기, 해상도가 다르다ppi(pixel per inch) 는 1inch 에 몇 px 이 들어갈 수 있는지를 나타내는 단위로iPhone 11 Pro 의 화면 해상도는 2436 x 1125 px 이고 화면 밀도
xcrun simctl list devicesnpm run ios --simulator="iPhone 5s"Android Virtual Device Manager 를 열어서 Create Virtual Device 로 새 디바이스를 추가해준다
React Native 의 키보드는 OS 별로 다르게 동작한다iOS 는 기본적으로 화면을 가리게 설정Android 는 기본적으로 화면이 줄어들면서 키보드 영역이 올라온다KeyboardAvoidingView 의 속성으로behavior={Platform.OS === 'io
TouchableNativeFeedback 은 안드로이드에서만 적용되는 컴포넌트로터치 시 잔물결이 발생하는 이펙트가 발생한다하지만 이펙트 영역이 항상 사각형을 띄고 있기 때문에원형을 만들고 싶으면 View 로 감싸서 overflow hidden 과 함께 border r
책에서는 InputText 의 onSubmitEditingreturnKeyType속성을 변경해주어야 한다고 하는데 시뮬레이터에서는 이미 변경된 상태다실 기기에 연결하면 달라질까..onSubmitEditing 은 모바일 키보드에서 Enter 를 눌렀을 때 작동할 함수를
Ajax 란 자바스크립트를 사용하여 브라우저가 서버에 비동기 방식으로 데이터를 요청, 서버가 응답한 데이터를 수신하여 웹 페이지를 동적으로 갱신하는 프로그래밍 방식을 말한다Ajax 는 WebAPI 인 XMLHttpRequest 객체를 기반으로 동작한다XMLHttpReq
REST 는 HTTP/1.0 과 1.1 의 스펙에 참여했고 아파치 HTTP 서버 프로젝트의 공동 설맂바인로이 필딩의 2000년 논문에서 처음 소개되었다발표 당시 웹이 HTTP 를 제대로 활용하지 못하고 있는 상황을 보고 HTTP 의 장점을 최대한 활용할 수 있는아키텍처
자바스크립트는 비동기 처리를 위한 하나의 패턴으로 콜백 함수를 사용한다하지만 콜백 패턴은 가독성이 좋지 않으며 비동기 처리 중 발생한 에러 처리가곤란하다여러 개의 비도익 처리를 한 번에 처리하는 데도 한계가 있다ES6 에서는 비동기 처리를 위한 또 다른 패턴으로 프로미
ES6 에서 도입된 제너레이터는 코드 블록의 실행을 중지했다가 필요 시점에 재개할 수 있는 특수한 함수다제너레이터는 함수 호출자에게 함수 실행 제어권을 양도할 수 있다제너레이터 함수는 함수 호출자와 함수의 상태를 주고 받을 수 있다제너레이터 함수를 호출하면 제너레이터
에러가 발생하지 않는 코드를 작성하는 것은 불가능하다에러에 대처하지 않고 방치하면 프로그램은 강제 종료된다try...catch 문을 사용하여 발생한 에러에 적절히 대응하면계속해서 코드를 실행시킬 수 있다
리액트에서 객체와 배열 타입의 상태를 다룰 때는 항상 불변성을 지켜야 한다불변성을 지킨다는 것은 객체 또는 배열을 직접 수정하지 않는다는 것을 의미한다객체나 배열의 값을 변경할 때 새로운 값을 만들어 사용하는 것특히 리액트에서 불변성을 지켜야 하는 이유는 렌더링 성능
웹에서는 CSS 의 & + & 셀렉터를 통해 특정 엘리먼트들 사이에만테두리 등을 설정할 수 있지만리액트 네이티브에는 없다FlatList 의 ItemSeparatorComponent 속성의 값으로구분선을 반환하는 콜백을 넘겨주면 구분선을 설정할 수 있다keyExtrac
안드로이드 에뮬레이터에서는 한글 키보드가 기본적으로 등록되어 있지 않다System > Languages & Input > Languages 에서한국어를 추가해주면 된다iOS 시뮬레이터에서 키보드가 올라오지 않으면 command + K키로 올릴 수 있다
react-native-vector-icons벡터 아이콘 라이브러리는 폰트 또는 SVG 를 사용해크기가 조정돼도 아이콘이 흐려지거나 깨지지 않는다모든 해상도에서 또렷하고 색상도 쉽게 변경 가능Info.plist 파일의 </dict> 뒤에 UIAppFonts 속성
Alert.alert 메서드의 파라미터는제목, 내용, 버튼 배열, 옵션 객체 순이다버튼 배열에 넣는 버튼 객체는 text 값을 통해 버튼 이름을 지정하고, onPress 시 동작할 함수를 설정할 수 있다style 은 cancel, default, destructive
AsyncStorage 는 브라우저의 localStorage 와 비슷한 리액트 네이티브 저장소iOS 에서는 네이티브 코드로 Android 에서는 네이티브 코드와 SQLiter 를 기반으로구현되어 있다AsyncStorage 의 차이점은 비동기로 동작하고Promise 를
모듈이란 애플리케이션을 구성하는 개별 오소로서재사용 가능한 코드 모음을 말하낟일반적으로 모듈은 기능을 기준으로 파일 단위로 분리한다이때 모듈이 성립하려면 모듈은 자기 자신만의 파일 스코프 (모듈 스코프) 를 가질 수 있어야 한다자신만의 모듈 스코프를 갖는 모듈의 자산은
ES6 이상의 버전인 ES6+ 와 제안 단계에 있는 ES 제안 사양인ES.NEXT 는 브라우저에 따라 지원율이 다를 수 있다최신 ECMAScript 사양으로 프로젝트를 진행하려면지원하지 않는 곳에서도 동작시키기 위한 개발 환경을 구추갷야 한다또한 대부분 프로젝트가 모듈
react native 에서 사용할 수 있는 네비게이션 라이브러리는 두 가지가 있다react-navigation : 리액트 네이티브 커뮤니티에서 관리하는 사용률이 가장 높은 라이브러리, 공식 문서에서도 소개하고 있다reat-native-navigation: 홈페이지 제
ContextAPI 는 리액트 내장 기능으로 Props 를 사용하지 않아도특정 값이 필요한 컴포넌트끼리 값을 공유할 수 있게 해준다주로 전역 상태를 관리할 때 사용한다createContext 를 사용하여 Context 를 생성하면LogContext.Provider 컴포
children Props 는 Text 컴포넌트에서 사용하는 것 처럼 컴포넌트 태그 사이에 넣어준 값Render Props는 이 children의 타입을 함수 형태로 받아오는 패턴으로 일반적으로는 컴포넌트에 필요한 값을 Props로 넣어주지만 Render Props를
버튼을 만들 때 TouchableWithoutFeedback 과 비슷하지만 여러 기능을 포함하고 있다안드로이드 물결 효과나 동적 스타일을 줄 수 있음
uuid 라이브러리로 쉽게 고유 아이디를 생성할 수 있다uuid 는 범용 고유 식별자로 5가지 버전을 제공한다일반적으로 v4 를 많이 사용한다node.js 의 crypto 기능을 사용하는 라이브러리로리액트 네이티브에는 내장되어 있지 않다리액트 네이티브에서 사용시에는 호
date fns 는 날짜/시간 라이브러리다양한 기능을 제공한다https://date-fns.org/docs/Getting-Started
리액트 네이티브 애니메이션 효과를 위한 객체애니메이션의 값을 조절할 Value 를 만들어야 한다Value 를 만들 때는 useRef 를 사용하여 값을 기억하도록 한다useRef 는 컴포넌트 레퍼런스를 선택할 때 사용하기도 하지만특정 값을 리렌더링과 관계 없이 컴포넌트
onEndReached 속성을 사용하여 바닥을 감지했을 때 실행할 함수를 지정할 수 있고onEndReachedThreshold 속성을 사용하여 바닥을 감지할 범위를 설정할 수 있다
아이콘이 상태에 따라 보일 때, 안보일 때가 있는 경우해당 영역의 크기만큼 View 를 설정해 주어아이콘 상태에 따라 다른 영역이 영향을 미치지 않도록 설정한다웹을 할 때는 이런 빈 영역에 대해 다른 영역으로 감싸주었던 것 같고이런게 웹 접근성에 맞는 시멘틱한 코드인지
useEffect 끼리는 코드 순서에 맞춰 실행된다이 것이 동기적으로 작동하는지 제대로 확인해봐야 할듯..useEffect 내에서 비동기 코드를 사용했을 때도 완전히 동기적으로 작동하는지 테스트 해봐야겠다\-> 화면 렌더링은 비동기적으로 작동하기 때문에 렌더링을 꼭 동
책에서는 Tab.Navigator 속성이름이 변경되었다showLabel -> tabBarShowLabelactiveTintColor -> tabBarActiveTintColor
Stack Native 의 headerTitle 에는 문자열도 넣을 수 있지만컴포넌트를 넣어줄 수도 있다iOS 는 컴포넌트가 기본적으로 중앙에 정렬되고Android 는 좌측 정렬을 사용한다타이틀이 헤더 전체 영역을 사용하도록 하려면 화면 크기를 가져와서 dp 단위 크기
some 함수는 주어진 판별 함수를 하나라도 통과하면 true, 아니면 false위 코드에서 배열 함수가 3중첩으로 사용되고 있는데 어쩔 수 없는 것 같기도 하고..
useReducer 는 state 처럼 리액트의 상태를 관리하는 Hook state: 상태action: 변화를 정의하는 객체reducer: state와 action을 파라미터로 받아와서 그다음 상태를 반환하는 함수dispatch: action을 발생시키는 함수useSt
FlatList 나 ScrollView 에서 onScroll event 객체의 값constentSize 는 FlatList 내부 전체 크기layoutMeasurement 는 화면에 그려진 FlatList 의 크기contentOffset 은 0 부터 스크롤된 위치 까지의
https://firebase.google.com/?hl=ko접속 후 시작하기 - 프로젝트 추가 - 프로젝트 이름 입력 - 생성 완료firebase 콘솔에서 안드로이드 아이콘 클릭프로젝트/android/app/build.gradle 내부 namespace 검색
react 에서 props 를 rest 파라미터로 받을 수 있다근데 가독성이.. 이거 맞나 싶은..??
처음 배울 때는 이런식으로 썼던것 같은데최근에는 무슨 생각으로 코드를 작성하는건지 알 수 없다무지성..
자식 컴포넌트 내에서 Props 로 받은 ref 를사용 후 React.memo 와 같이 자식 컴포넌트를React.forwardRef 로 감싸 export 하여사용할 수 있다
react-native-firebase/auth 로 회원가입 기능 구현중\[Error: \[auth/internal-error] An internal error has occurred, please try again.]위와 같은 에러 발생firebase 연동이 뭔가 잘
firestore 는 noSQL 로 문서와 컬렉션이라는 개념이 있다문서는 키-값 쌍의 자료형으로 각 문서는 고유 ID 가 있다문서들의 집합이 컬렉션SQL로 치면 컬렉션이 DB, 문서가 table 과 비슷한 느낌인것 같다usersCollection 에서 add 메서드를
ios 에서 react-native-image-picker 를 사용하려면 설정을 해줘야 한다ios/project/Info.plist
ios 에서 react-native-image-picker 를 사용하려면 설정을 해줘야 한다ios/project/Info.plist
Firebase Storage 는 무로료 최대 5gb, 일일 다운로드 최대 1gb 의 저장 공간을 사용할 수 있다 firestore 랑 비슷하게 설정 후 다음과 같이 사용하면 됨 모바일에서 용량이 크지 않은 정보를 저장한다면 기록이 지워지지 않는 클라우드 서비스가
설정ios/PublicGallery/Info.plistandroid/app/build.gradle
Navigator 도 jsx 로 작성되었는데다른 태그로 감싸 다뤄볼 생각은 못했다..
ActionSheetIOS 는 위와 같이 화면 아래에 나오는 모달이고iOS 에서만 사용 가능하다안드로이드에서도 라이브러리를 이용해서 사용할 수 있지만라이브러리는 안쓸 수 있으면 굳이 쓰지 않는 편이 좋을듯..벨로퍼트 선생님은 모달을 코드 아래쪽에 배치하는것 같다
간단한 앱이라면 headerShown 으로 설정하여headerBackTitle 을 사용하는 편이 좋을것 같다
firestore 컬렉션의 get() 함수를 호출하면해당 컬렉션의 QuerySanpshot 객체가 반환된다QuerySanpshot 객체 내부에 docs 라는 배열 내부에 각 문서에 대한 정보가 들어있다조회 결과가 없다면 빈 배열을 반환한다docs 배열은 고유 id 값이
FlatList 에서 renderItem 이 길어질 경우 컴포넌트 밖에 선언하여 사용하면 렌더링할 때마다 만드는것 보다 성능에 유리하다useMemo 를 사용하는 것도 방법
네비게이션의 상태를 조회한다파라미터로 셀렉터 함수를 넣는데셀렉터는 상태에서 어떤 값을 조회할지 정하는 함수다위 처럼 state => state 를 주면전체 상태를 조회한다 state => state.routeNames 위처럼 하면 routeNames 만 조회하게 된다
hitSlop={8} 처럼숫자만 넣어 각 방향에 전부 적용할 수도 있다위와 같이 각 방향에 따로 값을 줄 수 있다
데이터를 수정하거나 삭제하였을 때 화면을 바로 변화시키려면전역 상태로 데이터를 관리하거나EventEmmitter 를 통해 이벤트 발생 시 데이터를 새로 불러오는 함수를 실행시키는 방법이 있다이벤트를 사용하는 방식은 코드 추적이 어렵다는 단점이 있다위와 같이 이벤트 인스
글 수정/삭제 시 자신의 글만 변경할 수 있도록firestore 에서 규칙 설정을 해야한다firebase 콘솔의 firestore 에서 규칙을 설정할 수 있다항상 위와 같은 형식으로 규칙을 설정해준다posts 컬렉션에 대한 권한 설정 시 위와 같이규칙 변경 후 게시 를
http://bit.ly/publicgallery-splash무료 스플래쉬 아이콘 react-native-splash-screen 라이브러리를 사용하면 원하는 시점에 splash 화면을 사라지게 할 수 있다android 디렉터리에 drawable-hdpi, d
datetimepicker 는 OS 별 특화된 날짜/시간 컴포넌트를 제공한다react-native-modal-datetime-picker 는 날짜 및 시간 선택을 모달 형태로 제공하는여기에 date-fns 를 함께 사용하면 편리하게 날짜 및 시간을 관리할 수 있다nat
react-native-calendars 를 사용한다