본문 바로가기

개발 관련 공부/코틀린17

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.
Unit 3-4 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 예제에서 컵케이크 주문 어플을 만든다. 이런 경우 4개의 프래그먼트가 ViewModel을 공유하는 것이 효과적일 것이다. //sharedViewModel라는 변수는 OrderViewModel 타입이고 대리자 클래스 activityViewModels() private val sharedViewModel: OrderViewModel by activityViewModels() 공유 뷰 모델을 사용하려면 4개의 프래그먼트에서 viewModels() 대리자 클래스 대신 activityViewModels()를 사용하여 OrderViewModel을 초기화한다. viewModels()는 현재 프래그먼트로 범위가 지정.. 2022. 9. 14.
반응형