AsyncStorage는 React Native 애플리케이션에서 비동기적으로 데이터를 저장하고 관리할 수 있는 API를 제공한다.
AsyncStorage의 특징
1. 비동기 작업 처리
- 설명: AsyncStorage는 비동기적으로 데이터를 처리한다. 이는 데이터 저장, 읽기, 삭제 작업이 네트워크 요청처럼 시간이 걸릴 수 있음을 의미한다. 모든 작업은 Promise를 반환하며, async/await 구문을 사용하여 비동기 작업을 쉽게 처리할 수 있다.
- 장점: 비동기 처리는 UI의 반응성을 유지하면서 데이터 작업을 수행할 수 있게 해준다.
2. 저장된 데이터의 영속성
- 설명: AsyncStorage는 데이터가 앱을 종료하거나 디바이스가 재부팅되어도 유지되도록 설계되었다. 이는 로컬 디바이스 스토리지에 데이터를 저장하기 때문이다.
- 장점: 앱이 다시 실행될 때에도 저장된 데이터에 접근할 수 있어 사용자 설정, 로그인 정보 등을 유지할 수 있다.
3. 키-값 쌍으로 데이터 저장
- 설명: AsyncStorage는 데이터를 키-값 쌍으로 저장한다. 데이터는 문자열 형태로 저장되며, 복잡한 데이터는 JSON 문자열로 변환하여 저장할 수 있다.
- 장점: 간단한 데이터 저장과 조회를 지원하며, 키를 통해 특정 데이터를 쉽게 식별하고 접근할 수 있다.
4. 데이터의 삭제 및 갱신
- 설명: AsyncStorage는 특정 키에 대한 데이터를 삭제하거나 갱신할 수 있는 메서드를 제공한다. 데이터 삭제는 removeItem, 모든 데이터 삭제는 clear 메서드를 사용하며, 데이터 갱신은 mergeItem 메서드를 통해 수행할 수 있다.
- 장점: 저장된 데이터의 관리와 업데이트를 유연하게 수행할 수 있다.
5. 여러 항목의 한 번에 저장 및 삭제
- 설명: AsyncStorage는 multiSet과 multiRemove 메서드를 통해 여러 항목을 동시에 저장하거나 삭제할 수 있다. 이는 여러 키-값 쌍을 한 번에 처리할 때 유용하다.
- 장점: 배치 작업을 지원하여 데이터 처리 작업을 효율적으로 수행할 수 있다.
6. 키 목록 조회
- 설명: getAllKeys 메서드를 사용하면 저장된 모든 키를 배열로 가져올 수 있다. 이는 현재 저장된 데이터의 키를 확인하거나 특정 데이터를 찾는 데 유용하다.
- 장점: 저장된 데이터의 전체 목록을 조회할 수 있어 데이터 관리가 용이하다.
7. 다중 데이터 읽기 및 저장
- 설명: multiGet 메서드를 사용하여 여러 키의 값을 동시에 읽어올 수 있으며, multiSet 메서드를 사용하여 여러 항목을 동시에 저장할 수 있다. 이는 많은 데이터를 처리할 때 유용하다.
- 장점: 여러 항목을 동시에 처리할 수 있어 성능을 최적화하고 코드의 복잡성을 줄일 수 있다.
8. JSON 데이터의 변환
- 설명: AsyncStorage에 저장할 데이터는 문자열이어야 하므로, 객체를 저장할 때는 JSON.stringify를 사용하여 문자열로 변환해야 한다. 읽어올 때는 JSON.parse를 사용하여 문자열을 다시 객체로 변환할 수 있다.
- 장점: 객체와 같은 복잡한 데이터를 문자열로 변환하여 저장하고, 다시 원래의 형식으로 복원할 수 있어 다양한 데이터 유형을 처리할 수 있다.
9. 오류 처리 및 예외 처리
- 설명: AsyncStorage의 메서드는 비동기적으로 작동하므로, 오류가 발생할 수 있다. try-catch 블록을 사용하여 오류를 처리할 수 있으며, .catch 메서드를 사용하여 Promise에서 발생할 수 있는 오류를 처리할 수 있다.
- 장점: 예외 처리를 통해 애플리케이션의 안정성을 유지하고, 예상치 못한 오류에 대한 적절한 대응을 할 수 있다.
AsyncStorage 주요 기능
1. 데이터 저장하기 (setItem)
- 설명: AsyncStorage.setItem 메서드는 특정 키에 값을 저장하는 기능을 제공한다.
- 사용법: 이 메서드는 두 개의 인수를 받는다. 첫 번째 인수는 저장할 데이터의 키이며, 두 번째 인수는 저장할 값이다. 값은 문자열이어야 하며, 객체를 저장하려면 JSON 문자열로 변환해야 한다.
- 예시
await AsyncStorage.setItem('user_token', 'abc123');
2. 데이터 읽어오기 (getItem)
- 설명: AsyncStorage.getItem 메서드는 특정 키에 대한 값을 읽어오는 기능을 제공한다.
- 사용법: 이 메서드는 저장된 키를 인수로 받아 해당 키에 대한 값을 반환한다. 반환된 값은 문자열이며, JSON 문자열로 저장된 객체는 다시 파싱해야 한다.
- 예시
const token = await AsyncStorage.getItem('user_token');
3. 데이터 삭제하기 (removeItem)
- 설명: AsyncStorage.removeItem 메서드는 특정 키에 저장된 데이터를 삭제하는 기능을 제공한다.
- 사용법: 이 메서드는 삭제할 키를 인수로 받아 해당 키에 저장된 데이터를 제거한다.
- 예시
await AsyncStorage.removeItem('user_token');
4. 모든 데이터 삭제하기 (clear)
- 설명: AsyncStorage.clear 메서드는 모든 저장된 데이터를 삭제하는 기능을 제공한다.
- 사용법: 이 메서드는 매개변수를 받지 않으며, 모든 저장된 데이터를 한 번에 제거한다.
- 예시
await AsyncStorage.clear();
5. 모든 키 가져오기 (getAllKeys)
- 설명: AsyncStorage.getAllKeys 메서드는 저장된 모든 키를 배열로 가져오는 기능을 제공한다.
- 사용법: 이 메서드는 매개변수를 받지 않으며, 저장된 모든 키를 배열 형태로 반환한다.
- 예시
const keys = await AsyncStorage.getAllKeys();
6. 여러 항목 읽어오기 (multiGet)
- 설명: AsyncStorage.multiGet 메서드는 여러 키에 대한 값을 한 번에 읽어오는 기능을 제공한다.
- 사용법: 이 메서드는 키 배열을 인수로 받아, 각 키에 대한 값을 포함한 배열을 반환한다. 각 배열 요소는 [key, value] 형식으로 되어 있다.
- 예시
const result = await AsyncStorage.multiGet(['key1', 'key2']);
// result: [['key1', 'value1'], ['key2', 'value2']]
7. 여러 항목 저장하기 (multiSet)
- 설명: AsyncStorage.multiSet 메서드는 여러 항목을 한 번에 저장하는 기능을 제공한다.
- 사용법: 이 메서드는 키와 값 쌍을 배열 형태로 인수로 받아, 모든 항목을 동시에 저장한다.
- 예시
await AsyncStorage.multiSet([['key1', 'value1'], ['key2', 'value2']]);
8. 여러 항목 삭제하기 (multiRemove)
- 설명: AsyncStorage.multiRemove 메서드는 여러 항목을 한 번에 삭제하는 기능을 제공한다.
- 사용법: 이 메서드는 삭제할 키 배열을 인수로 받아, 해당 키들에 대한 데이터를 제거한다.
- 예시:
await AsyncStorage.multiRemove(['key1', 'key2']);
9. 값 업데이트하기 (mergeItem)
- 설명: AsyncStorage.mergeItem 메서드는 특정 키에 저장된 데이터를 병합하는 기능을 제공한다. 기존 값에 새로운 값을 추가하거나 수정할 수 있다.
- 사용법: 이 메서드는 두 개의 인수를 받는다. 첫 번째 인수는 키이며, 두 번째 인수는 병합할 데이터다. 데이터는 JSON 문자열이어야 한다.
- 예시
await AsyncStorage.mergeItem('user_profile', JSON.stringify({ age: 30 }));
'JavaScript > ReactNative' 카테고리의 다른 글
리액트 네이티브 navigation 정리 (1) | 2024.09.17 |
---|---|
리액트 네이티브 styled-components 정리 (0) | 2024.09.16 |
리액트 네이티브 그림자 설정 정리 (1) | 2024.09.13 |
리액트 네이티브 flex box 정리 (0) | 2024.09.10 |
리액트 네이티브 스타일링 정리 (0) | 2024.09.09 |