분류 전체보기170 Unit 6 (끝) 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 함수를 백그라운드에서 실행하려면 WorkManager가 필요하다. 알아야 할 WorkManager 클래스들 Worker: 백그라운드에서 실행하고자 하는 코드를 여기에 입력. 이 클래스를 확장하고 doWork() 메서드를 재정의한다. WorkRequest: 작업 실행 요청. WorkRequest를 만드는 과정에서 Worker를 전달한다. WorkManager: 실제로 WorkRequest를 예약하고 실행하는 클래스. 지정된 제약 조건을 준수하면서 시스템 리소스에 부하를 분산하는 방식으로 WorkRequest를 예약한다. 두 가지 WorkRequest 유형 OneTimeWorkRequest: 한 번만 실행.. 2022. 9. 14. Unit 5-2 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. Room의 기본 구성요소 Room의 기본 요소는 다음과 같다. Data entities (데이터 항목) : 앱 데이터베이스의 테이블 Data Access Object (DAO) : 검색 및 업뎃, 삽입, 삭제하는 데 사용하는 메서드를 제공 Database class : 데이터베이스를 보유하며, 기본 앱 데이터베이스 연결을 위한 기본 액세스 포인트. DAO 인스턴스를 제공(=Room Database 인듯) Room 구성요소가 함께 작동하여 데이터베이스와 상호작용하는 걸 그림으로 나타내면 이렇다. 항목 Entity 만들기 Entity 클래스의 각 인스턴스는 데이터베이스 테이블의 행을 나타낸다. 앱에서 En.. 2022. 9. 14. Unit 5-1 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 관계형 데이터베이스 개요 관계형 데이터베이스는 데이터를 테이블과 열, 행으로 구성하는 일반적인 데이터베이스 유형이다. 위 그림처럼 테이블간의 관계를 표현할 수 있어서 관계형 데이터베이스라고 한다. SQL 관계형 데이터베이스에 액세스할 때는 SQL이 필요하다. SQL은 구조화된 쿼리 언어를 의미하며 이를 통해 관계형 데이터베이스에서 데이터를 읽고 조작할 수 있다. 실습의 스켈레톤 코드는 기본 db가 설정되어있다. View > Tool Windows > Database Inspector 을 누르면 데이터베이스를 볼 수 있다. 원하는 테이블을 선택한 상태로 위쪽 돋보기붙은 버튼(Open New Query T.. 2022. 9. 14. Unit 4-2 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. Retrofit 이라는 라이브러리를 사용해서 벡엔드 서버에서 데이터를 가져와보자. 이 실습에서 ViewModel이 네트워크와 직접 통신한다. 실습에서는 웹서버에서 화성 사진을 받아오는 어플을 만들것이다. LiveData를 사용하여 데이터 변경 시 앱 UI를 업데이트한다. 웹 서비스 및 Retrofit 오늘날 대부분의 웹 서버는 REST(REpresentational State Transfer의 약자)라는 Stateless(일일히 기억 안하는..) 웹 아키텍처를 사용해 웹 서비스를 실행한다. 이 아키텍처를 제공하는 웹 서비스를 RESTful 서비스라고 한다. 표준화된 방법으로 URI를 통해 RESTful.. 2022. 9. 14. Unit 4-1 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 멀티스레딩 및 동시 실행 지금까지는 이렇게 간주하고 학습했다. 하지만 사실은 이렇다. 이래야 리소스 사용률이 늘어나겠지..(feat.운영체제) 그러므로 concurrency를 신경써야 한다. task2 시작했다고 task1이 갑자기 중단된다면 매우 불안정한 앱이 될 것이다. currentThread()는 스레드의 이름, 우선순위, 스레드 그룹을 반환하는 함수이다. 이 함수를 가지고 간단한 동시 실행을 보자. fun main() { val states = arrayOf("Starting", "Doing Task 1", "Doing Task 2", "Ending") repeat(3) { Thread { p.. 2022. 9. 14. 힙과 우선순위 큐 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 우선순위 큐 보통 큐는 가장 먼저 삽입된 데이터를 먼저 삭제하지만.. 우선순위 큐는 우선순위가 가장 높은 데이터를 가장 먼저 삭제한다. 삽입/삭제의 시간복잡도는 logN 이다. 힙 자료구조 힙 자료구조는 우선순위 큐를 구현하기 위하여 사용하는 자료구조 중 하나다. 대부분의 프로그래밍 환경에서 우선순위 큐 라이브러리를 지원하기 때문에 직접 힙 자료구조를 작성해서 우선순위 큐를 구현할 일은 없다. 라이브러리 임포트 하는 방식만 잘 외워두자! import heapq 사용 방법 import heapq heap = [] heapq.heappush(heap, 50) heapq.heappush(heap, 10) h.. 2022. 9. 14. 이전 1 ··· 13 14 15 16 17 18 19 ··· 29 다음 반응형