한마디로 "순차적으로 진행하지 않음"
여러 작업이 동시에 수행될 수 있음을 의미한다.
인터넷 페이지 로딩시 위에서부터 아래로 로딩되지 않고 전체적으로 부분부분 로딩된다.
또 컴퓨터에서 어떤 것을 다운받고 있는 동시에 인터넷을 켜거나 폴더를 연다고 각자 작업이 끝나고 순차적으로 실행되지 않는다. 멀티프로그래밍 되어 있는데, 이는 운영체제에서 설명하겠다. 어쨌든 전체적으로 동시에(완전한 동시는 아님) 수행된다고 생각하면 된다.
안드로이드 공식문서 Room라이브러리에 보면 이런 말이 있다.
쿼리가 UI를 차단하지 않도록 Room은 기본 스레드에서 데이터베이스 액세스를 허용하지 않습니다. 이 제한사항은 DAO 쿼리를 비동기식으로 만들어야 함을 의미합니다. Room 라이브러리에는 비동기 쿼리 실행을 제공하는 여러 다양한 프레임워크와의 통합이 포함되어 있습니다.
이게 무슨뜻일까?
이 문장은 크게 두 가지 주요 개념을 설명하고 있습니다.
Room이 UI를 차단하지 않는다:
Room 라이브러리는 Android 앱의 데이터베이스 관리를 도와줍니다. UI 차단이란, 데이터베이스 작업이 진행되는 동안 사용자 인터페이스)가 멈춰있고 사용자 입력에 반응하지 않는 현상을 말합니다. 앱에서 데이터베이스 작업이 수행되는 동안에도 UI가 계속 상호작용할 수 있도록 Room은 기본 스레드에서 데이터베이스 액세스를 허용하지 않습니다.
비동기식 DAO 쿼리가 필요하다:
Room 라이브러리에서 데이터베이스의 데이터를 읽고 쓰기 위해 데이터 액세스 객체 (DAO)를 사용합니다. Room이 앱이 응답성을 유지하도록 하기 위해 DAO 쿼리는 비동기식으로 실행되어야 합니다. 이것은 데이터베이스 작업이 동기적으로 처리되지 않으며, 다른업과 동시에 실행됨을 의미합니다.
결론적으로, 이 문장은 Room 라이브러리의 작업이 사용자 인터페이스를 차단하지 않도록 설계되어 있으며, 효율적인 앱 성능을 위해 데이터베이스 액세스가 비동기식으로 처리되어야 함을 설명하고 있습니다. 여기서 언급된 여러 프레임워크 통합은 Room이 다양한 비동식 작업 도구와 함께 사용할 수 있도록 지원한다는 것을 나타냅니다.
이게 무슨 말이냐?
android developer문서를 쭉 읽다보니 얘내가 하고싶은 하나의 개념은 확실하다.
"절대 사용자가 버벅임을 느끼게 하지 마"
여기에 최선을 다하며, 개발 방향을 이쪽에 맞추도록 업데이트하고, 개발자들을 유도한다.
Room라이브러리도 그런 개념에서, 사용자가 UI와 커뮤니케이션 하는 동안 데이터베이스 작업이 이를 방해하지 않도록 하는 것이다. 바로 비동기식 작동을 통해!!
'미완성글' 카테고리의 다른 글
android studio에서 굳이 왜 model을 따로 관리할까? (0) | 2023.06.06 |
---|---|
안드로이드 스튜디오의 View와 데이터베이스의 View는 무엇일까? (0) | 2023.06.05 |
안드로이드 스튜디오 LiveData<UserWithPost>는 뭐야? (1) | 2023.06.05 |
안드로이드 스튜디오에서 두 개 이상의 서로 다른 테이블을 동시 참조하는 경우 (0) | 2023.06.05 |
지연 로드 개념 (0) | 2023.06.05 |