본문 바로가기

전체 글

(83)
[Kotlin] 코루틴 #7 - Flow 코루틴 #7 - Flow (플로우) Coroutine 이전 글 코루틴 #1 - 기본 코루틴 #2 - CoroutineContext와 CoroutineScope란? 코루틴 #3 - suspend Function (중단함수) 코루틴 #4 - CoroutineBuilder와 ScopeBuilder 코루틴 #5 - Channel (채널) 코루틴 #6 - 취소(Cancellation), 예외(Exception), 핸들러(Handler) Asynchronous Flow suspending Function(중단 함수)는 비동기로 동작하면서 하나의 값을 반환합니다. Flow는 비동기로 동작하면서 여러개의 값을 반환하는 Function은 만들 때 사용하는 Builder입니다 다중 값 나타내기 (Repressenting ..
[Kotlin] 코루틴 #6 - 취소(Cancellation), 예외(Exception), 핸들러(Handler) 취소(Cancellation), 예외(Exception), 핸들러(Handler) 코루틴에서 취소예외 / 일반 예외의 발생방법 / 유형과 처리방법 Handler에 대해서 작성 Coroutine 이전 글 코루틴 #1 - 기본 코루틴 #2 - CoroutineContext와 CoroutineScope란? 코루틴 #3 - suspend Function (중단함수) 코루틴 #4 - CoroutineBuilder와 ScopeBuilder 코루틴 #5 - Channel (채널) 취소 (Cancellation) 코루틴은 내부적으로 취소 동작을 위해 CancellationException을 사용 CancellationException 예외는 모든 핸들러들이 무시하므로 handler를 등록해도 아무런 효과가 없습니다. ..
[Kotlin] 코루틴 #5 - Channel (채널) 코루틴 #5 - Channel (채널) 값의 흐름을 전송하는 Channel(채널)에 대해 작성 Coroutine 이전 글 코루틴 #1 - 기본 코루틴 #2 - CoroutineContext와 CoroutineScope란? 코루틴 #3 - suspend Function (중단함수) 코루틴 #4 - CoroutineBuilder와 ScopeBuilder Channel (채널) Channel은 송신자(SendChannel)와 수신자(RecevieChannel) 사이의 통신을 위한 비차단 요소 Java의 BlockingQueue와 유사하지만 중요한 차이점은 BlockingQueue - put(), take() 차단(Blocking)해서 전송 / 수신하는 방법 Channel - send(), receive() 차..
[Kotlin] 코루틴 #4 - CoroutineBuilder와 ScopeBuilder 코루틴 #4 - CoroutineBuilder와 ScopeBuilder Coroutine Scope를 생성하는 Coroutine Builder에 대한 설명 (코루틴 빌더 = 스코프 빌더 같은 의미) launch / async / withContext / runBlocking / actor / produce Coroutine 이전 글 코루틴 #1 - 기본 코루틴 #2 - CoroutineContext와 CoroutineScope란? 코루틴 #3 - suspend Function (중단함수) Scope Scope는 코루틴이 실행되는 범위 GlobalScope는 Application이 종료될 때 까지 존재하는 코루틴 (Activity가 종료되어도 존재하는 코루틴이므로 구분해서 사용해야 함) CoroutineB..
[Kotlin] 코루틴 #3 - suspend Function (중단함수) 코루틴 #3 - suspend Function (중단함수) 중단 함수(Suspending Function) 와 일반 함수(Sequential function) Coroutine 이전 글 코루틴 #1 - 기본 코루틴 #2 - CoroutineContext와 CoroutineScope란? 기본 순차 실행 (Sequential by Default) 기본적으로 Code & Function은 순차적(Sequential)으로 수행 이런 개념은 Coroutine 내부에서도 동일하게 적용됩니다 일정시간 delay 후 Integer 값을 반환하는 두개의 suspend(중단) 함수 생성 suspend fun testOne(): Int { delay(1000)// 1초 대기 return 20// 20 반환 } suspend..
[Kotlin] 코루틴 #2 - CoroutineContext와 CoroutineScope란? 코루틴 #2 - CoroutineContext와 CoroutineScope란? CoroutineContext와 CoroutineScope란 무엇인가? Coroutine 이전 글 코루틴 #1 - 기본 CoroutineContext Coroutine(코루틴)을 어떻게 처리할 것인지에 대한 여러가지 정보(Element)를 포함 -> Element의 집합 CoroutineContext는 Interface로, 코루틴에 대한 설정 요소(Element)를 등록하고 Scope의 속성이 된다 CoroutineContext는 interface인데, 그 구성을 한번 살펴보기 위해 CoroutineContext.kt파일에서 가져왔습니다. public interface CoroutineContext { /** * Returns..
[Kotlin] 코루틴 #1 - 기본 코루틴 #1 - 기본 Kotlin Coroutine 공식문서 바로가기 Coroutines Overview - Kotlin Programming Language kotlinlang.org 코루틴 Coroutine? Coroutine은 Thread / AsyncTask / Rx Background 작업을 대신할 수 있는 Asynchronous/Non-Blocking Programming 제공하는 경량스레드(Light-Weight Threads) Background Task가 필요한 대표적인 경우 1. 네트워크 Request (Retrofit, OkHttp3, UrlConnection 등) 2. 내부 DB 접근 (Room, SQLite 등) Coroutine - Thread 차이점 둘 모두 Background..
[안드로이드] Activity 생명주기(Lifecycle) - 호출 순서 액티비티 생명주기(LifeCycle) 호출순서 두 액티비티 간 이동 시 LifeCycle 호출순서 다이얼로그 / 화면 일부 이동시 LifeCycle 호출순서 액티비티 (Activity) 액티비티(Activity)는 안드로이드 4대 컴포넌트 중 하나 UI (사용자 인터페이스)와 가장 밀접한 관련을 갖고 있기 때문에 가장 기본이 되는 구성요소 보통 App은 필수로 하나 이상의 Activity가 서로 연결된 형태로 구성 액티비티(Activity)는 크게 3가지의 상태가 존재 실행 : 화면(UI) 상에 액티비티가 보여지고 있는 상태 일시정지 : 액티비티가 일부분 보이긴 하지만 다른 액티비티가 포커스를 가져간 상태 중지 : 다른 액티비티에 의해서 전부 가려진 상태 (보이지 않는 상태) 스택 (Stack) 액티비티..