본문 바로가기

분류 전체보기147

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.
쏘카 CTO님 오픈토크 다녀온 썰.ssul 나를 3번 떨어트린 회사에서 오픈토크를 한다더라 SSAFY 활동이 끝나고 동문회를 가입했는데 어느 날 문자가 왔다. "쏘카 류석문 CTO님과 함께 나누는 IT 트렌드 이야기" 신청해볼까 고민하던 찰나 동기들이 같이 가자고 해서 지원을 하게 되었다. 추첨을 통해 오픈토크 이후에 CTO님과 소규모 대화 시간을 가질 수 있었는데 쏘카에 3번 떨어졌다고 어필한 덕분인지(?) 뽑힐 수 있었다. 처음으로 쏘카에게 합격을 받은 순간이었다. 그래서 저는 왜 떨어트리셨ㄴ... 시간 변동성이 없는 개발자가 되자 오픈토크에서 다양한 이야기를 들을 수 있었는데 그중에서 인상 깊었던 내용을 적어보려 한다. 나는 요즘 좋은 개발자는 무엇일까, 좋은 코드는 무엇일까에 대한 고민들을 하고 있는데 류석문 CTO님께서 마침 이 이야기를.. 2022. 8. 28.
코루틴은 왜 빠른 걸까요? 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.