본문 바로가기

안드로이드47

withContext는 무엇이며 async와 무슨 차이가 있을까? 🚀 글 읽는 순서 🚀 코루틴은 왜 빠른 걸까요? suspend 함수란 무엇인가요? Coroutine Dispatcher, 넌 대체 뭐야? -> withContext는 무엇이며 async와 무슨 차이가 있을까? (현재) 1. 요약 2. Dispatcher와 CoroutineContext 3. withContext 3-1. 개념 3-2. async와의 차이 1. 요약 🧑‍💻: withContext는 왜 사용할까요?? async와는 무슨 차이가 있을까요? 👨🏻‍🦱: 코루틴의 context를 변경하고 싶을 때나 비동기 코드를 순차적 실행할 때 사용합니다. asnyc보다 withContext가 더 빠르나 무의미한 수준이고 async는 병렬 처리가 가능하고 withContext는 순차 처리만 가능합니다. 또, as.. 2022. 9. 7.
Coroutine Dispatcher, 넌 대체 뭐야? 🚀 글 읽는 순서 🚀 코루틴은 왜 빠른 걸까요? suspend 함수란 무엇인가요? -> Coroutine Dispatcher, 넌 대체 뭐야? (현재) 1. 요약 2. Dispatcher 2-1. 개념 2-2. 종류 2-3. 사용법 3. Default와 IO의 차이 4. 의문점 1. 요약 🧑‍💻: Dispatcher는 무엇이며 종류가 어떻게 되나요? 👨🏻‍🦱: Dispatcher는 상황에 맞게 스레드 풀 내의 스레드에게 코루틴을 배분하는 역할을 합니다. Default, IO, Main이 있습니다. (Unconfined는 논외로 하겠습니다) * 참고로 저도 공부하면서 정리한 글이기 때문에 잘못된 부분이 있을 수 있습니다. 지적 많이 부탁드려요 ( _ _) 2. Dispatcher 2-1. 개념 오늘 배울 .. 2022. 8. 31.
suspend 함수란 무엇인가요? 🚀 글 읽는 순서 🚀 코루틴은 왜 빠른 걸까요? -> suspend 함수란 무엇인가요? (현재) 1. 요약 2. await 2-1. 개념 2-2. 코루틴 내부에서 실행되는 await 2-3. suspend 내부에서 실행되는 await 3. Suspend 3-1. 개념 3-2. 내부 코드 4. 정리 1. 요약 🧑‍💻: suspend 함수란 무엇인가요? 👨🏻‍🦱: suspend 함수는 일시 중단 가능한 함수이며 코루틴 내부 혹은 suspend 함수 내부에서 사용해야 합니다. suspend의 내부 코드는 콜백 함수 형태를 띄고 있습니다. 2. await 2-1. 개념 이전 글 "코루틴은 왜 빠른 걸까요?"에서 코루틴에 대해 알아보았다. 코루틴은 스레드 안에서 더 잘게 나눠지는 작업 단위라고 표현했었다. 그렇기.. 2022. 8. 29.
코루틴은 왜 빠른 걸까요? 1. 요약 2. Thread 2-1. 스레드를 사용하는 이유 2-2. 스레드의 문제점 3. Coroutine 3-1. 코루틴의 동작 방식 3-2. 코루틴과 스레드의 비교 1. 요약 🧑‍💻: 코루틴이 빠르다, 가볍다라고들 하는데 그 이유가 무엇일까요? 👨🏻‍🦱: 코루틴은 동시성 프로그래밍이며 작업마다 스레드를 생성해서 사용하는 것이 아니라 스레드 안에서 루틴을 만들고 교환하여 자원 낭비가 덜 하기 때문입니다. 2. Thread 2-1. 스레드를 사용하는 이유 코루틴이 빠른 이유를 알아보기 전에 우선 코루틴을 사용하지 않고 스레드를 사용하는 상황을 알아보자. 안드로이드에는 메인 스레드라는 놈이 있다. (만약 스레드가 무엇인지 잘 모른다면 일꾼 정도로 생각하면 된다. 어떠한 작업을 하는 일꾼) 메인 스레드는 .. 2022. 8. 27.
화면을 회전할 때 viewModel의 onCleared가 호출되지 않는 이유 1. 요약 2. viewModel 2-1. 개념 2-2. viewModel은 언제 파괴될까? 1. 요약 🧑‍💻: Activity의 onDestroy가 호출되면 viewModel의 onCleared가 호출된다고 하셨는데 그러면 화면을 회전할 때 왜 viewModel의 onCleared가 호출되지 않을까요? 👨🏻‍🦱: if문으로 화면을 회전하는 경우를 따로 처리해주었기 때문입니다. 코드 내부를 들여다보면 알 수 있습니다. 2. viewModel 2-1. 개념 viewModel에 대해서는 예전에 자세히 정리해둔 포스팅이 있다. 요약하자면 "viewModel은 Activity와 독립적인 생명주기를 가지기 때문에 Activity가 onDestory 되어도 데이터를 유지할 수 있게 해준다"이다. 2-2. onDes.. 2022. 8. 26.