간단하게 코루틴에 대해서 잠시 보고 가겠습니다.
강의가 뒤에 ROOM과 Retrofit에 대해서 알아보는 순서로 되어 있다 보니, ROOM과 Retrofit을 쓰면서 간단하게 ViewModel에서 데이터를 다루는 로직을 넣어놨는데, 그 때 코루틴을 잠시 사용합니다.
저희가 코틀린을 사용하다 보면, 앞이 코(Ko)라는 단어가 있죠. 그러면 이게 코루틴의 코와 같은 것인가 보면
코루틴은 코(co)루틴(routine)입니다.
위의 협동 루틴 어쩌고 하는 설명들이 나와 있고 아래에는 다양한 언어들에서 지원한다 라고 나와있습니다.
저도 코틀린에서밖에 코루틴을 사용해보지 않았기 때문에, 다른 언어는 잘 모르겠습니다.
그런데 여기까지 하면 협동 루틴 어쩌고 하면서 나와있는데, 잘 이해가 가지 않습니다.
그러면 구글 공식문서를 한번 가보겠습니다.
위의 설명들이 나와 있습니다.
여기에서 저희가 집중해서 볼 것은
코루틴은 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴입니다.
라고 되어 있는 글입니다.
우선 비동기라는 개념에 대해서 헷갈리는 분들을 위해 한번 잠시 설명하고 가겠습니다.
제가 간단하게 된장찌개 요리를 한다고 생각해볼게요.
된장찌개 요리를 한다면, 저희가 아무렇지도 않게 하고 있는 것들이 비동기 작업입니다.
물 끓이는 동안
두부썰고 가지썰고 버섯넣고
물 끓고 난 다음 재료 넣고
밥 하고 등등을 하고 있죠?
만약에 이 친구들을 동기적으로 한다면
물 다 끓여지고 난 다음 가지 썰고 된장찌개 다 된 다음 밥 하고 이런 순서대로 진행하죠.
이렇게 비동기에 대해서 잠시 봤는데요
아니, 비동기적으로 안드로이드에서 실행할 수 있는 것은 많잖아?? 내가 왜 이거 배워서 해야해? 라는 생각이 들 수도 있습니다.
네 맞습니다.
하지만 코루틴에 대한 설명을 좀 더 보다보면 Callback Hell을 벗어날 수 있다 라고 하는 설명이 나옵니다.
기존의 비동기 작업을 통해서 하면 callback hell이라고 하는 친구들을 벗어날 수 있습니다.
https://www.youtube.com/watch?v=ZTDXo0-SKuU
자, 그러면 다음 번에 간단한 예제를 통해서 어떻게 해보는지 알아보겠습니다.
'Android Jetpack' 카테고리의 다른 글
ViewModelScope (0) | 2022.04.11 |
---|---|
Coroutine Simple Example (0) | 2022.04.11 |
Android LiveData - 6 (ViewModel + LiveData + DataBinding) (0) | 2022.04.03 |
Android View에 대한 접근 - 6 (Adapter DataBinding) (0) | 2022.03.09 |
Android View에 대한 접근 - 5 (Adapter ViewBinding) (0) | 2022.03.09 |