Android Jetpack

Coroutine - 1 (Coroutine이란?)

개복치 개발자 2022. 2. 20. 19:16

개복치개발자 강의는 아래의 링크에서 확인할 수 있습니다.

 

개복치개발자 | Linktree

uyalae@naver.com

linktr.ee

 

 코루틴에 대해서 한번 알아보겠습니다.

 

 코루틴을 처음 봤을 때가 생각이 나는데, 처음 보는 느낌은 그냥 쓰레드인데? 백그라운드 작업 할 때 쓰라는건가? 라는 생각이었습니다.

 

 찾아보면 light-weight Thread고 쓰레드보다 자원을 아껴쓴다 뭐 이렇게 나와있습니다.

 

https://stackoverflow.com/questions/63719766/why-kotlin-coroutines-are-considered-light-weight

 

 

 아니 뭐 자원을 아껴쓰고 어쩌고 하면 좋은 건데... 라고 하는건데 쓰면 좋다는건 알겠는데 뭔가 와닿지가 않고 여기까지 오면

 

 성능 그거 조금 좋아져봤자 뭐 크게 달라지는거 있나? 라는 생각이 들 수 있습니다.

 

 자, 그렇다면 좀 더 와닿는 예제를 한번 해볼까요?

 

 기존의 쓰레드를 이용한 예제를 한번 해보겠습니다.

 

 

 이렇게 하면 당연히 

 

 p1 -> p2 -> p3 -> p4 이런 순서로 되야할 것 같지만 비동기로 실행되면 아래와 같이 됩니다.

 

 

 그러면 코루틴을 이용하면 어떻게 바꿀 수 있는가? 에 대해서 보면 아래와 같이 보면 순차적으로 나옵니다.

 

 

 

 

 위와 같이 사용할 수 있습니다.

 

 자 그렇다면 순차적으로 나오면 뭐가 좋은데? 라고 하면 

 

 callback hell 문제를 해결할 수 있습니다.

 

 user정보를 받아와서 user에 이름으로 api call을 하는 문제라면 이 부분을 쉽게 해결할 수 있습니다.

 

 - 참조

 

https://dduddublog.tistory.com/194

 

Kotlin Coroutine 101 영상 번역 및 요약

youtu.be/ZTDXo0-SKuU Coroutine은 어떤 문제들을 해결할 수 있는가? - 안드로이드 비동기 프로그래밍을 단순화 함. 우리가 비동기 프로그래밍을 말할 때는 동기적 프로그래밍 방식을 빼놓을 수 없다. 동

dduddublog.tistory.com

 

'Android Jetpack' 카테고리의 다른 글

Coroutine - 3 (Room + Coroutine)  (1) 2022.02.27
Coroutine - 2 (Dispatchers)  (0) 2022.02.22
Jetpack Navigation - 6 (Animation)  (0) 2022.02.19
Jetpack Navigation - 5 (Safe Args)  (0) 2022.02.19
Jetpack Navigation - 4 (Data Transfer)  (0) 2022.02.19