-
[Android/Kotlin] Coroutine(코루틴)Android/Kotlin 2022. 8. 18. 21:46반응형
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다]
<Coroutine이란?>
- Background Thread에서 코드 처리할 때 사용하는 방법
- 네트워크 요청, 내부 저장소 접근 등의 작업을 하는 경우 사용
<Coroutine과 Thread의 차이>
- Coroutine : 실행, 종료되어야 하는 하나의 일
- Therad : Coroutine이 실행되는 곳(하나의 일이 실행되는 곳/하나의 Thread에서 여러 개의 Coroutine 동시 실행 될 수 있음)
<Coroutine implementation>
- gradle app 수준
//Coroutine implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.5"
- 최신 버전의 안드로이드 스튜디오에서는 기본적으로 Coroutine을 내장하고 있다고 함(CoroutinScope를 입력해서 나온다면 따로 implementation 할 필요x)
<사용 방법>
- 아래의 블로그에 정리가 잘 되어 있어서 가져왔다(블로그 내용 이외에 추가로 알게되는 것이 있으면 추가할 예정)
https://blog.yena.io/studynote/2020/04/26/Android-Kotlin-Coroutine.html
[Android][Kotlin] 코루틴(Coroutine) 사용해보기
비동기 처리를 하는 데에는 몇 가지 방법이 있다. Rx는 다양한 기능을 제공하지만 진입 장벽이 높아 학습에 오랜 시간이 걸린다. 또 오랜 기간 사용되었던 AsyncTask는 지금은 Deprecated 된데다가 구
blog.yena.io
- Coroutine은 항상 자신이 속한 Scope를 참조해야 하며 cancel로 취소 가능
<Coroutine Scope의 종류>
1. Global Scope
- 앱의 생명주기와 함께 동작하므로 실행 도중 별도로 생명 주기 관리할 필요 없음(시작 -> 종료와 같이 장기간 실행되는 Coroutine의 경우에 적합)
2. Coruotine Scope
- 필요한 경우에만 실행되는 Coroutine의 경우에 적합(서버 통신 등)
<ViewModelScope>
- ViewModel이 메모리에서 해제되는 경우 Memory Leak 방지하기 위해 생명주기에 맞춰 onCleared() 메서드에서 Scope의 취소를 구현해야 함
- ViewModelScope는 생명주기를 인식하는 Coroutine Scope를 만들 수 있는데 ViewModelScope 블럭에서 실행되는 작업은 별도의 처리 하지 않아도 ViewModel이 celar 되는 순간 자동으로 취소됨
- *관련 내용은 아래의 블로그를 참고하였습니다*
https://yoon-dailylife.tistory.com/68
Android) 안드로이드에서 Coroutine의 ViewModelScope와 LiveData Builder 알아보기
일반적으로 코루틴을 안드로이드 ViewModel과 사용할 때 SupervisorJob을 이용하여 생명주기와 맞물려 사용합니다. ViewModel은 UI에서 보여줄 데이터를 관리하기 위해 사용됩니다. Activity나 Fragment 같은
yoon-dailylife.tistory.com
반응형'Android > Kotlin' 카테고리의 다른 글
[Android/Kotlin] 다이얼로그 프래그먼트(DialogFragment) (0) 2022.08.25 [Android/Kotlin] LayoutInflater (0) 2022.08.24 [Android/Kotlin] Room (0) 2022.08.18 [Android/Kotlin] numberPicker.value (setValue) 안 될 때 (0) 2022.08.16 [Android/Kotlin] 리사이클러뷰(RecyclerView) 구분선 넣기 (0) 2022.08.12